Moulinette import excel

ToObar Messages postés 80 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

6 réponses

G.David Messages postés 790 Statut Membre 203
 
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
0
G.David Messages postés 790 Statut Membre 203
 
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
0
ToObar Messages postés 80 Statut Membre
 
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!
0
G.David Messages postés 790 Statut Membre 203
 
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&
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ToObar Messages postés 80 Statut Membre
 
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
0
G.David Messages postés 790 Statut Membre 203
 
la moulinette n'a pas recopier la ligne du CSV?
ou il s'agit d'un autre classeur
ou est que c'est le classeur de regroupement dont tu me parles ?
là j'avoue etre un peu paumé
0
ToObar Messages postés 80 Statut Membre
 
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

0
G.David Messages postés 790 Statut Membre 203
 
va jeter un oeil dans ta boite perso
0