XL 2019 Modifier données déjà saisies via userform

AIXELS

XLDnaute Occasionnel
Bonjour à tous les Amis du Forum. :)
Je reviens vers vous une fois de plus.
J'ai réussi à créer un userform de saisie de données.
J'ai fait des recherches et j'ai adapté les codes que j'ai trouvés.
Le résultat est satisfaisant, mais peut-être pas académique pour les initiés.
J'aurais aimé en gardant le même masque pouvoir modifier
les données déjà saisies.
Pourriez-vous me mettre sur la piste.
Par avance merci pour votre aide.
Bien cordialement.
 

Pièces jointes

  • BDD_CLIENTS.xlsm
    71.5 KB · Affichages: 15

AIXELS

XLDnaute Occasionnel
Bonjour @JM27 et tous les Amis du Forum. :)
Je reviens vers toi, pour une fonction que je n'arrive pas à adapter.
Pourrais-tu s'il te plaît m'indiquer comment l'exécuter en VBA sur mon projet
et en règle général, comment lancer une fonction.
Dans le cas présent, c'est pour supprimer les Majuscules sur l'adresse
en début de chaque mot. (le, la les etc... comme indiqué sur la fonction)

Je t'ai joint le fichier test. C'est choquant et pas très logique l'adresse actuelle.
VB:
'Fonction pour mettre en nom propre (1ère lettre en majuscule sauf le la des etc...)
Function NomPropre2(ByVal Nom As String) As String
   Dim TJn() As String, TExc(), N As Integer, Exclu
   TExc = Array("à", "au", "bis", "d'", "de", "des", "du", "en", "l'", "le", "la", "les", "ter")
   TJn = Split(Replace(LCase(Nom), "'", "' "), " ")
      For N = 0 To UBound(TJn)
         For Each Exclu In TExc
            If Exclu = TJn(N) Then Exit For
            Next Exclu

         If InStr("à au bis d' de des du en l' le la les ter", TJn(P)) _
            = 0 Then Mid$(TJn(N), 1, 1) = UCase(TJn(N), 1, 1)
         Next N
   NomPropre2 = Replace(Join(TJn, ""), "' ", "'")
   End Function

Merci pour ton aide.
Bien cordialement.
 

Pièces jointes

  • BDD_CLIENTS.xlsm
    73.8 KB · Affichages: 2

Dranreb

XLDnaute Barbatruc
Bonjour
Ajoutez ceci quelque part :
VB:
TBxAdresse.Text = NomPropre2(TBxAdresse.Text)
Dans la Function inutile de retester If InStr("à au bis d' de des du en l' le la les ter", TJn(P)) = 0
À la place : If IsEmpty(Exclu) Then Mid$(TJn(N), 1, 1) = UCase(Left$(TJn(N), 1))
Exclu est en effet Empty si la petite boucle précédente est allée jusqu'au bout sans rencontrer un des mots à garder en minuscules.

Changé dans ma version.

Cependant, ne faudrait-il pas garder un mot entièrement écrit en capitales ?
 

Pièces jointes

  • CLsCAsAIXELS.xlsm
    194.6 KB · Affichages: 2
Dernière édition:

AIXELS

XLDnaute Occasionnel
Re @Dranreb
Merci pour cette remarque, je suis resté sur ton avant dernier envoi.
Je ne te cache pas que je ne comprends pas tout le code dû à mon
faible niveau de connaissance de VBA.
Fonctionne très bien et je l'appliquerai à d'autres projets.
Merci pour ton aide.
Bien cordialement.
 

Discussions similaires

Statistiques des forums

Discussions
312 164
Messages
2 085 877
Membres
103 009
dernier inscrit
dede972