Pb de boucle infinie sur récupération de données sur fichier externe

Bonjour à tous,

Je voudrais qu'EXCEL copie les données d'un tableau (files 2 - Copier les données à partir de F5) sur un autre tableau (Files 1, copie à partir de A12) sans ouvrir EXCEL.

Lors de l'essai de mon code, aucun problème (si ce n'est que j'ai du remplacer la fonction cells() par " "F" & variable de numéro de lignes car les lignes de s'incrémentaient pas et j'avais toujours le même nom retourner.

Le souci que je rencontrer est dans ma boucle While. J'ai crée une boucle infinie. Je voulais lui dire que tant que la cellule n'est pas vide alors on continue la boucle. Le problème est que comme c'est la création d'un lien, j'ai l'impression que la variable renvoie cette création et que, du fait, elle ne soit jamais vide. Je voudrais qu'il analyse les valeurs mais je ne sais pas trop comment faire. Merci à tous pour votre aide !

Voici mon code :

Sub Recopie_fichier2()
'Recopie du deuxième fichier
'Déclaration des variables pour la recopie du fichier 2 / Onglet Personne
Dim files2_chemin, files2_feuille, chemin_complet As String
Dim files2_numero_ligne, files1_numero_ligne,  As Integer ' Pour la boucle qui recopie les valeurs, ligne par ligne

'Assignation des variables files2=fichier qui doit être recopié. Files1=fichier actif dans lequel je copie
files2_numero_ligne = 5
files1_numero_ligne = 12

files2_chemin = "='D:\DOC\TAF\[Base de données.xlsx]"
files2_feuille = "Personne"
chemin_complet = files2_chemin & files2_feuille & "'!F" & files2_numero_ligne ' Au début j'avais taper cells(files2_numero_ligne,6).address mais la fonction renvoyait mon adresse avec des " $ ". Ce qui fait que rien de s'incrémentait.

While chemin_complet <> "" ' Tant que les cellules de chemin_complet sont vide alors...
   Cells(files1_numero_ligne, 1) = Eff_chemin_complet
   files2__numero_ligne = files2_numero_ligne + 1
   files1_numero_ligne = files1_numero_ligne + 1
   chemin_complet = files2_chemin & files2_feuille & "'!F" & files2_numero_ligne 'Je ne sais pas trop si cette ligne est nécéssaire    
Wend

End Sub

Bonjour

Ta variable chemin_complet ne sera jamais vide

Bye

RE

Attention aussi à cette ligne :

files2__numero_ligne = files2_numero_ligne + 1

Un underscore en trop, tu n'évolues pas

files2_numero_ligne = files2_numero_ligne + 1

D'autre part est-ce voulu que Eff_chemin_complet soit toujours vide...

A+

Bonjour

Ce code fonctionne:

Sub Recopie_fichier2()
'Recopie du deuxième fichier
Dim chemin_complet As String
Dim files2_numero_ligne, files1_numero_ligne   As Integer ' Pour la boucle qui recopie les valeurs, ligne par ligne

'Assignation des variables files2=fichier qui doit être recopié. Files1=fichier actif dans lequel je copie
files2_numero_ligne = 5
files1_numero_ligne = 12

chemin_complet = "C:\Mes_Dossiers\Développement\Excel\Essai.xlsx"
    Workbooks.Open Filename:=chemin_complet
    While Sheets("Personne").Cells(files2_numero_ligne, 6) <> ""
        Sheets("Personne").Rows(files2_numero_ligne).Copy ThisWorkbook.Sheets(1).Range("A" & files1_numero_ligne)
        files2_numero_ligne = files2_numero_ligne + 1
        files1_numero_ligne = files1_numero_ligne + 1

    Wend
    ActiveWorkbook.Close

End Sub

Bien sûr, reste à remplacer le chemin par ton fichier à recopier (2) et voir si je teste bien la bonne cellule pour recopier

A+

Génial ! Ouvrir le classeur et le refermer c'est tellement simple qu'avec mes nombreuses prises de têtes je n'y avais pas pensé !

Merci beaucoup ! ! !

Rechercher des sujets similaires à "boucle infinie recuperation donnees fichier externe"