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

Copie de tableaux

7 réponses
Avatar
JP
Bonjour
voila mon problème j'ai plusieurs fichiers de une feuille avec un tableau de
format identique sauf la longueur
je voudrais collationner le tout sur un seul et même tableau existe-il une
fonction ou une macro ?

Merci

7 réponses

Avatar
FFO
Salut JP

J'ai proposé à un interlocuteur qui voulait regrouper les données de
plusieurs fichiers Excel dans un seul et même document excel ce code :

Si les fichiers sont tous dans un même répertoire ce code pour récupérer
dans un fichier excel toutes les données de tous les fichiers :


Range("A1").Select
MesFichiers = Dir("C:Chemin*.xls")
While MesFichiers <> ""
Workbooks.Open Filename:="C:Chemin" & MesFichiers
If ThisWorkbook.Worksheets("Feuil1").Range("A1") = "" Then
Workbooks(MesFichiers).Worksheets("Feuil1").Range("A1",
[A65535].End(xlUp)).EntireRow. _
Copy ThisWorkbook.Worksheets("Feuil1").Range("A65535").End(xlUp)
Else
Workbooks(MesFichiers).Worksheets("Feuil1").Range("A1",
[A65535].End(xlUp)).EntireRow. _
Copy ThisWorkbook.Worksheets("Feuil1").Range("A65535").End(xlUp).Offset(1, 0)
End If
Workbooks(MesFichiers).Close
MesFichiers = Dir
Wend

Autre option avec une boîte de dialogue pour sélectionner avec la souris le
répertoire et le 1° fichier à traiter :

Range("A1").Select
Workbooks.Open Filename:=Application.GetOpenFilename("(*.xls),")
MesFichiers = Dir(ActiveWorkbook.Path & "*.xls")
ActiveWorkbook.Close
While MesFichiers <> ""
Workbooks.Open Filename:="C:" & MesFichiers
If ThisWorkbook.Worksheets("Feuil1").Range("A1") = "" Then
Workbooks(MesFichiers).Worksheets("Feuil1").Range("A1",
[A65535].End(xlUp)).EntireRow. _
Copy ThisWorkbook.Worksheets("Feuil1").Range("A65535").End(xlUp)
Else
Workbooks(MesFichiers).Worksheets("Feuil1").Range("A1",
[A65535].End(xlUp)).EntireRow. _
Copy ThisWorkbook.Worksheets("Feuil1").Range("A65535").End(xlUp).Offset(1, 0)
End If
Workbooks(MesFichiers).Close
MesFichiers = Dir
Wend

Tu sélectionnes un premier fichier dans un répertoire et tous les fichiers
de ce répertoire seront traités automatiquement

Peut être tes solutions
Dis moi !!!




Bonjour
voila mon problème j'ai plusieurs fichiers de une feuille avec un tableau de
format identique sauf la longueur
je voudrais collationner le tout sur un seul et même tableau existe-il une
fonction ou une macro ?

Merci


Avatar
JP
Bonjour
merci mais j'ai un message d'erreur dans les 2 cas :
"Erreur de compil End if sans bloc if"
je ne suis pas assez caler pour corriger

je pense que tu ne va pas tarder a me donner la solution merci



Salut JP

J'ai proposé à un interlocuteur qui voulait regrouper les données de
plusieurs fichiers Excel dans un seul et même document excel ce code :

Si les fichiers sont tous dans un même répertoire ce code pour récupérer
dans un fichier excel toutes les données de tous les fichiers :


Range("A1").Select
MesFichiers = Dir("C:Chemin*.xls")
While MesFichiers <> ""
Workbooks.Open Filename:="C:Chemin" & MesFichiers
If ThisWorkbook.Worksheets("Feuil1").Range("A1") = "" Then
Workbooks(MesFichiers).Worksheets("Feuil1").Range("A1",
[A65535].End(xlUp)).EntireRow. _
Copy ThisWorkbook.Worksheets("Feuil1").Range("A65535").End(xlUp)
Else
Workbooks(MesFichiers).Worksheets("Feuil1").Range("A1",
[A65535].End(xlUp)).EntireRow. _
Copy ThisWorkbook.Worksheets("Feuil1").Range("A65535").End(xlUp).Offset(1, 0)
End If
Workbooks(MesFichiers).Close
MesFichiers = Dir
Wend

Autre option avec une boîte de dialogue pour sélectionner avec la souris le
répertoire et le 1° fichier à traiter :

Range("A1").Select
Workbooks.Open Filename:=Application.GetOpenFilename("(*.xls),")
MesFichiers = Dir(ActiveWorkbook.Path & "*.xls")
ActiveWorkbook.Close
While MesFichiers <> ""
Workbooks.Open Filename:="C:" & MesFichiers
If ThisWorkbook.Worksheets("Feuil1").Range("A1") = "" Then
Workbooks(MesFichiers).Worksheets("Feuil1").Range("A1",
[A65535].End(xlUp)).EntireRow. _
Copy ThisWorkbook.Worksheets("Feuil1").Range("A65535").End(xlUp)
Else
Workbooks(MesFichiers).Worksheets("Feuil1").Range("A1",
[A65535].End(xlUp)).EntireRow. _
Copy ThisWorkbook.Worksheets("Feuil1").Range("A65535").End(xlUp).Offset(1, 0)
End If
Workbooks(MesFichiers).Close
MesFichiers = Dir
Wend

Tu sélectionnes un premier fichier dans un répertoire et tous les fichiers
de ce répertoire seront traités automatiquement

Peut être tes solutions
Dis moi !!!




Bonjour
voila mon problème j'ai plusieurs fichiers de une feuille avec un tableau de
format identique sauf la longueur
je voudrais collationner le tout sur un seul et même tableau existe-il une
fonction ou une macro ?

Merci




Avatar
FFO
Rebonjour à toi

Je viens de tester le premier il fonctionne à merveille

As tu bien récupéré tout le code ???
Pour le premier de

Range("A1").Select

à

Wend

Je te joins sur ce lien un fichier Excel avec ce code

http://www.cijoint.fr/cij40555558335419.xls

Enregistres le dans un dossier autre que C:
Dans par exemple C:Toto

Mets sous C: quelques fichiers Excel à traiter

Ouvre mon fichier et exécute la macro1

Regarde le résultat Onglet "Feuil1"

Et dis moi !!!


Bonjour
merci mais j'ai un message d'erreur dans les 2 cas :
"Erreur de compil End if sans bloc if"
je ne suis pas assez caler pour corriger

je pense que tu ne va pas tarder a me donner la solution merci



Salut JP

J'ai proposé à un interlocuteur qui voulait regrouper les données de
plusieurs fichiers Excel dans un seul et même document excel ce code :

Si les fichiers sont tous dans un même répertoire ce code pour récupérer
dans un fichier excel toutes les données de tous les fichiers :


Range("A1").Select
MesFichiers = Dir("C:Chemin*.xls")
While MesFichiers <> ""
Workbooks.Open Filename:="C:Chemin" & MesFichiers
If ThisWorkbook.Worksheets("Feuil1").Range("A1") = "" Then
Workbooks(MesFichiers).Worksheets("Feuil1").Range("A1",
[A65535].End(xlUp)).EntireRow. _
Copy ThisWorkbook.Worksheets("Feuil1").Range("A65535").End(xlUp)
Else
Workbooks(MesFichiers).Worksheets("Feuil1").Range("A1",
[A65535].End(xlUp)).EntireRow. _
Copy ThisWorkbook.Worksheets("Feuil1").Range("A65535").End(xlUp).Offset(1, 0)
End If
Workbooks(MesFichiers).Close
MesFichiers = Dir
Wend

Autre option avec une boîte de dialogue pour sélectionner avec la souris le
répertoire et le 1° fichier à traiter :

Range("A1").Select
Workbooks.Open Filename:=Application.GetOpenFilename("(*.xls),")
MesFichiers = Dir(ActiveWorkbook.Path & "*.xls")
ActiveWorkbook.Close
While MesFichiers <> ""
Workbooks.Open Filename:="C:" & MesFichiers
If ThisWorkbook.Worksheets("Feuil1").Range("A1") = "" Then
Workbooks(MesFichiers).Worksheets("Feuil1").Range("A1",
[A65535].End(xlUp)).EntireRow. _
Copy ThisWorkbook.Worksheets("Feuil1").Range("A65535").End(xlUp)
Else
Workbooks(MesFichiers).Worksheets("Feuil1").Range("A1",
[A65535].End(xlUp)).EntireRow. _
Copy ThisWorkbook.Worksheets("Feuil1").Range("A65535").End(xlUp).Offset(1, 0)
End If
Workbooks(MesFichiers).Close
MesFichiers = Dir
Wend

Tu sélectionnes un premier fichier dans un répertoire et tous les fichiers
de ce répertoire seront traités automatiquement

Peut être tes solutions
Dis moi !!!




Bonjour
voila mon problème j'ai plusieurs fichiers de une feuille avec un tableau de
format identique sauf la longueur
je voudrais collationner le tout sur un seul et même tableau existe-il une
fonction ou une macro ?

Merci






Avatar
JP
Re bonjour

jais testé ton dernier fichier ca marche un peu mieux en fait in me coppie
qu'un seul fichier sur 3 que j'ais mis dans C:DATA alors que la macro je
l'ai mise dans c:toto
??
A+

Rebonjour à toi

Je viens de tester le premier il fonctionne à merveille

As tu bien récupéré tout le code ???
Pour le premier de

Range("A1").Select

à

Wend

Je te joins sur ce lien un fichier Excel avec ce code

http://www.cijoint.fr/cij40555558335419.xls

Enregistres le dans un dossier autre que C:
Dans par exemple C:Toto

Mets sous C: quelques fichiers Excel à traiter

Ouvre mon fichier et exécute la macro1

Regarde le résultat Onglet "Feuil1"

Et dis moi !!!


Bonjour
merci mais j'ai un message d'erreur dans les 2 cas :
"Erreur de compil End if sans bloc if"
je ne suis pas assez caler pour corriger

je pense que tu ne va pas tarder a me donner la solution merci



Salut JP

J'ai proposé à un interlocuteur qui voulait regrouper les données de
plusieurs fichiers Excel dans un seul et même document excel ce code :

Si les fichiers sont tous dans un même répertoire ce code pour récupérer
dans un fichier excel toutes les données de tous les fichiers :


Range("A1").Select
MesFichiers = Dir("C:Chemin*.xls")
While MesFichiers <> ""
Workbooks.Open Filename:="C:Chemin" & MesFichiers
If ThisWorkbook.Worksheets("Feuil1").Range("A1") = "" Then
Workbooks(MesFichiers).Worksheets("Feuil1").Range("A1",
[A65535].End(xlUp)).EntireRow. _
Copy ThisWorkbook.Worksheets("Feuil1").Range("A65535").End(xlUp)
Else
Workbooks(MesFichiers).Worksheets("Feuil1").Range("A1",
[A65535].End(xlUp)).EntireRow. _
Copy ThisWorkbook.Worksheets("Feuil1").Range("A65535").End(xlUp).Offset(1, 0)
End If
Workbooks(MesFichiers).Close
MesFichiers = Dir
Wend

Autre option avec une boîte de dialogue pour sélectionner avec la souris le
répertoire et le 1° fichier à traiter :

Range("A1").Select
Workbooks.Open Filename:=Application.GetOpenFilename("(*.xls),")
MesFichiers = Dir(ActiveWorkbook.Path & "*.xls")
ActiveWorkbook.Close
While MesFichiers <> ""
Workbooks.Open Filename:="C:" & MesFichiers
If ThisWorkbook.Worksheets("Feuil1").Range("A1") = "" Then
Workbooks(MesFichiers).Worksheets("Feuil1").Range("A1",
[A65535].End(xlUp)).EntireRow. _
Copy ThisWorkbook.Worksheets("Feuil1").Range("A65535").End(xlUp)
Else
Workbooks(MesFichiers).Worksheets("Feuil1").Range("A1",
[A65535].End(xlUp)).EntireRow. _
Copy ThisWorkbook.Worksheets("Feuil1").Range("A65535").End(xlUp).Offset(1, 0)
End If
Workbooks(MesFichiers).Close
MesFichiers = Dir
Wend

Tu sélectionnes un premier fichier dans un répertoire et tous les fichiers
de ce répertoire seront traités automatiquement

Peut être tes solutions
Dis moi !!!




Bonjour
voila mon problème j'ai plusieurs fichiers de une feuille avec un tableau de
format identique sauf la longueur
je voudrais collationner le tout sur un seul et même tableau existe-il une
fonction ou une macro ?

Merci








Avatar
JP
Oublie mon dernier message ca a fini par fonctioné j'ai du faire un erreur

Merci a Toi


Re bonjour

jais testé ton dernier fichier ca marche un peu mieux en fait in me coppie
qu'un seul fichier sur 3 que j'ais mis dans C:DATA alors que la macro je
l'ai mise dans c:toto
??
A+

Rebonjour à toi

Je viens de tester le premier il fonctionne à merveille

As tu bien récupéré tout le code ???
Pour le premier de

Range("A1").Select

à

Wend

Je te joins sur ce lien un fichier Excel avec ce code

http://www.cijoint.fr/cij40555558335419.xls

Enregistres le dans un dossier autre que C:
Dans par exemple C:Toto

Mets sous C: quelques fichiers Excel à traiter

Ouvre mon fichier et exécute la macro1

Regarde le résultat Onglet "Feuil1"

Et dis moi !!!


Bonjour
merci mais j'ai un message d'erreur dans les 2 cas :
"Erreur de compil End if sans bloc if"
je ne suis pas assez caler pour corriger

je pense que tu ne va pas tarder a me donner la solution merci



Salut JP

J'ai proposé à un interlocuteur qui voulait regrouper les données de
plusieurs fichiers Excel dans un seul et même document excel ce code :

Si les fichiers sont tous dans un même répertoire ce code pour récupérer
dans un fichier excel toutes les données de tous les fichiers :


Range("A1").Select
MesFichiers = Dir("C:Chemin*.xls")
While MesFichiers <> ""
Workbooks.Open Filename:="C:Chemin" & MesFichiers
If ThisWorkbook.Worksheets("Feuil1").Range("A1") = "" Then
Workbooks(MesFichiers).Worksheets("Feuil1").Range("A1",
[A65535].End(xlUp)).EntireRow. _
Copy ThisWorkbook.Worksheets("Feuil1").Range("A65535").End(xlUp)
Else
Workbooks(MesFichiers).Worksheets("Feuil1").Range("A1",
[A65535].End(xlUp)).EntireRow. _
Copy ThisWorkbook.Worksheets("Feuil1").Range("A65535").End(xlUp).Offset(1, 0)
End If
Workbooks(MesFichiers).Close
MesFichiers = Dir
Wend

Autre option avec une boîte de dialogue pour sélectionner avec la souris le
répertoire et le 1° fichier à traiter :

Range("A1").Select
Workbooks.Open Filename:=Application.GetOpenFilename("(*.xls),")
MesFichiers = Dir(ActiveWorkbook.Path & "*.xls")
ActiveWorkbook.Close
While MesFichiers <> ""
Workbooks.Open Filename:="C:" & MesFichiers
If ThisWorkbook.Worksheets("Feuil1").Range("A1") = "" Then
Workbooks(MesFichiers).Worksheets("Feuil1").Range("A1",
[A65535].End(xlUp)).EntireRow. _
Copy ThisWorkbook.Worksheets("Feuil1").Range("A65535").End(xlUp)
Else
Workbooks(MesFichiers).Worksheets("Feuil1").Range("A1",
[A65535].End(xlUp)).EntireRow. _
Copy ThisWorkbook.Worksheets("Feuil1").Range("A65535").End(xlUp).Offset(1, 0)
End If
Workbooks(MesFichiers).Close
MesFichiers = Dir
Wend

Tu sélectionnes un premier fichier dans un répertoire et tous les fichiers
de ce répertoire seront traités automatiquement

Peut être tes solutions
Dis moi !!!




Bonjour
voila mon problème j'ai plusieurs fichiers de une feuille avec un tableau de
format identique sauf la longueur
je voudrais collationner le tout sur un seul et même tableau existe-il une
fonction ou une macro ?

Merci










Avatar
FFO
Rebonjour à toi

Attention si tu mets les fichiers à traiter dans C:DATA au lieu de C:
comme je te l'avais préconisé il faut impérativement actualiser le code pour
les lignes :

MesFichiers = Dir("C:*.xls")
Workbooks.Open Filename:="C:" & MesFichiers

Mettre en lieu et place :

MesFichiers = Dir("C:DATA*.xls")
Workbooks.Open Filename:="C:DATA" & MesFichiers

Ces 2 lignes font appel au chemin du dossier qui possède les fichiers à
traiter

Celà devrait normalement mieux fonctionner

Dis moi !!!!




Re bonjour

jais testé ton dernier fichier ca marche un peu mieux en fait in me coppie
qu'un seul fichier sur 3 que j'ais mis dans C:DATA alors que la macro je
l'ai mise dans c:toto
??
A+

Rebonjour à toi

Je viens de tester le premier il fonctionne à merveille

As tu bien récupéré tout le code ???
Pour le premier de

Range("A1").Select

à

Wend

Je te joins sur ce lien un fichier Excel avec ce code

http://www.cijoint.fr/cij40555558335419.xls

Enregistres le dans un dossier autre que C:
Dans par exemple C:Toto

Mets sous C: quelques fichiers Excel à traiter

Ouvre mon fichier et exécute la macro1

Regarde le résultat Onglet "Feuil1"

Et dis moi !!!


Bonjour
merci mais j'ai un message d'erreur dans les 2 cas :
"Erreur de compil End if sans bloc if"
je ne suis pas assez caler pour corriger

je pense que tu ne va pas tarder a me donner la solution merci



Salut JP

J'ai proposé à un interlocuteur qui voulait regrouper les données de
plusieurs fichiers Excel dans un seul et même document excel ce code :

Si les fichiers sont tous dans un même répertoire ce code pour récupérer
dans un fichier excel toutes les données de tous les fichiers :


Range("A1").Select
MesFichiers = Dir("C:Chemin*.xls")
While MesFichiers <> ""
Workbooks.Open Filename:="C:Chemin" & MesFichiers
If ThisWorkbook.Worksheets("Feuil1").Range("A1") = "" Then
Workbooks(MesFichiers).Worksheets("Feuil1").Range("A1",
[A65535].End(xlUp)).EntireRow. _
Copy ThisWorkbook.Worksheets("Feuil1").Range("A65535").End(xlUp)
Else
Workbooks(MesFichiers).Worksheets("Feuil1").Range("A1",
[A65535].End(xlUp)).EntireRow. _
Copy ThisWorkbook.Worksheets("Feuil1").Range("A65535").End(xlUp).Offset(1, 0)
End If
Workbooks(MesFichiers).Close
MesFichiers = Dir
Wend

Autre option avec une boîte de dialogue pour sélectionner avec la souris le
répertoire et le 1° fichier à traiter :

Range("A1").Select
Workbooks.Open Filename:=Application.GetOpenFilename("(*.xls),")
MesFichiers = Dir(ActiveWorkbook.Path & "*.xls")
ActiveWorkbook.Close
While MesFichiers <> ""
Workbooks.Open Filename:="C:" & MesFichiers
If ThisWorkbook.Worksheets("Feuil1").Range("A1") = "" Then
Workbooks(MesFichiers).Worksheets("Feuil1").Range("A1",
[A65535].End(xlUp)).EntireRow. _
Copy ThisWorkbook.Worksheets("Feuil1").Range("A65535").End(xlUp)
Else
Workbooks(MesFichiers).Worksheets("Feuil1").Range("A1",
[A65535].End(xlUp)).EntireRow. _
Copy ThisWorkbook.Worksheets("Feuil1").Range("A65535").End(xlUp).Offset(1, 0)
End If
Workbooks(MesFichiers).Close
MesFichiers = Dir
Wend

Tu sélectionnes un premier fichier dans un répertoire et tous les fichiers
de ce répertoire seront traités automatiquement

Peut être tes solutions
Dis moi !!!




Bonjour
voila mon problème j'ai plusieurs fichiers de une feuille avec un tableau de
format identique sauf la longueur
je voudrais collationner le tout sur un seul et même tableau existe-il une
fonction ou une macro ?

Merci










Avatar
JP
Merci encore
et Bonnes fetes
JP

Rebonjour à toi

Attention si tu mets les fichiers à traiter dans C:DATA au lieu de C:
comme je te l'avais préconisé il faut impérativement actualiser le code pour
les lignes :

MesFichiers = Dir("C:*.xls")
Workbooks.Open Filename:="C:" & MesFichiers

Mettre en lieu et place :

MesFichiers = Dir("C:DATA*.xls")
Workbooks.Open Filename:="C:DATA" & MesFichiers

Ces 2 lignes font appel au chemin du dossier qui possède les fichiers à
traiter

Celà devrait normalement mieux fonctionner

Dis moi !!!!




Re bonjour

jais testé ton dernier fichier ca marche un peu mieux en fait in me coppie
qu'un seul fichier sur 3 que j'ais mis dans C:DATA alors que la macro je
l'ai mise dans c:toto
??
A+

Rebonjour à toi

Je viens de tester le premier il fonctionne à merveille

As tu bien récupéré tout le code ???
Pour le premier de

Range("A1").Select

à

Wend

Je te joins sur ce lien un fichier Excel avec ce code

http://www.cijoint.fr/cij40555558335419.xls

Enregistres le dans un dossier autre que C:
Dans par exemple C:Toto

Mets sous C: quelques fichiers Excel à traiter

Ouvre mon fichier et exécute la macro1

Regarde le résultat Onglet "Feuil1"

Et dis moi !!!


Bonjour
merci mais j'ai un message d'erreur dans les 2 cas :
"Erreur de compil End if sans bloc if"
je ne suis pas assez caler pour corriger

je pense que tu ne va pas tarder a me donner la solution merci



Salut JP

J'ai proposé à un interlocuteur qui voulait regrouper les données de
plusieurs fichiers Excel dans un seul et même document excel ce code :

Si les fichiers sont tous dans un même répertoire ce code pour récupérer
dans un fichier excel toutes les données de tous les fichiers :


Range("A1").Select
MesFichiers = Dir("C:Chemin*.xls")
While MesFichiers <> ""
Workbooks.Open Filename:="C:Chemin" & MesFichiers
If ThisWorkbook.Worksheets("Feuil1").Range("A1") = "" Then
Workbooks(MesFichiers).Worksheets("Feuil1").Range("A1",
[A65535].End(xlUp)).EntireRow. _
Copy ThisWorkbook.Worksheets("Feuil1").Range("A65535").End(xlUp)
Else
Workbooks(MesFichiers).Worksheets("Feuil1").Range("A1",
[A65535].End(xlUp)).EntireRow. _
Copy ThisWorkbook.Worksheets("Feuil1").Range("A65535").End(xlUp).Offset(1, 0)
End If
Workbooks(MesFichiers).Close
MesFichiers = Dir
Wend

Autre option avec une boîte de dialogue pour sélectionner avec la souris le
répertoire et le 1° fichier à traiter :

Range("A1").Select
Workbooks.Open Filename:=Application.GetOpenFilename("(*.xls),")
MesFichiers = Dir(ActiveWorkbook.Path & "*.xls")
ActiveWorkbook.Close
While MesFichiers <> ""
Workbooks.Open Filename:="C:" & MesFichiers
If ThisWorkbook.Worksheets("Feuil1").Range("A1") = "" Then
Workbooks(MesFichiers).Worksheets("Feuil1").Range("A1",
[A65535].End(xlUp)).EntireRow. _
Copy ThisWorkbook.Worksheets("Feuil1").Range("A65535").End(xlUp)
Else
Workbooks(MesFichiers).Worksheets("Feuil1").Range("A1",
[A65535].End(xlUp)).EntireRow. _
Copy ThisWorkbook.Worksheets("Feuil1").Range("A65535").End(xlUp).Offset(1, 0)
End If
Workbooks(MesFichiers).Close
MesFichiers = Dir
Wend

Tu sélectionnes un premier fichier dans un répertoire et tous les fichiers
de ce répertoire seront traités automatiquement

Peut être tes solutions
Dis moi !!!




Bonjour
voila mon problème j'ai plusieurs fichiers de une feuille avec un tableau de
format identique sauf la longueur
je voudrais collationner le tout sur un seul et même tableau existe-il une
fonction ou une macro ?

Merci