erreur de compilation incongru pour moi

  • Initiateur de la discussion Garçon à problèmes
  • Date de début
G

Garçon à problèmes

Guest
bonjour,
voici mon code que j'ai créé glanant dans ce forum et autres tutoriaux pas mal d'infos.

Dim bouton() As New Classe1

Private Sub CommandButton1_Click()
Unload Me
End Sub


=> qui va donc faire disparaitre le Userform dont le code associé est ci-dessous !

Private Sub UserForm_Activate()
Dim I As Integer, derlign As Integer
ReDim Preserve bouton(1 To Worksheets.Count)
For I = 1 To Worksheets.Count
If Left(Worksheets(I).Name, 5) = 'Ligne' Then
If I mon Userform s'appelle Menu et ce code me permet donc de récupérer le nom des feuilles du classeur dont les premiers caractères sont 'Lignes' ... etc ... et cré les boutons qui correspondent à ces feuilles en leurs associant l'évènement click pour rediriger vers la feuille en question.

j'ai également un 1er userform dont le nom est simplement userform1.


Tout fonctionne parfaitement sur un PC avec excel XP et le code Private Sub Userform_Activate()!

je copie le fichier excel sur ma clé USB et je ramène à la maison ou j'ai également Excel XP.
J'ouvre le fichier et voilà le résultat : 'Erreur de compilation : Projet ou bibliothèque introuvable. ... le code apparait Private Sub Userform_Activate() est en jaune et on m'indique que la ligne :
Set boutoncontrol = Menu.Controls.Add('Forms.CommandButton.1', 'bouton' & I) avec le 1er 'boutoncontrol' surligné avec donc ce message d'erreur !

je me suis dis je remplace Private Sub Userform_Activate () par Private Sub Menu_Activate() puisque mon Userform s'appelle 'Menu' ... et là ..... plus d'erreur de compilation mais par contre le programme ne récupère pas les infos et ne génère pas les boutons !!!


Qui a une idée !?


Merci et merci encore par avance
 
G

garçon à problèmes

Guest
pardon voici le code complet du userform


Private Sub UserForm_Activate()

Dim I As Integer, derlign As Integer
ReDim Preserve bouton(1 To Worksheets.Count)
For I = 1 To Worksheets.Count
If Left(Worksheets(I).Name, 5) = 'Ligne' Then
If I < 13 Then


Set boutoncontrol = Menu.Controls.Add('Forms.CommandButton.1', 'bouton' & I)
boutoncontrol.Left = 35
boutoncontrol.Top = 25 * I
boutoncontrol.Width = 85
boutoncontrol.Height = 20
boutoncontrol.Name = Worksheets(I).Name
boutoncontrol.Caption = boutoncontrol.Name
boutoncontrol.BackColor = &HC00000
boutoncontrol.ForeColor = &H8000000E
Set bouton(I).boutons = boutoncontrol

Else
Set boutoncontrol = Menu.Controls.Add('Forms.CommandButton.1', 'bouton' & I)
boutoncontrol.Left = 150
boutoncontrol.Top = 25 * (I - 12)
boutoncontrol.Width = 85
boutoncontrol.Height = 20
boutoncontrol.Name = Worksheets(I).Name
boutoncontrol.Caption = boutoncontrol.Name
boutoncontrol.BackColor = &HC00000
boutoncontrol.ForeColor = &H8000000E
Set bouton(I).boutons = boutoncontrol
End If
End If

Next I
 

Discussions similaires

Réponses
29
Affichages
920
Réponses
3
Affichages
523

Statistiques des forums

Discussions
312 211
Messages
2 086 296
Membres
103 171
dernier inscrit
clemm