Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur 424 vba

    24 juin 2020 à 16:38:04

    Bonjour,

    Je me permets de vous contacter ici car je suis bloquée sur mon code actuel…
    Effectivement, j'ai créé une fonction en VBA qui permets la vérification et l'ouverture d'un fichier Excel.

    Je la récupère ensuite pour copier le contenu d'une feuille Excel d'un classeur vers un autre.

    Seulement, après la copie (à ma dernière ligne : close), j'ai le message d'erreur 424 : objet requis) et je ne sais pas trop pour quelle raison.

    Voici le code :

    Public Function FonctionFichier(Fichier As String)
    
    If Len(Dir(Fichier)) = Empty Then
     MsgBox "Le fichier n'a pas été trouvé."
    End If
    
    Dim Application As Object
    Set Application = CreateObject("Shell.Application")
    Application.Open (Fichier)
    
    End Function
    Sub Test()
    
    Dim wkDest As Workbook
    
    Set wkDest = FonctionFichier("C:\Classeur1.xlsx")
    
    wkDest.Sheets("Feuil1").Cells.Copy ThisWorkbook.Sheets("Tarifs AIA").Range("A1")
    
    wkDest.Close True
    
    End Sub

    En vous remerciant par avance,

    Bonne fin de journée,

    Cordialement


    MDL

    -
    Edité par hemdehel 24 juin 2020 à 17:11:06

    • Partager sur Facebook
    • Partager sur Twitter
      24 juin 2020 à 16:40:45

      Bonjour,

      Merci de colorer votre code à l'aide du bouton Code

      Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton Code de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: vb;">Votre code ici</pre>.

      Merci de modifier votre message d'origine en fonction.

      Liens conseillés

      • Partager sur Facebook
      • Partager sur Twitter
        25 juin 2020 à 17:45:33

        Tu n'as pas précisé dans quelle application tu as ce code VBA (ça peut changer quelques trucs) Je vais considérer que c'est dans un Excel

        Beaucoup de choses qui ne me semble très correct:

        Dans ta fonction, tu ne retournes rien, tu crées quand même l'objet si se le fichier n'est pas trouvé.
        Une correction 

        Public Function FonctionFichier(Fichier As String) as Workbook
        
          If Len(Dir(Fichier)) = Empty Then
            MsgBox "Le fichier n'a pas été trouvé."
            FonctionFichier= Nothing
          Else
            FonctionFichier=Workbooks.Open(FileName:=Fichier)
          End If
        End Function
        Ensuite, ce qu'il peut se passer, c'est que, comme tu copies une grande quantité de cellules, cela prenne du temps et que lorsque tu fermes le fichier, la copie n'est pas fichier et donc a encore besoin de la référence au fichier pour finir la copie. En mettant un DoEvents() avant le close, ça lui autorise le temps de finir son opération de copie.
        • Partager sur Facebook
        • Partager sur Twitter

        Erreur 424 vba

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown