Partage
  • Partager sur Facebook
  • Partager sur Twitter

VBA - Erreur 91 avec un classeur en variable

    8 juin 2022 à 14:33:26

    Bonjour,

    Étant débutant en VBA je rencontre un problème lors de la création d'une de mes macros.

    J'ai crée une macro me permettant de copier une partie d'un autre fichier excel et de le coller dans une page précise d'un autre fichier excel.
    Toutefois lorsque j'ai crée une autre macro excel reprenant quasiment la même structure que celle fonctionnant je me retrouve avec une erreur 91 quand je souhaite rendre actif mon classeur. Je n'ai quasi rien changer dans ce code ci donc je ne comprend pas d'où proviens mon erreur.
    Pourriez vous m'aidez ?

    Sub BDD_update()
        Dim QuelFichier
        QuelFichier = Application.GetOpenFilename("Excel, *.xlsm")
        If QuelFichier <> False Then
               
            Paste (QuelFichier)
            
        Else
            MsgBox "Vous n'avez pas sélectionné de fichier"
        End If
    End Sub
    
    Sub Paste(QuelFichier)
    Dim nomUn As Workbook
    Dim NewBook As Workbook
    Set nomUn = ThisWorkbook
    Dim i As Integer, a As Integer
    Dim nCells As Integer
    i = 1
      
    Set NewBook = Workbooks.Open(QuelFichier)
    
    NewBook.Activate
    
    Do
        If Cells(i, 3).Value() <> "" Then
            i = i + 1
        
        ElseIf Cells(i, 3).Value() = "" And nCells < 1 Then
            lRow = i - 1
            nCells = nCells + 1
            i = i + 1
        
        ElseIf Cells(i, 3).Value() = "" And nCells = 1 Then
            Sheets("eptica").Range(Cells(456, 1), Cells(i - 1, 4)).Copy
    
        End If
        
        
    Loop While nCells <> 2
       
    nomUn.Activate
    Worksheets("BDD").Range("B4").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
       
    Application.CutCopyMode = False
      
    NewBook.Close False
      
    End Sub



    • Partager sur Facebook
    • Partager sur Twitter
      13 juin 2022 à 18:16:18

      si ton erreur surgit sur le activate en ligne 42, supprime cette ligne: tu peux faire le PasteSpecial en spécifiant ton workbook directement, sans l'activer

      nomUn.Worksheets("BDD").Range("B4").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks _
              :=False, Transpose:=False


      Edit: et c'est quoi le "quasi rien de changer" ? ce quasi rien peut être la cause de l'erreur.

      Edit2: dans ta boucle, les Cells(..) font référence à la feuille active de ton classeur actif (si tu n'as qu'une seule feuille, pas de souci, si tu as en a plusieurs, ce n'est peut-être pas la bonne feuille d'ouverte)

      -
      Edité par umfred 13 juin 2022 à 18:20:32

      • Partager sur Facebook
      • Partager sur Twitter

      VBA - Erreur 91 avec un classeur en variable

      × 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