Pb bouton
Résolu
niny
-
niny -
niny -
Bonjour,
voila, je suis dans un envirronement VBA sous excel
je créé des boutons dynamiquement, ces boutons sont censé ouvrir un userform sur lequel chaque bouton récupére une donnée. ceci fonctionnait jusqu'à ce que :
j'ai ajouté un moyen pour que les boutons ne se mettent pas les uns sur les autres lors de la génaration de ceux ci : boucle de création avec la déportation nécessaire.
maintenant avec cette modif : seul le dernier bouton générer agit correctement et les autres je ne peux plus cliquer dessus .
une idée ? voici mon code car je ne vois aps d'où viens le problème et c'est une horreur lol, un peu d'aide ne serait aps de refus :
Dim k As Integer
Dim deport As Integer
Dim inter As Integer
Dim i As Integer
deportinit = 5
inter = 5
k = 3
i = 3
For i = 3 To 7
While k <> 7
k = k + 1
deport = deport + 20 * deportinit
Set Bouton = AutoBe.Controls.Add("Forms.CommandButton.1", "Bouton" & k, True)
With Bouton
'.Caption = k 'AutoBe.nom_bouton
.Left = deportinit + deport
.Top = 12
End With
i = i + 1
Wend
Next
merci pour votre aide
voila, je suis dans un envirronement VBA sous excel
je créé des boutons dynamiquement, ces boutons sont censé ouvrir un userform sur lequel chaque bouton récupére une donnée. ceci fonctionnait jusqu'à ce que :
j'ai ajouté un moyen pour que les boutons ne se mettent pas les uns sur les autres lors de la génaration de ceux ci : boucle de création avec la déportation nécessaire.
maintenant avec cette modif : seul le dernier bouton générer agit correctement et les autres je ne peux plus cliquer dessus .
une idée ? voici mon code car je ne vois aps d'où viens le problème et c'est une horreur lol, un peu d'aide ne serait aps de refus :
Dim k As Integer
Dim deport As Integer
Dim inter As Integer
Dim i As Integer
deportinit = 5
inter = 5
k = 3
i = 3
For i = 3 To 7
While k <> 7
k = k + 1
deport = deport + 20 * deportinit
Set Bouton = AutoBe.Controls.Add("Forms.CommandButton.1", "Bouton" & k, True)
With Bouton
'.Caption = k 'AutoBe.nom_bouton
.Left = deportinit + deport
.Top = 12
End With
i = i + 1
Wend
Next
merci pour votre aide
A voir également:
- Pb bouton
- Bouton reinitialisation pc - Guide
- Diagnostic bouton photo - Accueil - Outils
- Bouton on/off comment savoir ✓ - Forum Matériel & Système
- Symbole arrêt marche - Forum Word
- Réinitialiser chromecast sans bouton - Guide
2 réponses
Bonjour,
J'ai testé ta macro, elle ajoute bien 4 boutons sur la feuille, ils réagissent quand on clic dessus, mais ils ne se passe rien vu qu'ils ne sont ratachés à aucune macro.
C'est normal , ou est le problème?
A+
J'ai testé ta macro, elle ajoute bien 4 boutons sur la feuille, ils réagissent quand on clic dessus, mais ils ne se passe rien vu qu'ils ne sont ratachés à aucune macro.
C'est normal , ou est le problème?
A+
Je pense que l'objet Bouton se refere au dernier element inseré. Sa valeur est ecrasée à chaque tour de boucle et ne garde sa valeur que pour k=5
ensuite du ecritSub init(Bouton As CommandButton, Parent As Classe2, idbouton As Integer)
Set mBouton = Bouton
midbouton = idbouton
Set mParent = Parent
mBouton pointe sur l'objet Bouton
et donc
Private Sub mBouton_click()
choix_install2.bouton_cliqué.Caption = midbouton
choix_install2.Show
affiche la feuille choix_install2
A+.
ensuite du ecritSub init(Bouton As CommandButton, Parent As Classe2, idbouton As Integer)
Set mBouton = Bouton
midbouton = idbouton
Set mParent = Parent
mBouton pointe sur l'objet Bouton
et donc
Private Sub mBouton_click()
choix_install2.bouton_cliqué.Caption = midbouton
choix_install2.Show
affiche la feuille choix_install2
A+.
en fait ces bouton sont d'un type qui vient d'un module de classe :
Option Explicit
Private WithEvents mBouton As CommandButton
Private mParent As Classe2 'Contient le nom du parent
Private midbouton As Integer
Sub init(Bouton As CommandButton, Parent As Classe2, idbouton As Integer)
Set mBouton = Bouton
midbouton = idbouton
Set mParent = Parent
End Sub
Private Sub mBouton_click()
choix_install2.bouton_cliqué.Caption = midbouton
choix_install2.Show
With mBouton
.Caption = AutoBe.nom_bouton.Caption
'.AutoSize = True
End With
End Sub
et du coup je pensais que le fait de mettre les boutons comme ca ils garderaient leur fonctionnalités
en fait ce qui me tue dans ce que tu me dis et qui est vrai, c'est que je vois pas pourquoi le dernier bouton généré m'ouvre le userform souhaité alors que je ne lui ai aps indiqué .
j'ai du mal à comprendre vois tu d'où pourrais venir le pb ?
mes bouton sont déclaré de type de mon module de classe.
dans ce module il y a une collection sur lesquels je dois ajouter les boutons .
le fait que mon dernier bouton généré soit le seul qui puisse agir était tout à fait normal car je n'avais aps inclus dans la boucle le fait que : collection.add "bouton". ceci était à l'extérieur de la boucle .
forcement le dernier élément créé devient le seul à avoir els caractérisqtiques souhaitées !
voili voilou ,
merci beaucoup car avec ta question tu m'as fait trouver mon problème
@+