Conversion fichier excel

Résolu
Luke5310 Messages postés 61 Statut Membre -  
Luke5310 Messages postés 61 Statut Membre -
Bonjour,

J'ai fait une extraction d'un observateur d'évènements à partir d'un script powershell assez lourd (plus de 100Mo et 25000 lignes) sous excel 2007 et l'ensemble de mes données sont rassemblées en une seule colonne.

Je voudrais séparer les donnés de chaque ligne en plusieurs colonnes de manière à pouvoir filtrer les résultats.

J'ai déjà effectué quelques recherches sur internet (sur le forum et sur le support office) mais tout ce que j'ai trouvé pour fractionner une colonne en plusieurs était d'utiliser le menu "Données" puis "Convertir" mais cela ne délimite qu'à partir d'un caractère...

J'ai à chaque ligne le même format 'le document xxx a été imprimé par xxx, nombre de pages imprimées : x

Ce que je veux c'est une manière de séparer cette phrase en 3 colonnes et pouvoir appliquer cela à toutes les lignes. Auriez-vous une formule ou une procédure permettant d'arriver à ce résultat ?

Merci d'avance pour votre aide !

4 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,

    Comme tu ne dis pas où il faut séparer, impossible de t"aider...
    0
  2. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Si j'ai bien tout compris :

    Avec la phrase à découper en A3

    En première colonne mettre :
    =GAUCHE(A3;CHERCHE("a été imprimé";A3)-1)

    En 2eme :
    =STXT(A3;CHERCHE("a été imprimé";A3);CHERCHE(", nombre ";A3) -CHERCHE("a été imprimé";A3))

    et en 3eme :
    =DROITE(A3;NBCAR(A3)-CHERCHE(", nombre";A3))

    Cdlmnt
    0
  3. Gyrus Messages postés 3360 Statut Membre 526
     
    Bonjour,

    Ou avec VBA

    Sub Separer()
    Dim Cel As Range
    Dim T1 As String, T2 As String, T3 As String
    Dim Tablo1, Tablo2, Tablo3
    T1 = "le document "
    T2 = " a été imprimé par "
    T3 = ", nombre de pages imprimées : "
    For Each Cel In Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)
    Cel.Offset(0, 1) = Split(Split(Cel, T1)(1), T2)(0)
    Cel.Offset(0, 2) = Split(Split(Split(Cel, T1)(1), T2)(1), T3)(0)
    Cel.Offset(0, 3) = Split(Split(Split(Cel, T1)(1), T2)(1), T3)(1)
    Next Cel
    End Sub

    A+
    0
  4. Luke5310 Messages postés 61 Statut Membre 7
     
    Merci beaucoup pour vos réponses via55 et Gyrus !

    Je n'ai pas répondu avant étant donné que je n'avais plus le fichier sous les yeux mais là je viens de tester (juste en remplaçant les ; par des , car sinon ça me renvoyait toujours une erreur) et ça répond exactement à mes attentes :)

    Encore une fois merci, je clos le sujet.
    0