Export d’UserForm d’un classeur sur un autre = erreur

Résolu
mijean94 Messages postés 415 Date d'inscription   Statut Membre Dernière intervention   -  
mijean94 Messages postés 415 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J’ai copié un UserForm d’un classeur 1 vers un classeur 2 (par exporter).
L’UserForm ne fonctionne pas correctement sur le classeur 2 !!!
Le classeur 2 avait d’autres UserForm qui fonctionnent toujours bien.

J’explique les manipulations que j’ai effectuées pour essayer de comprendre :

a) Si mon curseur est positionné sur ma feuil1(Devis) du classeur 2
lancement de l’userForm à partir du code par F5 = Erreur d’exécution ‘1004’ la méthode ’range’ de l’objet _Global à échoué (arrêté sur Formulaire_Devis.show)

b) Si mon curseur est positionné sur ma feuil2(BD) du classeur 2
lancement de l’userForm à partir du code par F5 = ça marche bien, mais les actions sont exécutées sur la feuil2 au lieu de la feuil1

c) si je double clic dans une des cellules C11:C25 de la feuil1 = Erreur d’exécution ‘1004’ la méthode ’range’ de l’objet _Global à échoué (arrêté sur Formulaire_Devis.show) (fonctionnement normale souhaité du programme)

Code sur ma feuil1(Devis)

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
If Not Intersect([c11:c25], Target) Is Nothing And Target.Count = 1 Then
Cancel = True
Formulaire_Devis.Show
End If
End Sub


Code au niveau de l’UserForm.
Nom de l’UserForm = Formulaire_Devis
Si je remplace UserForm_Initialize par Formulaire_Devis_Initialize ça ne change rien

Private Sub UserForm_Initialize()

choix1 = Application.Transpose(Range("choix1"))
choix2 = Application.Transpose(Range("choix2"))
choix3 = Application.Transpose(Range("choix3"))
prix = Application.Transpose(Range("prix"))
Set d1 = CreateObject("Scripting.Dictionary")
For Each c In choix1: d1(c) = "": Next c
Me.ComboBox1.List = d1.keys
End Sub


La feuil2(BD) est la feuille avec les cellules Chois1 ; 2 ; 3 et prix

L’erreur est peut-être un problème d’initialisation de l’UserForm ? Pourquoi ?
Avez-vous une idée sur c qu'il faudrait faire ?
Merci pour votre aide.

Cordialement
A voir également:

1 réponse

mijean94 Messages postés 415 Date d'inscription   Statut Membre Dernière intervention   11
 
Bonjour,

Après réflexion, j'ai fait une petite modif qui marche.
Ajout des deux sheets dans le code.
C'est peut-être pas la bonne solution mais ça fonctionne.

Private Sub UserForm_Initialize()

Sheets("BD").Select

choix1 = Application.Transpose(Range("choix1"))
choix2 = Application.Transpose(Range("choix2"))
choix3 = Application.Transpose(Range("choix3"))
prix = Application.Transpose(Range("prix"))

Sheets("Devis").Select

Set d1 = CreateObject("Scripting.Dictionary")
For Each c In choix1: d1(c) = "": Next c
Me.ComboBox1.List = d1.keys
End Sub



Cordialement
0