convertir texte - colonnes - excel

  • Initiateur de la discussion Initiateur de la discussion keesk
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

K

keesk

Guest
bonjour,

je voudrais convertir ce texte, bien aligne sue excel
comment faire, le plus rapidement possible ?



Statement of Cash Flows
General Electric Company
and consolidated affiliates
For the years ended December 31 (In millions) 2008 2007 2006
CASH FLOWS — OPERATING ACTIVITIES
Net earnings $ 17,410 $ 22,208 $ 20,742
Loss (earnings) from discontinued operations 679 249 (1,398)
Adjustments to reconcile net earnings to cash provided from operating activities
Depreciation and amortization of property, plant and equipment 11,492 10,275 8,457
Earnings from continuing operations retained by GECS — — —
Deferred income taxes (1,284) 657 1,639
Decrease (increase) in GE current receivables (24) (868) (2,194)
Decrease (increase) in inventories (719) (1,562) (1,514)
Increase (decrease) in accounts payable (1,078) (997) (276)
Increase in GE progress collections 2,827 4,622 642
Provision for losses on GECS financing receivables 7,518 4,431 3,062
All other operating activities 11,020 927 3,352
Cash from operating activities—continuing operations 47,841 39,942 32,512
Cash from (used for) operating activities—discontinued operations 760 3,380 (1,057)
CASH FROM OPERATING ACTIVITIES 48,601 43,322 31,455
 

Pièces jointes

Re : convertir texte - colonnes - excel

Bonjour Keesk et bienvenue 🙂,
Ça va pas être de la tarte... Grosso modo, tu n'as aucun repères dans ton texte pour faire la séparation. Si tu connais un peu VBA, tu peux décrire les caractères de ta ligne, et 3 cas de figure (sous réserve qu'il n'y ait pas de $ ou de chiffres dans la ligne de gauche) :
1) tu tombes sur un $ : tu sépares avant le $
2) tu tombes sur une ( suivi d'un chiffre : tu sépares avant (
3) tu tombes sur un chiffre : tu sépares avant le chiffre (attention, il faut que tu tiennes compte du 1) et du 2), donc utiliser un flag.
Pour les tirets, comme il y en a dans le texte et dans le tableau, on aura du mal à faire la séparation.
Bon courage 😎
 
Re : convertir texte - colonnes - excel

Bonjour,

Il me semble aussi que cela devrait être plus simple par macro, bien que cela devrait aussi être possible par formule.

Supprimer l'espace derrière les § (substituer $ + espace par $).
Pour les lignes qui se terminent par un chiffre ou une ), substituer l'espace antépénultième par un autre caractère.
Convertir sur base de ce caractère.
Convertir la colonne de droite sur base des espaces.
Substituer les $ par des $ + espace.

Si personne ne trouve la macro, je veux bien m'atteler à la formule.
@+
 
Re : convertir texte - colonnes - excel

Re


JNP:
Avec RegExp, tu vas entrer dans un mode étrange et merveilleux
Tu te casseras la tête sur le sacro-saint Pattern
Parfois, tes yeux seront fatigués, mais sachant qu'au terme du voyage
le plaisir de l'extraction facilitée tu obtiendras,
alors oui à RegExp tu viendras.

Voir la pièce jointe.


PS: justement je suis en train de me casser les dents sur le Pattern correspond à l'exemple de la question posée ici.
 

Pièces jointes

Re : convertir texte - colonnes - excel

Bonjour JNP, VBACRUMBLE, HOERWIND, et KEESK,
Voici une macro qui en fait déja pas mal,
La ligne avec les $ est fausse ainsi que les - - -
bon j'ai pas cherché plus.
résultat en fichier, Macro avec Split
A+
 

Pièces jointes

Re : convertir texte - colonnes - excel

Re, salut Youky(BJ) 🙂,
Une solution qui ne coince que sur le 31 décembre
Code:
Sub Nettoyage()
Dim AAnalyser As String, Résultat As String, I As Integer, J As Integer
Dim Drapeau As Boolean, Caractère As String, Tableau
Drapeau = False
For I = 1 To Range("A65536").End(xlUp).Row
AAnalyser = Cells(I, 1)
AAnalyser = Replace(AAnalyser, "$ ", "$")
For J = Len(AAnalyser) To 1 Step -1
Caractère = Mid(AAnalyser, J, 1)
Select Case Caractère
Case "$"
Résultat = "£$" & Résultat
Drapeau = False
Case "("
If Drapeau = True Then
Résultat = "£(" & Résultat
Drapeau = False
Else
Résultat = "(" & Résultat
End If
Case "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
Drapeau = True
Résultat = Caractère & Résultat
Case " "
If Drapeau = True Then
Résultat = "£" & Résultat
Drapeau = False
Else
Résultat = " " & Résultat
End If
Case Else
Résultat = Caractère & Résultat
End Select
Next J
Cells(I, 1) = Résultat
Résultat = ""
Next I
For I = 1 To Range("A65536").End(xlUp).Row
AAnalyser = Cells(I, 1)
If AAnalyser Like "*£*" Then
Tableau = Split(AAnalyser, "£")
For J = 1 To UBound(Tableau) + 1
Cells(I, J) = "'" & Tableau(J - 1)
Next J
End If
Next I
End Sub
Bon dimanche 😎
 
Re : convertir texte - colonnes - excel

Re,

Une approche par formules en pièce jointe.
Reste un petit problème à résoudre en ligne 4.

Cette procédure pourrait être enregistrée sous une macro, mais il me semble plus approprié (propre !) de l'écrire.
Avis aux amateurs.
 

Pièces jointes

Re : convertir texte - colonnes - excel

Re:
En poursuivant avec l'idée de JNP de Replace
tout baigne...(pour le fun)
Code:
Sub mytablo()
For lg = 1 To [A65536].End(3).Row
tx = Cells(lg, 1)
tx = Replace(tx, "$ ", "$")
n = Len(tx)
For k = 1 To n
If Mid(tx, k, 1) = " " Then nb = nb + 1
Next k
Cells(lg, 4) = Split(tx, " ")(nb)
Cells(lg, 3) = Split(tx, " ")(nb - 1)
Cells(lg, 2) = Split(tx, " ")(nb - 2)
nb = 0
Next
For lg = 1 To [A65536].End(3).Row
tx = Cells(lg, 3)
If IsNumeric(Left(tx, 1)) Or Left(tx, 1) = "(" Or Left(tx, 1) = "$" Or Left(tx, 1) = "—" Then
n = Len(Cells(lg, 2) & Cells(lg, 3) & Cells(lg, 4)) + 2
If Left(tx, 1) = "$" Then n = n + 3
Cells(lg, 1) = Left(Cells(lg, 1), Len(Cells(lg, 1)) - n)
Else
Range("B" & lg & ":D" & lg).ClearContents
End If
Next
End Sub
 
Re : convertir texte - colonnes - excel

Re 🙂,
VBACrumble : Effectivement, j'avais loupé ton post. Interressant RegExpFind, mais je te laisse abuser de l'aspirine 😛.
Youki(BJ) : tu tiens compte du 31 décembre, mais tu perds les () et tes $ passent en € chez moi.
Hoerwind : Bien vu, comme quoi les formules restent très efficaces.
Je pense qu'avec tout cela, Keesk trouvera son bonheur 😀.
Bon dimanche à tous 😎
 
Re : convertir texte - colonnes - excel

Re JNP, VBACRUMBLE, HOERWIND et YOUKY

Merci : vos solutions marchent
Cette question me tourmentait depuis ... 3 ans.

Cependant, les petits detyails ci-dessous me posent un soucis. Pouvez vous m'aider?
- JNP: les colonnes de nombres sont stockes en format texte. Comment les transformer un format nombre, et ce pour l ensemble des colones B,C,D, sans avoir a cliquer (individuellement ou par plusieurs groupes), sur l icone "convertir en nombre" (voir pieces jointes)

- YOUKY: meme en cliquant sur le bouton : "convertir en nombre", certaines cellules ne se convertissent pas

- VBACRUMBLE : la macro ne marche que pour les dollars

- HOERWIND: elle marche !!! mais tu m expliquer en mots cette partie de la formule : NBCAR(A7)-NBCAR(SUBSTITUE(A7;" ";""))-2) : en partuciler : quelle est l utilite du "-2" ?

- si ce n est pas trop demander , si ce que JNP et YOUKY pouvaient intergrer des commentaires explicatives directement dans le code VBA, ce la me sera tres utile car je dois manupuler des donnees qui ont des particularites differentes a chaque fois (il faut que je puisse modifier le code si besoin)


merci encore
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour