Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Salut Jean Marie 😉
NonRAZ n'a pas d'espace entre les deux
NonRAZ signifie que l'on ne fait pas de RAZ ( Opposé à RAZ dans les autres objets)
pour info : il faut 3 items dans les tag renseignés , sinon ca va planter au split
 
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:
Bonjour @Dranreb et @JM27
Merci pour votre aide et vos retours.
Une autre question @JM27 , en partant de ta macro "SupprimerMaj()"
comment puis-je mettre à jour toutes les anciennes saisies dans la colonne C.

Merci pour votre aide.
Bien cordialement.
 
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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…