VBA erreur 424 boject requis
colombe88
Messages postés
41
Statut
Membre
-
colombe88 Messages postés 41 Statut Membre -
colombe88 Messages postés 41 Statut Membre -
Bonjour,
Amateur en VBA je me heurte sans cesse a de nombreuse difficultés. Ainsi donc voici mon probleme actuel.
j'ai un fichier1 avec un formulaire USF1 qui applique un filtre sur la feuille1 du fichier2. le filtre permet de ne resortir qu'une ligne de la feuille1"ficher2". Ensuite en doublecliquant sur cette ligne j'ouvre le formulaire USF2 situé dans mon fichier1 jusqu'ici tout va bien.. le probleme est le suivant. j'aimerai remplir mon Formulaire USF2 avec les elements de la ligne selectionée. alors j'ai entre le code suivant: qui malheuresement apres "with USf2" m'affiche une erreur code 424 Object requis
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Range("U2").Value = Range("U2").Value + 1
If Target.Column = 1 Then
Cancel = True
Run "fichier1!USF2"
End If
If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then
With USF2
.TextBox1.Value = Cells(Target.Row, 1).Value
.ComboBox1.Value = Cells(Target.Row, 7).Value
.ComboBox2.Value = Cells(Target.Row, 8).Value
.TextBox5.Value = Cells(Target.Row, 2).Value
.TextBox2.Value = Range("U2").Value
.TextBox2.Value = Range("U2").Value
End With
End Sub
Amateur en VBA je me heurte sans cesse a de nombreuse difficultés. Ainsi donc voici mon probleme actuel.
j'ai un fichier1 avec un formulaire USF1 qui applique un filtre sur la feuille1 du fichier2. le filtre permet de ne resortir qu'une ligne de la feuille1"ficher2". Ensuite en doublecliquant sur cette ligne j'ouvre le formulaire USF2 situé dans mon fichier1 jusqu'ici tout va bien.. le probleme est le suivant. j'aimerai remplir mon Formulaire USF2 avec les elements de la ligne selectionée. alors j'ai entre le code suivant: qui malheuresement apres "with USf2" m'affiche une erreur code 424 Object requis
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Range("U2").Value = Range("U2").Value + 1
If Target.Column = 1 Then
Cancel = True
Run "fichier1!USF2"
End If
If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then
With USF2
.TextBox1.Value = Cells(Target.Row, 1).Value
.ComboBox1.Value = Cells(Target.Row, 7).Value
.ComboBox2.Value = Cells(Target.Row, 8).Value
.TextBox5.Value = Cells(Target.Row, 2).Value
.TextBox2.Value = Range("U2").Value
.TextBox2.Value = Range("U2").Value
End With
End Sub
3 réponses
Bonjour
Depose ton fichier xls (réduit si nécessaire et anonyme)sur http://www.cjoint.com/ et coller ici le lien fourni.
ca serat plus simple pour voir ton probleme
Depose ton fichier xls (réduit si nécessaire et anonyme)sur http://www.cjoint.com/ et coller ici le lien fourni.
ca serat plus simple pour voir ton probleme
Bonjour,
L'erreur vient de :
With USF2
qui n'existe pas dans le fichier 2.
A ma connaissance, il n'est pas possible de référencer un Userform situé dans un autre classeur (par exemple pour le remplir)
Tu dois intégrer la macro d'affichage et de remplissage du USF2 dans le classeur1, dans lequel il est possible de faire référence aux données du classeur 2
Le code du classeur 2 se limite à lancer la macro du classeur 1 qui devient le classeur actif :
PS : Run "fichier1!USF2" ne fonctionnera pas, il faut un module :
Run "fichier1!Module1.Macro1"
Cordialement
Patrice
L'erreur vient de :
With USF2
qui n'existe pas dans le fichier 2.
A ma connaissance, il n'est pas possible de référencer un Userform situé dans un autre classeur (par exemple pour le remplir)
Tu dois intégrer la macro d'affichage et de remplissage du USF2 dans le classeur1, dans lequel il est possible de faire référence aux données du classeur 2
Le code du classeur 2 se limite à lancer la macro du classeur 1 qui devient le classeur actif :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Column = 1 Then Cancel = True Run "fichier1!USF2" End If End Sub
PS : Run "fichier1!USF2" ne fonctionnera pas, il faut un module :
Run "fichier1!Module1.Macro1"
Cordialement
Patrice