OVH Cloud OVH Cloud

Découper du texte a l'aide d'une macro

27 réponses
Avatar
Perceval973
Bonjour tout le monde :-)

J'ai un tableau avec du texte dans les cellules B4 à B50
Ce texte est ecrit sous la forme :
"texte1 - texte A"
"texte2 - texte B"
"texte3 - texte C"
"texte4 - texte D"

Le "textenum" est différent d'une cellume a l'autre, le "textelettre" est
différent lui aussi.
La seule constante est que ces textes sont systématiquement séparés par
"espace-tiret-espace"

mon probleme est le suivant :
Je voudrais a l'aide d'une macro couper tous les "textenum" et les coller
dans les cellules A4 à A50 pour avoir
de A4 à A50 :
Texte1
Texte2
Texte3
Texte4 etc..

Et de B4 à B50 :
Texte A
Texte B
Texte C
Texte D etc..

Et supprimer tous les "espace-tiret-espace"

Est-ce possible avec mes maigres connaissances ?
Merci pour votre aide
Perceval

10 réponses

1 2 3
Avatar
AV
Sub zzz()
[A:A].Insert: [A:A].Insert
[A1:A50] = "=LEFT(C1,FIND("" - "",C1)-2)"
[B1:B50] = "=MID(C1,FIND("" - "",C1)+2,9^9)"
[A1:B50] = [A1:B50].Value
[C:C].Delete
End Sub

AV
Avatar
Pounet95
Bonsoir,
Avant de tester recopie ta colonne B ailleurs, on ne sait jamais !
Essaie ceci :

Sub CoupeTexte()
Range("B4").Select
Do While ActiveCell <> ""
wTxt = ActiveCell.Value
wSepare = InStr(wTxt, " ")
wGauche = Left$(wTxt, wSepare - 1)
wDroite = Right$(wTxt, Len(wTxt) - wSepare - 2)
ActiveCell.Value = wGauche
ActiveCell.Offset(0, 1).Value = wDroite
ActiveCell.Offset(1, 0).Select
Loop
End Sub


--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/


"Perceval973" a écrit dans le message de news:
41b5c3bd$0$18823$
Bonjour tout le monde :-)

J'ai un tableau avec du texte dans les cellules B4 à B50
Ce texte est ecrit sous la forme :
"texte1 - texte A"
"texte2 - texte B"
"texte3 - texte C"
"texte4 - texte D"

Le "textenum" est différent d'une cellume a l'autre, le "textelettre" est
différent lui aussi.
La seule constante est que ces textes sont systématiquement séparés par
"espace-tiret-espace"

mon probleme est le suivant :
Je voudrais a l'aide d'une macro couper tous les "textenum" et les coller
dans les cellules A4 à A50 pour avoir
de A4 à A50 :
Texte1
Texte2
Texte3
Texte4 etc..

Et de B4 à B50 :
Texte A
Texte B
Texte C
Texte D etc..

Et supprimer tous les "espace-tiret-espace"

Est-ce possible avec mes maigres connaissances ?
Merci pour votre aide
Perceval




Avatar
Perceval973
Cela n'a pas fonctionné...
Il s'est passé ceci

Insertion de deux nouvelles colonnes en A et B et à l'intérieur #VALEUR!

"AV" a écrit dans le message de
news:
Sub zzz()
[A:A].Insert: [A:A].Insert
[A1:A50] = "=LEFT(C1,FIND("" - "",C1)-2)"
[B1:B50] = "=MID(C1,FIND("" - "",C1)+2,9^9)"
[A1:B50] = [A1:B50].Value
[C:C].Delete
End Sub

AV




Avatar
AV
Mes excuses : j'ai lu un peu vite (je pensais tes doinnées en A1:A50 et non en
B1:B50)
Pour corriger, supprimer simplement un des deux : [A:A].Insert

AV
Avatar
Perceval973
LOL

Alors, il a pris "Textenum" de la cellule B et a coupé tout ce qui etait
apres " - Textelettre" et il l'a recopié dans la cellule C "textelettre" en
ecrasant le contenu de la cellule C

Donc je vois bien une alternative, qui serait de tout déplacer dans la
cellule A avant d'exécuter ta macro ;-)


"Pounet95" a écrit dans le message de
news:eMkrm$
Bonsoir,
Avant de tester recopie ta colonne B ailleurs, on ne sait jamais !
Essaie ceci :

Sub CoupeTexte()
Range("B4").Select
Do While ActiveCell <> ""
wTxt = ActiveCell.Value
wSepare = InStr(wTxt, " ")
wGauche = Left$(wTxt, wSepare - 1)
wDroite = Right$(wTxt, Len(wTxt) - wSepare - 2)
ActiveCell.Value = wGauche
ActiveCell.Offset(0, 1).Value = wDroite
ActiveCell.Offset(1, 0).Select
Loop
End Sub


--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/


"Perceval973" a écrit dans le message de news:
41b5c3bd$0$18823$
Bonjour tout le monde :-)

J'ai un tableau avec du texte dans les cellules B4 à B50
Ce texte est ecrit sous la forme :
"texte1 - texte A"
"texte2 - texte B"
"texte3 - texte C"
"texte4 - texte D"

Le "textenum" est différent d'une cellume a l'autre, le "textelettre"
est


différent lui aussi.
La seule constante est que ces textes sont systématiquement séparés par
"espace-tiret-espace"

mon probleme est le suivant :
Je voudrais a l'aide d'une macro couper tous les "textenum" et les
coller


dans les cellules A4 à A50 pour avoir
de A4 à A50 :
Texte1
Texte2
Texte3
Texte4 etc..

Et de B4 à B50 :
Texte A
Texte B
Texte C
Texte D etc..

Et supprimer tous les "espace-tiret-espace"

Est-ce possible avec mes maigres connaissances ?
Merci pour votre aide
Perceval







Avatar
Perceval973
Autre fait "comique" dans l'une des cellules le texte avant le
"espace-tiret-espace" est de la forme "texte-espace-chiffre" et ta macro
fait la coupure avant les chiffres, qui du coup se retrouvent dans la
cellule B avec le "espace-tiret-espace"


"Pounet95" a écrit dans le message de
news:eMkrm$
Bonsoir,
Avant de tester recopie ta colonne B ailleurs, on ne sait jamais !
Essaie ceci :

Sub CoupeTexte()
Range("B4").Select
Do While ActiveCell <> ""
wTxt = ActiveCell.Value
wSepare = InStr(wTxt, " ")
wGauche = Left$(wTxt, wSepare - 1)
wDroite = Right$(wTxt, Len(wTxt) - wSepare - 2)
ActiveCell.Value = wGauche
ActiveCell.Offset(0, 1).Value = wDroite
ActiveCell.Offset(1, 0).Select
Loop
End Sub


--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/


"Perceval973" a écrit dans le message de news:
41b5c3bd$0$18823$
Bonjour tout le monde :-)

J'ai un tableau avec du texte dans les cellules B4 à B50
Ce texte est ecrit sous la forme :
"texte1 - texte A"
"texte2 - texte B"
"texte3 - texte C"
"texte4 - texte D"

Le "textenum" est différent d'une cellume a l'autre, le "textelettre"
est


différent lui aussi.
La seule constante est que ces textes sont systématiquement séparés par
"espace-tiret-espace"

mon probleme est le suivant :
Je voudrais a l'aide d'une macro couper tous les "textenum" et les
coller


dans les cellules A4 à A50 pour avoir
de A4 à A50 :
Texte1
Texte2
Texte3
Texte4 etc..

Et de B4 à B50 :
Texte A
Texte B
Texte C
Texte D etc..

Et supprimer tous les "espace-tiret-espace"

Est-ce possible avec mes maigres connaissances ?
Merci pour votre aide
Perceval







Avatar
Pounet95
Re,
Ce n'est pas ce que tu voulais ?
La recopie de la colonne avant avait bien pour but de récupérer les données
en cas d'incompréhension. On dirait que c'est la cas ou bien
c'est ta réponse que je pige mal ?

Pendant que j'y suis, je vois souvent ce terme LOL ou lol.
Quelle en est sa signification ?
Merci de tes réponses

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/

"Perceval973" a écrit dans le message de news:
41b5cc0f$0$18834$
LOL

Alors, il a pris "Textenum" de la cellule B et a coupé tout ce qui etait
apres " - Textelettre" et il l'a recopié dans la cellule C "textelettre"
en
ecrasant le contenu de la cellule C

Donc je vois bien une alternative, qui serait de tout déplacer dans la
cellule A avant d'exécuter ta macro ;-)


"Pounet95" a écrit dans le message de
news:eMkrm$
Bonsoir,
Avant de tester recopie ta colonne B ailleurs, on ne sait jamais !
Essaie ceci :

Sub CoupeTexte()
Range("B4").Select
Do While ActiveCell <> ""
wTxt = ActiveCell.Value
wSepare = InStr(wTxt, " ")
wGauche = Left$(wTxt, wSepare - 1)
wDroite = Right$(wTxt, Len(wTxt) - wSepare - 2)
ActiveCell.Value = wGauche
ActiveCell.Offset(0, 1).Value = wDroite
ActiveCell.Offset(1, 0).Select
Loop
End Sub


--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/


"Perceval973" a écrit dans le message de news:
41b5c3bd$0$18823$
Bonjour tout le monde :-)

J'ai un tableau avec du texte dans les cellules B4 à B50
Ce texte est ecrit sous la forme :
"texte1 - texte A"
"texte2 - texte B"
"texte3 - texte C"
"texte4 - texte D"

Le "textenum" est différent d'une cellume a l'autre, le "textelettre"
est


différent lui aussi.
La seule constante est que ces textes sont systématiquement séparés par
"espace-tiret-espace"

mon probleme est le suivant :
Je voudrais a l'aide d'une macro couper tous les "textenum" et les
coller


dans les cellules A4 à A50 pour avoir
de A4 à A50 :
Texte1
Texte2
Texte3
Texte4 etc..

Et de B4 à B50 :
Texte A
Texte B
Texte C
Texte D etc..

Et supprimer tous les "espace-tiret-espace"

Est-ce possible avec mes maigres connaissances ?
Merci pour votre aide
Perceval











Avatar
JpPradier
Bonjour Pounet95

Lol = Loud Of Laughing qui peut se trdauire par MDR = Mort De Rire
A peu près hein ! ;-))

j-p
Avatar
Perceval973
J'ai toujours une colonne qui s'insert, et #VALEUR! dans les deux Colonnes A
et B

"AV" a écrit dans le message de
news:
Mes excuses : j'ai lu un peu vite (je pensais tes doinnées en A1:A50 et
non en

B1:B50)
Pour corriger, supprimer simplement un des deux : [A:A].Insert

AV




Avatar
Perceval973
LOL ca vient du temps ou l'internet etait tres anglophone ca veut dire Laugh
Out Loud (Mort de Rire) J'ai gardé cette vieille habitude, désolé...

"Pounet95" a écrit dans le message de
news:
Re,
Ce n'est pas ce que tu voulais ?
La recopie de la colonne avant avait bien pour but de récupérer les
données

en cas d'incompréhension. On dirait que c'est la cas ou bien
c'est ta réponse que je pige mal ?

Pendant que j'y suis, je vois souvent ce terme LOL ou lol.
Quelle en est sa signification ?
Merci de tes réponses

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/

"Perceval973" a écrit dans le message de news:
41b5cc0f$0$18834$
LOL

Alors, il a pris "Textenum" de la cellule B et a coupé tout ce qui etait
apres " - Textelettre" et il l'a recopié dans la cellule C "textelettre"
en
ecrasant le contenu de la cellule C

Donc je vois bien une alternative, qui serait de tout déplacer dans la
cellule A avant d'exécuter ta macro ;-)


"Pounet95" a écrit dans le message de
news:eMkrm$
Bonsoir,
Avant de tester recopie ta colonne B ailleurs, on ne sait jamais !
Essaie ceci :

Sub CoupeTexte()
Range("B4").Select
Do While ActiveCell <> ""
wTxt = ActiveCell.Value
wSepare = InStr(wTxt, " ")
wGauche = Left$(wTxt, wSepare - 1)
wDroite = Right$(wTxt, Len(wTxt) - wSepare - 2)
ActiveCell.Value = wGauche
ActiveCell.Offset(0, 1).Value = wDroite
ActiveCell.Offset(1, 0).Select
Loop
End Sub


--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/


"Perceval973" a écrit dans le message de news:
41b5c3bd$0$18823$
Bonjour tout le monde :-)

J'ai un tableau avec du texte dans les cellules B4 à B50
Ce texte est ecrit sous la forme :
"texte1 - texte A"
"texte2 - texte B"
"texte3 - texte C"
"texte4 - texte D"

Le "textenum" est différent d'une cellume a l'autre, le "textelettre"
est


différent lui aussi.
La seule constante est que ces textes sont systématiquement séparés
par




"espace-tiret-espace"

mon probleme est le suivant :
Je voudrais a l'aide d'une macro couper tous les "textenum" et les
coller


dans les cellules A4 à A50 pour avoir
de A4 à A50 :
Texte1
Texte2
Texte3
Texte4 etc..

Et de B4 à B50 :
Texte A
Texte B
Texte C
Texte D etc..

Et supprimer tous les "espace-tiret-espace"

Est-ce possible avec mes maigres connaissances ?
Merci pour votre aide
Perceval














1 2 3