OVH Cloud OVH Cloud

travaux sur cellules

14 réponses
Avatar
gib
Bonjour,

j'ai dans la cellule A les caractères suivant :
Warning\r\nwish\r\nAccount\r\nappointment\r\nPharma]cy\r\ncaught


Je souhaiterai pouvoir automatiquement mettre les mots séparés par : \r\
chacun dans une cellule soit par exemple :

A2 : Warning
A3 : nwish
A4 : Account
A5 : nappointment
A6 : nPharma]cy
A7 : ncaught

etc...


et inversement concatener l'ensemble des cellules non vide d'une colonne en
inserant entre chaque mot : \r\


Merci pour votre aide

Bon week end

10 réponses

1 2
Avatar
Philippe.R
Bonjour,
Trois opérations :
1) Edition / remplacer / saisir r pour "Rechercher :" en laissant "Remplacer par :" vide
2) Données / convertir / délimité / "suivant" / cocher "autre" et saisir
3) copier la plage a1:f1 / édition / sélectionner les cellules a2:a7 / collage spécial / cocher /
transposé
--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"gib" a écrit dans le message de news:
Bonjour,

j'ai dans la cellule A les caractères suivant :
WarningrnwishrnAccountrnappointmentrnPharma]cyrncaught


Je souhaiterai pouvoir automatiquement mettre les mots séparés par : r
chacun dans une cellule soit par exemple :

A2 : Warning
A3 : nwish
A4 : Account
A5 : nappointment
A6 : nPharma]cy
A7 : ncaught

etc...


et inversement concatener l'ensemble des cellules non vide d'une colonne en
inserant entre chaque mot : r


Merci pour votre aide

Bon week end




Avatar
JièL Goubert
Bonjoir(c) gib

une solution trés lègèrement plus courte que celle de Philippe (que je salue
au passage)
1) Edition / remplacer / saisir r pour "Rechercher :" en laissant
"Remplacer par :" vide
2) sélectionner la cellule A1 jusqu'a A30 (par exemple), menu Edition,
Remplissage, justifier

pour l'inverse, ben faut inverser les manips (remplacer " " par "r")
sélectionner A1:M10 (par exemple), menu Edition, Remplissage, Justifier

mais c'est assez manuel

--
La FAQ Outlook est la : http://faq.outlook.free.fr
JièL / Jean-Louis GOUBERT
Co-auteur de "Internet + de 1 000 trucs de pros" chez Micro Application
http://faq.outlook.free.fr/livreMA/internet_plus_de_1000_trucs_de_pros.htm

Le 03/10/2004 11:16 vous avez écrit ceci :
Bonjour,

j'ai dans la cellule A les caractères suivant :
WarningrnwishrnAccountrnappointmentrnPharma]cyrncaught


Je souhaiterai pouvoir automatiquement mettre les mots séparés par : r
chacun dans une cellule soit par exemple :

A2 : Warning
A3 : nwish
A4 : Account
A5 : nappointment
A6 : nPharma]cy
A7 : ncaught

etc...


et inversement concatener l'ensemble des cellules non vide d'une colonne en
inserant entre chaque mot : r


Merci pour votre aide

Bon week end


Avatar
Ricky
Bonjour *JièL Goubert*

Objection votre honneur..

| 1) Edition / remplacer / saisir r pour "Rechercher :" en laissant
| "Remplacer par :" vide

Remplacer par : [1 espace]

Si je puis me permettre ;)
--
Ricky [MVP] Visitez les faq....
http://www.faqoe.com http://faqword.free.fr
http://dj.joss.free.fr/faq.htm http://www.excelabo.net
Avatar
Joël GARBE
Bonjour,

On pourrait aussi envisager une pt'iot macro...

Sub Extraire()
Dim i As Integer
Dim j As Integer
Dim LeMot As String
j = 1
If Len(Range("A1")) < 3 Then Exit Sub
For i = 1 To Len(Range("A1")) - 3
If Mid(Range("A1"), i, 3) <> "r" Then
LeMot = LeMot & Mid(Range("A1"), i, 1)
Else
j = j + 1
Cells(1, j) = LeMot
LeMot = ""
i = i + 2
End If
If i = Len(Range("A1")) - 3 Then
Cells(1, j + 1) = LeMot
End If
Next
End Sub


--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"gib" a écrit dans le message de news:

Bonjour,

j'ai dans la cellule A les caractères suivant :
WarningrnwishrnAccountrnappointmentrnPharma]cyrncaught


Je souhaiterai pouvoir automatiquement mettre les mots séparés par : r
chacun dans une cellule soit par exemple :

A2 : Warning
A3 : nwish
A4 : Account
A5 : nappointment
A6 : nPharma]cy
A7 : ncaught

etc...


et inversement concatener l'ensemble des cellules non vide d'une colonne
en inserant entre chaque mot : r


Merci pour votre aide

Bon week end



Avatar
gib
Bonjour

Merci à tous pour votre aide.

Cependant yant plus de 256 mots, est-il possible d'avoir le resultat en
colonne et non en ligne.

Merci


"Joël GARBE" a écrit dans le message de news:
415fdc22$0$3025$
Bonjour,

On pourrait aussi envisager une pt'iot macro...

Sub Extraire()
Dim i As Integer
Dim j As Integer
Dim LeMot As String
j = 1
If Len(Range("A1")) < 3 Then Exit Sub
For i = 1 To Len(Range("A1")) - 3
If Mid(Range("A1"), i, 3) <> "r" Then
LeMot = LeMot & Mid(Range("A1"), i, 1)
Else
j = j + 1
Cells(1, j) = LeMot
LeMot = ""
i = i + 2
End If
If i = Len(Range("A1")) - 3 Then
Cells(1, j + 1) = LeMot
End If
Next
End Sub


--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"gib" a écrit dans le message de news:

Bonjour,

j'ai dans la cellule A les caractères suivant :
WarningrnwishrnAccountrnappointmentrnPharma]cyrncaught


Je souhaiterai pouvoir automatiquement mettre les mots séparés par : r
chacun dans une cellule soit par exemple :

A2 : Warning
A3 : nwish
A4 : Account
A5 : nappointment
A6 : nPharma]cy
A7 : ncaught

etc...


et inversement concatener l'ensemble des cellules non vide d'une colonne
en inserant entre chaque mot : r


Merci pour votre aide

Bon week end







Avatar
FxM
Bonsoir,

Si Excel 2000 ou supérieur, sous forme de fonction perso :
Alt-F11 pour ouvrir VBE,
Insertion module, y copier ce suit suit :

Public Function spli(inp, sep)
spli = Split(inp, sep)
If Selection.Rows.Count > 1 Then spli = Application.Transpose(spli)
End Function

Usage :
sélectionner la zone d'arrivée, taper la formule :
= spli(A1;"r") avec laidation matricielle (ctrl-maj-enter)

@+
FxM







Bonjour,

j'ai dans la cellule A les caractères suivant :
WarningrnwishrnAccountrnappointmentrnPharma]cyrncaught


Je souhaiterai pouvoir automatiquement mettre les mots séparés par : r
chacun dans une cellule soit par exemple :

A2 : Warning
A3 : nwish
A4 : Account
A5 : nappointment
A6 : nPharma]cy
A7 : ncaught

etc...


et inversement concatener l'ensemble des cellules non vide d'une colonne en
inserant entre chaque mot : r


Merci pour votre aide

Bon week end




Avatar
FxM
FxM s'est mélangé les doigts :

Usage :
sélectionner la zone d'arrivée, taper la formule :
= spli(A1;"r") avec validation matricielle (ctrl-maj-enter)


=spli(A1;"rn") ne serait-il pas encore meilleur ?

@+
FxM

Avatar
gib
Bonsoir,

Je viens d'essayer avec la chaine de caractère suivante :
WarningrnwishrnAccountrnappointmentrnPharmacyrncaughtrnTogetherrnGenericrnexudaterncelebraternaffordablernknowrnpricernrequestrntonightrnGen.ericrnAttemptingrnGalenarnBodyCraftrnYou'vernChocolaternonline?rnGivernShootrnoverrncelebrate

Après validation matricielle ; je n'ai que Warning.

merci pour le temps passer pour m'aider



"FxM" a écrit dans le message de news:
u$
FxM s'est mélangé les doigts :

Usage :
sélectionner la zone d'arrivée, taper la formule :
= spli(A1;"r") avec validation matricielle (ctrl-maj-enter)


=spli(A1;"rn") ne serait-il pas encore meilleur ?

@+
FxM



Avatar
Ricky
Bonjour *gib*


| Bonjour
| Merci à tous pour votre aide.
| Cependant yant plus de 256 mots, est-il possible d'avoir le resultat
| en colonne et non en ligne.
| Merci


Ca devrait fonctionner ainsi (non testé)

Sub Extraire()
Dim i As Integer
Dim j As Integer
Dim LeMot As String
j = 2
If Len(Range("A1")) < 3 Then Exit Sub
For i = 1 To Len(Range("A1")) - 3
If Mid(Range("A1"), i, 3) <> "r" Then
LeMot = LeMot & Mid(Range("A1"), i, 1)
Else
j = j + 1
Cells(j, 1) = LeMot
LeMot = ""
i = i + 2
End If
If i = Len(Range("A1")) - 3 Then
Cells( j + 1,1) = LeMot
End If
Next
End Sub

| | Bien cordialement,
| | Joël GARBE

--
Ricky [MVP] Visitez les faq....
http://www.faqoe.com http://faqword.free.fr
http://dj.joss.free.fr/faq.htm http://www.excelabo.net
Avatar
Joël GARBE
Remplacer cells(1,j) par cells(j,1)

idem pour j+1

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"gib" a écrit dans le message de news:

Bonjour

Merci à tous pour votre aide.

Cependant yant plus de 256 mots, est-il possible d'avoir le resultat en
colonne et non en ligne.

Merci


"Joël GARBE" a écrit dans le message de news:
415fdc22$0$3025$
Bonjour,

On pourrait aussi envisager une pt'iot macro...

Sub Extraire()
Dim i As Integer
Dim j As Integer
Dim LeMot As String
j = 1
If Len(Range("A1")) < 3 Then Exit Sub
For i = 1 To Len(Range("A1")) - 3
If Mid(Range("A1"), i, 3) <> "r" Then
LeMot = LeMot & Mid(Range("A1"), i, 1)
Else
j = j + 1
Cells(1, j) = LeMot
LeMot = ""
i = i + 2
End If
If i = Len(Range("A1")) - 3 Then
Cells(1, j + 1) = LeMot
End If
Next
End Sub


--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"gib" a écrit dans le message de news:

Bonjour,

j'ai dans la cellule A les caractères suivant :
WarningrnwishrnAccountrnappointmentrnPharma]cyrncaught


Je souhaiterai pouvoir automatiquement mettre les mots séparés par :
r chacun dans une cellule soit par exemple :

A2 : Warning
A3 : nwish
A4 : Account
A5 : nappointment
A6 : nPharma]cy
A7 : ncaught

etc...


et inversement concatener l'ensemble des cellules non vide d'une
colonne en inserant entre chaque mot : r


Merci pour votre aide

Bon week end











1 2