Moulinette import excel

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
Configuration: Windows XP
Internet Explorer 6.0

6 réponses

  1. 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
    1. 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
      1. 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
        1. 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
          1. 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
            1. 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
          2. 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
            1. va jeter un oeil dans ta boite perso
              0