Aide pour changer les caractères LU en MA dans une procédure

Bonjour

J ai créé des procédures dans un userform avec des noms textbox et combobox commençant toujours me. Lu....

Maintenant j ai besoin de créer les mêmes procédures avec les noms suivants me. Ma

Pour éviter de retaper ces mêmes procédures en remplaçant le LU par Ma, le lu par Me et ainsi de suite jusqu à Di. Pourriez vous m aider à trouver cette procédure

Merci

Bonjour,

Tout simplement dans visual basic, edition remplacer , etc...

Bye

Dans visual basic

Bonjour,

Si tu as une multitude de TextBox par jour de semaine, je te conseille fortement d'utiliser un module de classe afin d'avoir une procédure commune à tous.

Je ne maîtrise pas les modules de classe.

Un exemple tout simple !

Ce code est à mettre dans l'UserForm :

Dim Txt() As New Classe1

Private Sub UserForm_Initialize()

    Dim Ctrl As Control
    Dim I As Integer

    For Each Ctrl In Me.Controls

        If TypeName(Ctrl) = "TextBox" Then

            I = I + 1
            ReDim Preserve Txt(1 To I)
            Set Txt(I).GroupeTxt = Ctrl

        End If

    Next Ctrl

End Sub

et celui-ci-dessous dans un module de classe nommé "Classe1" (nom par défaut) :

Public WithEvents GroupeTxt As MSForms.TextBox

Private Sub GroupeTxt_Change()

    MsgBox GroupeTxt.Text

End Sub

Juste pour l'exemple, à chaque caractères entré dans n'importe quel TextBox, une boite de message va apparaître avec ce que contient le TextBox actif !

Ça ne correspond pas à mon attente.

Par exemple j aimerai une procédure de la sorte

Sub procedure (X as string)

Me. Xnom

Me. Xnom1

End sub

X je pourrai le remplacer ainsi par LU par MA

J apprend seul je vais essayer de déchiffrer ton programme avec le module de classe

Merci

Bonjour

Ne peux-tu pas faire simplement ce que je t'ai dit?

Tu vas dans visual basic, tu te positionnes sur le code à modifier, tu fais remplacer, et là rechercher tu tapes LU, remplacer par tu tapes MA

Après sois remplacer tout si tu es sûr que cela ne va pas de remplacer n'importe quoi , cad si le mot LU existe ailleurs que dans tes contrôles, sinon tu les fais un par un cela va tout de même assez vite et te permet de contrôler tes remplacements , Dans l'exemple que l'on t'a donné , je ne vois pas comment modifier Ctrl.Name il est impossible de définir la propriété name

A+

Re,

Ça ne correspond pas à mon attente.

Par exemple j aimerai une procédure de la sorte

Sub procedure (X as string)

Me. Xnom

Me. Xnom1

End sub

X je pourrai le remplacer ainsi par LU par MA

De ce que j'ai compris de ta demande, tu veux remplacer de façon automatique et durant l'exécution du code le préfixe de tous tes contrôles ?

Et bien, si c'est ça que tu veux, ce n'est tout simplement pas possible !

Tu dis dans ton message :

Pour éviter de retaper ces mêmes procédures...

C'est pour cette raison que je t'ai dis d'utiliser un module de classe ou alors, faire comme te le dit Patty5046, fais un remplacer par (Ctrl + H) pour toutes tes procédures mais tu les auras en sept exemplaires ou alors, tu construis des procédures communes en passant en arguments le contrôle ou une valeur de propriété du contrôle pour aiguiller tes procédures :

Private Sub TextBox1_Change()
    CommuneATous TextBox1
End Sub

Private Sub TextBox2_Change()
    CommuneATous TextBox2
End Sub

Private Sub TextBox3_Change()
    CommuneATous TextBox3
End Sub

'les caractères entrés dans le TextBox actife sont inscrit dans un Label
Sub CommuneATous(Ctrl As MSForms.TextBox)
    Label1.Caption = Ctrl.Text
End Sub

Sinon, postes ton fichier pour voir ce qu'il y aurait lieu de faire afin de simplifier le code.

J essaye de vous envoyer une partie de mon programme sur le site,pourriez vous où se trouve le module fichier joint

Re,

Soit tu colles ton code entre les balises code (utilises le bouton </>) soit et c'est ce qui est conseillé, tu postes ton fichier sans données confidentielles en cliquant sur le bouton "Ajouter des fichiers" sous la zone de texte, choisir ton fichier sur ton disque et ensuite, cliquer sur, soit le bouton "Insérer dans le message" (là où est le curseur) soit cliquer directement sur "Envoyer"

Voici une partie de mon programme Excel, par exemple j aimerai reproduire une procédure consultationmardi à l'identique de consultationlundi dans l'userform Rame.

Bonjour,

Comme dis plus haut, passe les valeurs en argument comme par exemple :

Sub CREATIONRAMEBVLUNDI(Rame As String, Depart As String, Arrivee As String, RameD as String) 'etc...

que tu utilises ensuite dans le code comme par exemple ci-dessous :

If (Rame <> "" And Arrivee <> "" And Depart <> "" And RameD <> "") = True Then

et tu appelles ta proc en lui passant les propriétés "Value" de tes contrôles :

Call CREATIONRAMEBVLUNDI(Me.LURAME.Value, Me.LUARRIVE.Value, Me.LUDEPART.Value, Me.LURAMED.Value)

Bonjour

Je viens de tester ta proposition. Ça marche.

Merci pour ton aide

Bonjour,

Content d'avoir pu t'aider !

Rechercher des sujets similaires à "aide changer caracteres procedure"