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

4 réponses

1 2
Avatar
gib
Bonsoir,

Merci, cela fonction parfaitement et répond exactement à mon besoin.

Cela me permet de travail sur l'ensemble des mots ainsi mis 1 à 1 dans une
cellule ( suppression des doublons, trie, vérification, rajout,..)

Maintenant l'opération inverse est-elle possible, c'est à dire reconcatener
les cellules de A3 à A9999 dans la cellule A2 en rajoutant a chaque fois :
rn


Merci

"Joël GARBE" a écrit dans le message de news:
416033ac$0$26113$
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















Avatar
FxM
Bonsoir,

Combien de cellules d'arrivée as-tu sélectionnées avant d'entrer la
formule et de valider ?

* Si tu prends moins de cellules que d'éléments contenus dans la trame
originale, tu limites au nombre de cellules choisi (-> si tu ne choisis
qu'une cellule, tu n'as qu'un résultat)

* Si tu prends autant de cellules que d'éléments, tu as tous les résultats,

* si tu prends plus de cellules que d'éléments, les cellules
supplémentaires contiennent #N/A.

@+
FxM




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
Joël GARBE
Un truc dans ce genre là ?

Sub Reconcatener()
Range("A2") = ""
Dim oCell As Range
For Each oCell In Range("A3:A9999")
If Range("A2") = "" Then
Range("A2").Value = Range("A2").Value & oCell.Value
Else
If oCell.Value <> "" Then
Range("A2").Value = Range("A2").Value & "rn" & oCell.Value
End If
End If
Next
End Sub


--

Bien cordialement,

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

Merci, cela fonction parfaitement et répond exactement à mon besoin.

Cela me permet de travail sur l'ensemble des mots ainsi mis 1 à 1 dans une
cellule ( suppression des doublons, trie, vérification, rajout,..)

Maintenant l'opération inverse est-elle possible, c'est à dire
reconcatener les cellules de A3 à A9999 dans la cellule A2 en rajoutant a
chaque fois : rn


Merci

"Joël GARBE" a écrit dans le message de news:
416033ac$0$26113$
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



















Avatar
gib
Bonsoir

Merci pour votre aide
cela fonctionne

merci

bonne soirée


"Joël GARBE" a écrit dans le message de news:
41605b63$0$17239$
Un truc dans ce genre là ?

Sub Reconcatener()
Range("A2") = ""
Dim oCell As Range
For Each oCell In Range("A3:A9999")
If Range("A2") = "" Then
Range("A2").Value = Range("A2").Value & oCell.Value
Else
If oCell.Value <> "" Then
Range("A2").Value = Range("A2").Value & "rn" & oCell.Value
End If
End If
Next
End Sub


--

Bien cordialement,

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

Merci, cela fonction parfaitement et répond exactement à mon besoin.

Cela me permet de travail sur l'ensemble des mots ainsi mis 1 à 1 dans
une cellule ( suppression des doublons, trie, vérification, rajout,..)

Maintenant l'opération inverse est-elle possible, c'est à dire
reconcatener les cellules de A3 à A9999 dans la cellule A2 en rajoutant
a chaque fois : rn


Merci

"Joël GARBE" a écrit dans le message de news:
416033ac$0$26113$
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