Export d’UserForm d’un classeur sur un autre = erreur
Résolu
mijean94
Messages postés
417
Statut
Membre
-
mijean94 Messages postés 417 Statut Membre -
mijean94 Messages postés 417 Statut Membre -
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)
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
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
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:
- Export d’UserForm d’un classeur sur un autre = erreur
- Imprimer un classeur excel sur mac - Guide
- Export favoris chrome - Guide
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Erreur t32 ✓ - Forum Livebox
- Erreur lors de l'enregistrement du contact - Forum Xiaomi
1 réponse
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.
Cordialement
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