Pertes des propriétés Activex X lorsque copier-coller
Bonjour à tous,
Je me tourne vers vous pour un problème assez spécial que je n'arrive pas à résoudre bien qu'ayant fait moult recherches sur les forums...
Le code suivant me permet de créer une nouvelle feuille excel automatiquement qui copie le contenu d'une autre feuille et initialise les contrôles. La nouvelle feuille prend alors le nom "FP_Ld" & I ; I étant chiffre qui change en fonction du nombre de feuille (première feuille créée = FP_Ld1, 2e feuille crée = FP_Ld2,...).
'Bouton pour ajouter une feuille
Private Sub CommandButton2_Click()
Dim I As Integer
Do
I = I + 1
' FeuilleExiste est une fonction créée et présente après ce Sub
If FeuilleExiste("FP_Ld" & I) = False Then
Sheets("Feuil8").Copy Before:=Sheets("Feuil2") 'Feuil8 étant la feuille à copier
ActiveSheet.Name = "FP_Ld" & I
With Worksheets("FP_Ld" & I) ' Initialisation de paramètres et commandes diverses
.Activate
.Range("A1").Show
.Label1.Caption = Sheets("Feuil1").Label2.Caption
.Label2.Caption = Sheets("Feuil1").Label3.Caption
.Label3.Caption = Sheets("FP_Ld" & I).Name
.OptionButton1.Value = False
.OptionButton2.Value = False
.OptionButton3.Value = False
.OptionButton4.Value = False
.OptionButton5.Value = False
.ComboBox4.Enabled = False
.ComboBox5.Enabled = False
.CommandButton16.Enabled = False
.CommandButton17.Enabled = False
.TextBox25.Enabled = False
.TextBox26.Enabled = False
.TextBox27.Enabled = False
.ComboBox1.ListFillRange = "Feuil6!N93:N162"
.ComboBox1.ListIndex = -1
L1 = Sheets("Feuil7").Range("D1").End(xlDown).Row
.ComboBox2.ListFillRange = "Feuil7!D1:D" & L1
.ComboBox2.ListIndex = -1
L2 = Sheets("Feuil2").Range("A6218").End(xlDown).Row
.ComboBox3.ListFillRange = "Feuil2!A6218:A" & L2
.ComboBox3.ListIndex = -1
.ComboBox4.ListFillRange = "Feuil3!H2:H3746"
.ComboBox4.ListIndex = -1
.ComboBox5.ListFillRange = "Feuil2!A36:A6215"
.ComboBox5.ListIndex = -1
End With
Exit Do
End If
Loop
End Sub
________________________________________________________________
Function FeuilleExiste(Nom As String) As Boolean
On Error Resume Next
FeuilleExiste = Sheets(Nom).Name <> ""
On Error GoTo 0
End FunctionCe code fonctionne très bien pour la première feuille créée. Pour ce qui est de la 2e, le début du script fonctionne bien (copie-colle la feuil8 dans une nouvelle feuille nommée FP_Ld2) mais bug à partir de mon contrôle Optionbutton4 avec comme message d'erreur :
Erreur d'exécution '438' :
Propriété ou méthode d'exécution non gérée par cet objet
En me rendant sur FP_Ld2, lorsque je clique droit sur l'Optionbutton en question, je me rends compte que je n'ai plus les onglets "Priorités" et "Visualiser le code" comme dans les contrôles Active X mais bien "Affecter une macro" comme dans les contrôles de formulaires... J'en déduis qu'il y a eu ce changement mais je ne comprends pas pourquoi et cela vaut pour tous les contrôles après cet optionbutton4! Mais ceux d'avant (Label1,2,3 et Optionbutton 1,2,3) restent Active X et fonctionnent à merveille....
Ce n'est pas tout, lorsque je crée tout de même une 3e feuille ("FP_Ld3"), le même bug apparait mais à partir de Label1... Donc tous mes contrôles sont passés de Active X à formulaires...
Dans ma feuille8 ce sont pourtant bien des contrôles active X qui doivent être copier-coller (et ça marche dans le premier copier-coller...).
Ce problème me perturbe fortement car il est à la base du formulaire que je veux créer...
Je vous remercie d'avance pour votre aide, quelle qu’elle soit!
Bonsoir,
Ce que tu nous demande là c'est un peu comme si tu montrais la photo du moteur de ta voiture en panne à ton mécanicien et que lui demandait de trouver la panne. Il peu y avoir beaucoup de raison à ce genre de problème. Il est possible que sur un autre ordinateur, le problème ne se reproduise pas ou peut-être un fichier endommagé qu'il faut recréer,
J'ai rapidement regardé, comme cela, je ne vois pas trop