Conversion fichier excel

Résolu
Luke5310 Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   -  
Luke5310 Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   -
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 !

A voir également:

4 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour,

Comme tu ne dis pas où il faut séparer, impossible de t"aider...
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
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
Gyrus Messages postés 3334 Date d'inscription   Statut Membre Dernière intervention   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
Luke5310 Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   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