Synchroniser 2 Feuilles dans fichiers différents

Synchroniser 2 Feuilles dans fichiers différents - VB/VBA/VBS - Programmation

Marsh Posté le 15-02-2019 à 12:44:18    

Bonjour
 
Ne découvrant VBA que récemment, je sèche un peu sur le code ci-dessous que j'ai emprunté et légèrement transformé pour répondre à mon besoin.
Le pb c'est que lorsque je lance cette macro, il me sort une erreur 91 sur la ligne en gras et soulignée.
Je bloque vraiment sur le sujet, même en faisant une analyse ligne après ligne...
Si une âme charitable traine dans les parages   ;)
 
Note: J'ai bien nommé "POINTEUR" la colonne qui m'intéresse.
 
Sub Macro1()
    Dim Cellule As Range
    Dim Acceptance As Workbook
    Dim LastLine As Integer
    Dim Tableau1() As Variant
    Dim Tableau2() As Variant
    Dim I As Integer
    Dim wbMyWb As Workbook
Dim Nom_Fichier As Variant
         
    ' On cherche le numéro de la dernière ligne utilisée dans la colonne A
    LastLine = Cells(Rows.Count, "A" ).End(xlUp).Row
     
    ' On redimensionne les 2 tableaux de façon dynamique
    ReDim Tableau1(LastLine)
    ' On a besoin de stocker les valeurs de 10 colonnes
    ReDim Tableau2(LastLine, 10)
     
    ' On charge le tableau avec les valeurs de la colonne A
    For I = 2 To LastLine
      Tableau1(I) = Range("A" & Trim(Str(I)))
    Next I
     
    ' On ouvre le fichier excel2.xls et on lui donne le focus
    Nom_Fichier = Application.GetOpenFilename("Fichiers Excel (*.xlsx), *.xlsx" )
If Nom_Fichier <> False Then
    Workbooks.Open Filename:=Nom_Fichier
End If
    'Workbooks.Open Filename:="xxx.xlsx"
    Set Acceptance = ActiveWorkbook
    Acceptance.Activate
     
    ' On scanne la colonne B avec les valeurs contenues dans le tableau
    For I = 2 To LastLine
        Set Cellule = ActiveSheet.Range("POINTEUR" ).Find(Tableau1(I), lookat:=xlWhole)
       Tableau2(I, 1) = Cellule.Offset(0, 1).Value
        Tableau2(I, 2) = Cellule.Offset(0, 2).Value
        Tableau2(I, 3) = Cellule.Offset(0, 3).Value
        Tableau2(I, 4) = Cellule.Offset(0, 4).Value
        Tableau2(I, 5) = Cellule.Offset(0, 5).Value
        Tableau2(I, 6) = Cellule.Offset(0, 6).Value
        Tableau2(I, 7) = Cellule.Offset(0, 7).Value
        Tableau2(I, 8) = Cellule.Offset(0, 8).Value
        Tableau2(I, 9) = Cellule.Offset(0, 10).Value
        Tableau2(I, 10) = Cellule.Offset(0, 11).Value
         
    Next I
     
    'On referme le classeur Acceptance.xls dont on n'a plus besoin
    Acceptance.Close
     
    ' On recopie le contenu du tableau dans les colonnes Y, AA, AC, AD
    For I = 1 To LastLine
      Range("C" & Trim(Str(I))) = Tableau2(I, 1)
      Range("Z" & Trim(Str(I))) = Tableau2(I, 2)
      Range("AA" & Trim(Str(I))) = Tableau2(I, 3)
      Range("AB" & Trim(Str(I))) = Tableau2(I, 4)
      Range("AC" & Trim(Str(I))) = Tableau2(I, 5)
      Range("AD" & Trim(Str(I))) = Tableau2(I, 6)
      Range("AE" & Trim(Str(I))) = Tableau2(I, 7)
      Range("AF" & Trim(Str(I))) = Tableau2(I, 8)
      Range("AG" & Trim(Str(I))) = Tableau2(I, 9)
      Range("AH" & Trim(Str(I))) = Tableau2(I, 10)
       
    Next I
End Sub

Reply

Marsh Posté le 15-02-2019 à 12:44:18   

Reply

Marsh Posté le 27-02-2019 à 13:29:35    

 
            Bonjour,
 
            suffit juste de vérifier l'adresse de l'objet Cellule, déjà manuellement …
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed