Importation de données Excel non complète dans une feuille
Bonjour à tous,
je me tourne vers vous afin si possible d'avoir une solution a mon problème car la je bloque, j'ai des fichiers excel dans les quelles il y a des données, dans un autre fichier excel j'ai en quelques sorte le consolidé de ces données que je récupère via le code VBA ci-dessous, cependant lors de l'importations il me manque toujours les huit dernières lignes qui ne sont pas importé et cela pour l'ensembles des fichiers sources.
l'importations des données dans les fichiers sources a partir A9 jusqu’à la fin, cependant il y a une condition ou l'importation est selon un critère (colonne D9) car dans mon code il compte le nombre de ligne qu'il y a en dans la colonne D a partir de D9 jusqu’à la fin et il importe cette plage (A9 jusqu'a AG(x) ou x est déterminer par le critère expliqué plus haut.
merci a tous .
voila le code:
Option Explicit
Sub Importfiles() 'Titre du code dans la macro
Dim Chemin As String ''
Dim Fichier As String, Lecture As String ''
Chemin = ThisWorkbook.Path ''
Lecture = Dir(Chemin & "\" & "Reporting *.xlsx") ''
Dim WbDest As Workbook, WbSource As Workbook
Dim WksNewSheet As Worksheet
Dim NomFichier As String
Dim I As Long ' I: Variable qui compte le nombre de ligne du fichier Cible (Global Report) afin d'incrémenter au dessus des Items
Dim S As Integer
' code pour supprimer les lignes 2 a 3000 exemple avant d'importer les données
Set WbDest = ActiveWorkbook
Do While Lecture <> "" 'démarre la boucle jusqu’au dernier fichier disponible dans le répertoire
Set WbSource = Workbooks.Open(Chemin & "\" & Lecture) 'ouvre le fichier actuel à importer
Set WksNewSheet = WbSource.Sheets("Oportunity_Pipe") 'sélectionne la feuille de données à importer
WksNewSheet.Activate 'active cette feuille
'S = Range("D9", Selection.End(xlDown)).Cells.Count 'compte le nombre de lignes de la colonne D (Raison Social) déjà utilisées dans ce fichier - (moin les 8 premiers
WksNewSheet.Select
'''''' il me semble que le souci est la
Range("D9").Select
S = Range("D9", Selection.End(xlDown)).Cells.Count
''''''
'S = Range("D9").End(xlDown).Cells.Count
'MsgBox S
Range(Cells(9, 1), Cells(S, 33)).Select 'selection des données que l’on veut importer (valeur NbrLignes)
'WksNewSheet.Select
Selection.Copy 'copie les données sélectionnées
'S = Null
WbDest.Activate 'retourne vers le fichier de départ
I = ActiveSheet.UsedRange.Rows.Count 'compte le nombre de lignes déjà utilisées dans ce fichier
Cells(I + 1, 1).Select 'sélection de la cellule où on veut coller les données (la première vide)
ActiveSheet.Paste ' Colle les données
' MsgBox S
Application.CutCopyMode = False ' Vide le Presse Papier
WbSource.Close False 'ferme le fichier source
Lecture = Dir 'va vers le fichier suivant à importer
Loop 'recommece la boucle avec le fichier suivant
WbDest.Activate
End Sub
Bonjour,
Evidemment, il faut ajouter 8 à S (nombre de lignes avant 9).
Bonjour MFerrand,
Merci encore