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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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

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

Dernière édition:
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.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
1 K
Retour