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

6 réponses

  1. 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
  2. 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
  3. 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
  4. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
    1. 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
  7. 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
    1. G.David Messages postés 790 Statut Membre 203
       
      va jeter un oeil dans ta boite perso
      0