• Initiateur de la discussion Initiateur de la discussion apdf
  • 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 !

apdf

XLDnaute Occasionnel
Bonjour,

J'ai un petit souci. j'ai deux code sur le même USF Comment faire cohabité:

Code:
Dim Ctrl As Control ...."sur un code" 
et
Dim Controle As Control, I As Integer ......"sur un autre code"

Merci d'avance pour votre aide.
 
Re : Modifier code

Bonjour Dranreb,

Alors voila mon code au complet:

Code:
Private Sub UserForm_Initialize()
Dim Ctrl As Control
Dim I As Byte
 
Me.Height = 116                                  ' Hauteur de l'USF a l'ouverture
 
For I = 1 To 100         'Nbre de joueur
    Me.ComboBox2.AddItem I
Next I
 
For Each Ctrl In Me.Controls         'Tous les Combobox ont infos "Nord", "Sud", "Est", "Ouest" sauf le combobo2
    If TypeName(Ctrl) = "ComboBox" Then
        If Ctrl.Name <> "ComboBox2" Then Ctrl.List = Array("Nord", "Sud", "Est", "Ouest")
    End If
Next Ctrl
Cacher



'Pour nom propre a tous les textbox "module de classe"
Dim Controle As Control, I As Integer
I = 0
  For Each Controle In Me.Controls 'pour chaque controle de l'usf
    If TypeOf Controle Is MSForms.TextBox Then 'Si c'est un TextBox..
        ReDim Preserve MesObjets(0 To I) 'redimensionne le tableau MesObjetsTB
       Set MesObjets(I).MonTxt = Controle 'rajoute le txtbox dans la classe
        I = I + 1
    End If
  Next Controle
End Sub


Message d'erreur : Déclaration existante dans la portée en cours
 
Dernière édition:
Re : Modifier code

Seul I pose un problème parce qu'il est déjà déclaré. Ne sert que de variable de travail apparemment et peut être réemployé sans inconvénient. Déclarez le donc une seule fois As Long de préférence. Déclarez toujours systématiquement vos entiers As Long, sauf s'ils sont imposés d'un autre type par une fourniture à laquelle ils sont passés en paramètre ou pour un problème d'encombrement mémoire exact, ça évitera l'ajout d'instructions machine supplémentaires pour les convertir en Long pour les traiter. De même toujours Double, Jamais Single.
 
Re : Modifier code

Bonjour apdf, Bonjour Dranreb,
A mon avis cela ne viens pas des contrôles
Il y a
VB:
Dim I As Byte
et
VB:
I As Integer
Mais pourquoi faire deux boucles ?
VB:
Private Sub UserForm_Initialize()
Dim Ctrl As Control, I As Long, X As Long
Me.Height = 116
X = 0
For I = 1 To 100
    Me.ComboBox2.AddItem I
Next I
For Each Ctrl In Me.Controls
    If TypeName(Ctrl) = "ComboBox" Then
        If Ctrl.Name <> "ComboBox2" Then Ctrl.List = Array("Nord", "Sud", "Est", "Ouest")
    'Pour nom propre a tous les textbox "module de classe"
    ElseIf TypeOf Ctrl Is MSForms.TextBox Then
        X = X + 1
        ReDim Preserve MesObjets(0 To I)
       Set MesObjets(I).MonTxt = Controle
    End If
Next Ctrl
Cacher
End Sub


Cordialement

EDIT Très a la bourre....
Bonjour MUTZIK
 
Dernière édition:
- 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
3
Affichages
256
Retour