VBA erreur 424 boject requis

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

3 réponses

  1. foo
     
    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
    0
  2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    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 :
    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
    0
  3. colombe88 Messages postés 41 Statut Membre
     
    Merci pour la precision.. !!!! je m'y remet et tiens le forumau courant..
    0