import feuilles csv multiples

Le
ToOmS
Bonjour à tous,

Quelqu'un sait-il comment je pourrais simplement créer de nouvelles
feuilles, dans un classeur ouvert, à partir de plusieurs fichiers
CSV ? Lorsque je demande l'ouverture de plusieurs fichiers dans le
menu Fichier/Ouvrir, Excel crée autant de classeurs distincts
Si non, comment peut-on fusionner rapidement tous les classeurs
ouverts en un seul qui concatène les feuilles de chacun ?

Merci d'avance, Thomas.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Laurent DUB
Le #5117231
Bonjour,
rien à voir avec excel mais
Dans le dos, tu peux faire: "copy *.csv toto.csv"(tous les csv en toto.csv)
tu doit pouvoir l'intégrer en vba avec la commande "shell" il me semble
cdlt
Lr Db

"ToOmS"
Bonjour à tous,

Quelqu'un sait-il comment je pourrais simplement créer de nouvelles
feuilles, dans un classeur ouvert, à partir de plusieurs fichiers
CSV ? Lorsque je demande l'ouverture de plusieurs fichiers dans le
menu Fichier/Ouvrir..., Excel crée autant de classeurs distincts...
Si non, comment peut-on fusionner rapidement tous les classeurs
ouverts en un seul qui concatène les feuilles de chacun ?

Merci d'avance, Thomas.
ToOmS
Le #5117181
On 3 jan, 14:50, "Laurent DUB"
Bonjour,
rien à voir avec excel mais
Dans le dos, tu peux faire: "copy *.csv toto.csv"(tous les csv en toto.csv )
tu doit pouvoir l'intégrer en vba avec la commande "shell" il me semble
cdlt
Lr Db


Merci, mais je ne veux pas concaténer les fichiers CSV dans une seule
feuille, mais bien dans des feuilles distinctes d'un même classeur.

Ellimac
Le #5114971
Bonjour,

A placer dans le classeur des macros personnelles :
Sub Concat_3Feuilles()
b = Workbooks.Count - 1
For cpt = 1 To b
a = ActiveWorkbook.Name
If cpt = 1 Then
ActiveSheet.Copy
Else
ActiveSheet.Copy After:=Workbooks(n).Sheets(cpt - 1)
End If
ActiveSheet.Name = a
n = ActiveWorkbook.Name
Windows(a).Close
On Error Resume Next
ActiveWindow.ActivateNext
Next
End Sub

Camille


Bonjour à tous,

Quelqu'un sait-il comment je pourrais simplement créer de nouvelles
feuilles, dans un classeur ouvert, à partir de plusieurs fichiers
CSV ? Lorsque je demande l'ouverture de plusieurs fichiers dans le
menu Fichier/Ouvrir..., Excel crée autant de classeurs distincts...
Si non, comment peut-on fusionner rapidement tous les classeurs
ouverts en un seul qui concatène les feuilles de chacun ?

Merci d'avance, Thomas.



ToOmS
Le #5114941
On 3 jan, 15:40, Ellimac
Bonjour,

A placer dans le classeur des macros personnelles :
Sub Concat_3Feuilles()
b = Workbooks.Count - 1
For cpt = 1 To b
a = ActiveWorkbook.Name
If cpt = 1 Then
ActiveSheet.Copy
Else
ActiveSheet.Copy After:=Workbooks(n).Sheets(cpt - 1)
End If
ActiveSheet.Name = a
n = ActiveWorkbook.Name
Windows(a).Close
On Error Resume Next
ActiveWindow.ActivateNext
Next
End Sub

Camille


Merci ; si je comprends bien, cette macro récupère les feuilles
(toutes ?) des classeurs, autres que le classeur courant, pour les
insérer dans le classeur courant. Il faut donc d'abord ouvrir les CSV,
mais c'est un moindre mal.
Bonne soirée !

Ellimac
Le #5114931
Bonjour,

En effet il faut ouvrir les CSV au préalable. De mémoire un CSV ne possède
qu'une feuille non ?
Chez moi j'ai placé un -1 dans le décompte des feuilles car il me compte un
classeur masqué (Perso.xls).

Camille


On 3 jan, 15:40, Ellimac
Bonjour,

A placer dans le classeur des macros personnelles :
Sub Concat_3Feuilles()
b = Workbooks.Count - 1
For cpt = 1 To b
a = ActiveWorkbook.Name
If cpt = 1 Then
ActiveSheet.Copy
Else
ActiveSheet.Copy After:=Workbooks(n).Sheets(cpt - 1)
End If
ActiveSheet.Name = a
n = ActiveWorkbook.Name
Windows(a).Close
On Error Resume Next
ActiveWindow.ActivateNext
Next
End Sub

Camille


Merci ; si je comprends bien, cette macro récupère les feuilles
(toutes ?) des classeurs, autres que le classeur courant, pour les
insérer dans le classeur courant. Il faut donc d'abord ouvrir les CSV,
mais c'est un moindre mal.
Bonne soirée !




Publicité
Poster une réponse
Anonyme