Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

récupération de contenu de cellule

3 réponses
Avatar
jpthillard
Bonjour =E0 tous,
Je voudrais mettre au point une macro qui me permettrai de r=E9cup=E9rer
le contenu de cellules de 89 fichiers DT**.xls. Ces fichiers se
nomment DT001.xls, DT002.xls jusqu'=E0 DT089.xls
La plage de cellules =E0 copier commence en ligne 9 et s'=E9tend de la
colonne B =E0 O.
Le nombre de lignes varie d'un fichier =E0 l'autre.
Pr=E9cision les fichiers DT**.xls sont dans le m=EAme dossier.
Est-ce que quelqu'un pourrait m'aider =E0 concevoir cette Macro.

Merci d'avance pour le temps que je vais =E9conomiser.

JP

3 réponses

Avatar
LSteph
Bonjour,
Ces deux exemples sont à intégrer à un classeur vierge

1-(Par macro) les fichiers sont ouverts quand même:

Option Explicit

Sub recupDT()
Dim f As String
ChDir "c:repDT"
f = Dir("dt*.xls")
Application.ScreenUpdating = False
[b2].Activate
Do While Len(f) > 0
Workbooks.Open (f)
With ActiveWorkbook
ThisWorkbook.Worksheets(1).[b65536].End(xlUp)(2).Offset(0, -1) = f
Range("o9", .Worksheets(1).[b65536].End(xlUp).Address).Copy _
Destination:=ThisWorkbook.Worksheets(1).[b65536].End(xlUp)(2)
.Close False
End With
f = Dir
Loop
End Sub

2-Si on veut ne pas ouvrir directement les fichiers, c'est possible
et sans besoin de macro(par consolidation):

D'abord envisager des blocs égaux (les vides seront partis après)
B9:oN
et selon le plus grand bloc (pour avoir tout)exemple
Se positionner en B2
Données Consolider: c:repDT[dt*.xls]Feuil1!B9:o59
ajouter,(cocher avec liaison) Ok
Données - Grouper et Creer un plan -Effacer le plan
copier la première colonne b2:B(n*89)
coller en A2 et sur sélection de la colonne A
Edition remplacer *[ par (laisser vide) Remplacer tout
Edition remplacer ]*B par " ligne "

Sélectionner tout le tableau, Trier par Colonne A
supprimer les lignes qui se retrouvent en haut(les totalisations)
enfin un copier coller spécial valeur pour virer les liaisons.

Cordialement.

--
lSteph
( as-reçu ma réponse à ton mai?l.. cela fait déjà un moment)

Bonjour à tous,
Je voudrais mettre au point une macro qui me permettrai de récupérer
le contenu de cellules de 89 fichiers DT**.xls. Ces fichiers se
nomment DT001.xls, DT002.xls jusqu'à DT089.xls
La plage de cellules à copier commence en ligne 9 et s'étend de la
colonne B à O.
Le nombre de lignes varie d'un fichier à l'autre.
Précision les fichiers DT**.xls sont dans le même dossier.
Est-ce que quelqu'un pourrait m'aider à concevoir cette Macro.

Merci d'avance pour le temps que je vais économiser.

JP




Avatar
JB
Bonjour,

Sub syntèseClasseursBD()
[A2].CurrentRegion.Offset(1, 0).Resize().Clear
Set maitre = ActiveWorkbook
Repertoire = ThisWorkbook.Path
nf = Dir(Repertoire & "DT*.xls") ' premier fichier
Do While nf <> ""
Workbooks.Open Filename:=Repertoire & "" & nf
ActiveSheet.Range([B9:O9], [B9:O9].End(xlDown)).Copy _
maitre.Sheets(1).[A65000].End(xlUp).Offset(1, 0)
ActiveWorkbook.Close False
nf = Dir ' fichier suivant
Loop
End Sub

JB




On 22 nov, 06:33, wrote:
Bonjour à tous,
Je voudrais mettre au point une macro qui me permettrai de récupérer
le contenu de cellules de 89 fichiers DT**.xls. Ces fichiers se
nomment DT001.xls, DT002.xls jusqu'à DT089.xls
La plage de cellules à copier commence en ligne 9 et s'étend de la
colonne B à O.
Le nombre de lignes varie d'un fichier à l'autre.
Précision les fichiers DT**.xls sont dans le même dossier.
Est-ce que quelqu'un pourrait m'aider à concevoir cette Macro.

Merci d'avance pour le temps que je vais économiser.

JP


Avatar
jpthillard
On 22 nov, 09:26, JB wrote:
Bonjour,

Sub syntèseClasseursBD()
[A2].CurrentRegion.Offset(1, 0).Resize().Clear
Set maitre = ActiveWorkbook
Repertoire = ThisWorkbook.Path
nf = Dir(Repertoire & "DT*.xls") ' premier fichier
Do While nf <> ""
Workbooks.Open Filename:=Repertoire & "" & nf
ActiveSheet.Range([B9:O9], [B9:O9].End(xlDown)).Copy _
maitre.Sheets(1).[A65000].End(xlUp).Offset(1, 0)
ActiveWorkbook.Close False
nf = Dir ' fichier suivant
Loop
End Sub

JB

On 22 nov, 06:33, wrote:



Bonjour à tous,
Je voudrais mettre au point une macro qui me permettrai de récupérer
le contenu de cellules de 89 fichiers DT**.xls. Ces fichiers se
nomment DT001.xls, DT002.xls jusqu'à DT089.xls
La plage de cellules à copier commence en ligne 9 et s'étend de la
colonne B à O.
Le nombre de lignes varie d'un fichier à l'autre.
Précision les fichiers DT**.xls sont dans le même dossier.
Est-ce que quelqu'un pourrait m'aider à concevoir cette Macro.

Merci d'avance pour le temps que je vais économiser.

JP- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -


Merci à LSteph et JB. Je me suis tapé le travail à l'os pour cette
fois-ci mais je compte bien mettre votre aide à contribution pour
autre fois.
Merci encore
JP