Eviter répétition chemin

  • Initiateur de la discussion Initiateur de la discussion Florian53
  • Date de début Date de début

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 !

Florian53

XLDnaute Impliqué
Bonjour le forum,

Je dispose d'un Userform, qui contient plusieurs frames afin d'essayer de rendre le code plus lisible et j’espère moins long a exécuté, j'ai crée un Module de programmation pour chaque Frame. Je ne voulais pas que le code de L'userform soit trop long afin que je puisse me retrouver plus facilement.

Mais je me retrouve face à un problème:

Comme les événements sont dans l'userform je suis obligé de répéter le chemin à chaque événement:

Code:
Sub Slc_Exp()
Usf_interface.Frame2.Imputation200.Clear
Usf_interface.Frame2.SousFamille200.Clear
Usf_interface.Frame2.ComboBox210.Clear
Usf_interface.Frame2.ComboBox209.Clear
Init_Imputation_Exp
Usf_interface.Frame2.ComboBox210.List = Application.Transpose(Range("Type_envoi"))
End Sub

Et dans le code de l'userform:

Code:
Private Sub Label2_Click()
Slc_Exp
End Sub

Autre exemple d'un code du module:

Code:
Sub Valide_200()
Dim i As Byte, J As Byte
If Usf_interface.Frame2.TextBox209 = vbNullString Or Usf_interface.Frame2.TextBox212 = vbNullString Or Usf_interface.Frame2.Imputation200 = vbNullString Or Usf_interface.Frame2.ComboBox209 = vbNullString Or Usf_interface.Frame2.ComboBox210 = vbNullString Then
MsgBox ("Les champs marqués d'un astérisque (*) sont obligatoires.")
Usf_interface.Frame2.Imputation200.SetFocus
Exit Sub
End If
Application.ScreenUpdating = False
With Sheets(Var_Imputation200).Select
Ligne = Range("B65536").End(xlUp).Offset(1, 0).Row
Cells(Ligne, 2).Value = CDate(Date)
For i = 7 To 13
Cells(Ligne, i).Value = Controls("Usf_interface.Frame2.TextBox" & 200 + i).Value
Next i
Cells(Ligne, 3).Value = Usf_interface.Frame2.Imputation200.Value
Cells(Ligne, 4).Value = Usf_interface.Frame2.SousFamille200.Value
Cells(Ligne, 5).Value = Usf_interface.Frame2.ComboBox209.Value
Cells(Ligne, 6).Value = Usf_interface.Frame2.ComboBox210.Value

Usf_interface.Frame2.Imputation200.Value = ""
Usf_interface.Frame2.SousFamille200.Value = ""
Usf_interface.Frame2.ComboBox209.Value = ""
Usf_interface.Frame2.ComboBox210.Value = ""
For i = 7 To 13
Controls("Usf_interface.Frame2.TextBox" & 200 + i).Value = ""
Next i
End With
Application.ScreenUpdating = True
End Sub

Et le code ci dessus bug sur les lignes rouges, j'imagine à cause du chemin.

Avez vous une solution miracle pour ça ?
 
- 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
5
Affichages
237
Réponses
2
Affichages
201
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Réponses
7
Affichages
250
Réponses
3
Affichages
665
Réponses
9
Affichages
580
Retour