A voir également:
- Code VBA non fonctionnel
- Code ascii - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code blocks - Télécharger - Langages
3 réponses
Bonjour,
Teste comme ceci, la variable Dl définie la dernière ligne de chaque classeur ouvert
Teste comme ceci, la variable Dl définie la dernière ligne de chaque classeur ouvert
Option Explicit Sub recup() Dim Dl%, Chemin$, Fichier$ Range("A1").Select Chemin = "C:\Users\Documents\fournisseurs\" Fichier = Dir(Chemin & "*.xlsx") Do While Fichier <> "" Workbooks.Open Filename:=Chemin & Fichier Dl = Range("A" & Rows.Count).End(xlUp).Row 'n° de la dernière ligne non vide de la colonne A Range("A1:A" & Dl).Copy 'Sélection de la cellule A2 à la cellule A et dernière ligne (à modifier suivant valeur à copier) ThisWorkbook.Activate ActiveSheet.Paste Windows(Fichier).Activate Application.CutCopyMode = False ActiveWorkbook.Close savechanges:=False ThisWorkbook.Activate Range("A65536").End(xlUp).Offset(1, 0).Select Fichier = Dir ' Fichier suivant Loop End Sub
Bonjour,
Une facon de faire relativement simple. Sans les entetes, que vous devez avoir sur le classeur collecteur
nom de feuille classeur de donnees a adapter
vu le nombre de fichiers (200), il faudrait plutot s'orienter vers une recuperation de donnees classeurs fermes
Une facon de faire relativement simple. Sans les entetes, que vous devez avoir sur le classeur collecteur
nom de feuille classeur de donnees a adapter
Sub recup() 'Application.ScreenUpdating = False 'enlever le ' des que ok Chemin = "C:\Users\Documents\fournisseurs\" Fichier = Dir(Chemin & "*.xlsx") Do While Fichier <> "" Workbooks.Open Filename:=Chemin & Fichier TN_1 = Worksheets("feuil1").Range("A2:Z" & Range("A" & Rows.Count).End(xlUp).Row) 'mise en memoire Workbooks(Fichier).Close False Worksheets("feuil2").Range("A" & Range("A" & Rows.Count).End(xlUp).Row + 1).Resize(UBound(TN_1, 1), UBound(TN_1, 2)) = TN_1 Fichier = Dir ' Fichier suivant Loop ThisWorkbook.Save Application.ScreenUpdating = True End Sub
vu le nombre de fichiers (200), il faudrait plutot s'orienter vers une recuperation de donnees classeurs fermes
Je n'ai pas modifié la ligne 12, peut être est-ce là que le bas blesse : Range("A1:A" & Dl).Copy 'Sélection de la cellule A2 à la cellule A et dernière ligne (à modifier suivant valeur à copier) ?
Je fais des tests pour voir...
Sans exemple devant mon nez, je ne peut deviner