Problème FOR/LOOP

Jeremy011991

XLDnaute Nouveau
Bonsoir à tous,

Voilà une exposition de mon problème concernant le FOR sous VBA...
J'ai bidouillé ce bout de code, afin de consulter sur chaque ligne d'un tableau, le nom du client, et rechercher dans un classeur autre (qui contient le devis du client en question), le montant du devis et ainsi le reporter dans mon tableau de "base de donnée".

Aucun soucis d'ouverture fichier etc (j'ai tenté avec des fonctions pour consulter le classeur même fermé, mais trop "compliqué" à mon niveau, et sans comprendre, je n'aime pas appliquer...
Cependant, la procédure "FOR" s'effectue bien pour ma première ligne, me retranscrit bien le montant dans la BD, mais la procédure n'enchaîne pas sur la deuxième, troisième, quatrième...lignes. L'instruction ne s'execute que sur ma première ligne.

Je me demande alors si le "FOR" est la bonne fonction à executer (je pense par exemple à WHILE)...

Si vous avez des idées, des conseils, je suis ouvert, et à l'écoute !

Merci à tous :)

(Par ailleur, la variable Lg pourrait indiquer la dernière ligne sur laquelle effectuer l'instruction. Mais je n'arrive pas à l'insérer à mon "code")...


Code:
Dim ligne As Integer
Dim numdevis As String, nomclient As String, Chemin As String, Fichier As String, Lg As String
Dim Adresse As String

Lg = Sheets("BDdevis").Cells(65536, 2).End(xlUp).Row + 1

For ligne = 3 To 20 Step 1
    nomclient = Range("A" & ligne).Value
    numdevis = Range("D" & ligne).Value
    Adresse = nomclient & " " & numdevis
    
    Do
    Chemin = "C:\Users\Cosimo\Desktop\Devis\Particuliers\"
    Fichier = Adresse & ".xls"
    Workbooks.Open (Chemin & Fichier)
    Range("F40").Copy
    Workbooks("BD - Copie").Activate
    Sheets("BDdevis").Activate
    Range("H" & ligne).PasteSpecial xlPasteValuesAndNumberFormats
    Workbooks(Dir(Chemin & Fichier)).Close savechanges:=False
    
    Loop
Next
 

Fred0o

XLDnaute Barbatruc
Re : Problème FOR/LOOP

Bonjour Jeremy011991,

Si j'ai bien tout compris à ta demande, le "Do...Loop", n'est pas nécessaire. Voici donc le code modifié, à tester :
VB:
    Dim ligne As Integer
    Dim numdevis As String, nomclient As String, Chemin As String, Fichier As String, Lg As String
    Dim Adresse As String
    
    Lg = Sheets("BDdevis").Cells(65536, 2).End(xlUp).Row + 1
    Chemin = "C:\Users\Cosimo\Desktop\Devis\Particuliers\"
    
    For ligne = 3 To 20 Step 1
        nomclient = Range("A" & ligne).Value
        numdevis = Range("D" & ligne).Value
        Adresse = nomclient & " " & numdevis
        Fichier = Adresse & ".xls"
        Workbooks.Open (Chemin & Fichier)
        Range("F40").Copy
        Workbooks("BD - Copie").Activate
        Sheets("BDdevis").Activate
        Range("H" & ligne).PasteSpecial xlPasteValuesAndNumberFormats
        Workbooks(Dir(Chemin & Fichier)).Close savechanges:=False
    Next

A+
 

Discussions similaires