Moulinette import excel
ToObar
Messages postés
80
Statut
Membre
-
G.David Messages postés 790 Statut Membre -
G.David Messages postés 790 Statut Membre -
Bonjour,
J'ai un gros souci , j'ai 100 fichiers csv que j'aimerai rassembler dans un seul et meme fichier. De plus, seulement 20 lignes dans ce fichier m'interesse.
Ces lignes sont faciles à trouver, on peut les extraires à partir de la colonne A, le mot clé est logiciel....
Quelqu'un aurait il une moulinette pour importer dans un fichier excel les lignes "logiciels" de mes 100 autres classeurs.
Merci
J'ai un gros souci , j'ai 100 fichiers csv que j'aimerai rassembler dans un seul et meme fichier. De plus, seulement 20 lignes dans ce fichier m'interesse.
Ces lignes sont faciles à trouver, on peut les extraires à partir de la colonne A, le mot clé est logiciel....
Quelqu'un aurait il une moulinette pour importer dans un fichier excel les lignes "logiciels" de mes 100 autres classeurs.
Merci
Configuration: Windows XP Internet Explorer 6.0
6 réponses
-
chose a savoir
quel est le separateur de champ de tes csv
il faudrait déjà faire une premiere moulinette pour transformer tes csv en XLS (quitte a les renommer en passant style CSV1.xls ..CSV152.xls)
apres une deuxieme moulinette pourras transeferer les donnees dans un classeur d regroupement
G.David
-
autrement voici un debut sur un fichier CSV dos
Dim fs, f, f1, s, sf Dim chemin As String Dim plage As Range Dim Actif As String Application.DisplayAlerts = False Actif = ActiveWorkbook.Name chemin = ActiveWorkbook.Path Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(chemin) Set sf = f.Files ChDir chemin For Each f1 In sf If Right(f1.Name, 4) = ".csv" Then Workbooks.Open Filename:=f1 Windows(f1.Name).Activate Set plage = Range("a1:a" & Range("a65535").End(xlUp).Row) For Each cel In plage If Left(cel.Value, 8) = "logiciel" Then Rows(cel.Row & ":" & cel.Row).Select Selection.Copy Windows(Actif).Activate If Range("a2").Value = "" Then Range("a2").Select ActiveSheet.Paste Else Range("a1").End(xlDown).Offset(1, 0).Select ActiveSheet.Paste End If End If Windows(f1.Name).Activate Next Workbooks(f1.Name).Close End If Next End Sub
mais tu vas te retrouver avec toute la ligne dans une seule cellule
la transfromation des csv en Xsl permetterait de coller les contenu des cellules -
Bonjour et merci pour cette reponse,
Quand jouvre mon classeur csv, jai un affichage XLS directement.
Donc pas de séparateur, tout est en colonne directment avec ma première colonne nommée page ou se trouve les valeurs qui m'interesse pour le tri : "logiciel" en fait parti.
D'avance merci! -
alors colle la fonction presente dans un module de ton classeur
lequel sera enregistré dans le meme repertoire que les classeurs csv
et tu lances la macro
bon tu donnes quand meme un nom a la macro
alt f11
sur le classeur lic droit
insertion module
double clique sur le module (module1)
et dans la fenetre principale
sub ramasse() (entrée)
end sub (se met automatiquement)
tu fait un copier coller du code entre ces deux lignes
par prudence tu fait une copie de tes csv dans un repertoire sauvegarde
tu les vireras aprés
si tu veu eviter les clignotement d'ecran tu peut rajouter au debut
(après les dim )
application.screeupdating= false mais tu ne saura pas si le programme tourne ou est plant&
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Franchement merci, ce code marche parfaitement.
Ny connaissan pa grand chose en vb, tu pourrais me dire, comment on étend cette recherche.
Si c'est aps trop long, comment je peux rechercher dans le tablea en entier (colonne A à F), le mot 'licence"
Dès que ca parle de licence, ca me recopie la cellule, c'est possible?
tembete pas si c'est trop long!
Merci -
Bonjour et joyeux noel!!
Je suis de retour avec mon pb excel. Pour simplifier les choses et que ca soit plus explicite, j'ai séparé mon fichier de regroupement avec un seul fichier excel sur mes 100.
Je me retrouve avec un fichier test.csv et un fichier vanessa.csv.
La première colonne (la A) de vanessa.csv :
Page
Rapport
Rapport
...
Ya 10 lignes rapport.
Supposons que je veuille copier toutes les lignes rapport de mes fichiers, j'ai juste à changer ta ligne :
If Left(cel.Value, 8) = "logiciel" Then
en :
If Left(cel.Value, 7) = "Rapport" Then
Mais non, ca marche pas, au final, dans test.csv, j'ai juste une ligne rapport, la dernière...
c'est triste :s