HELP! comment inverser du texte séparé par // dans une cellule?

Résolu
nicobentz Messages postés 17 Date d'inscription lundi 16 janvier 2006 Statut Membre Dernière intervention 2 octobre 2006 - 24 janv. 2006 à 14:54
nicobentz Messages postés 17 Date d'inscription lundi 16 janvier 2006 Statut Membre Dernière intervention 2 octobre 2006 - 24 janv. 2006 à 20:40
bonjour,



j'ai une colonne contenant des cellules du type:



//liste de mots1//liste de mots2//liste de mots3...



je souhaite avoir:



//liste de mots3//liste de mots2//liste de mots1...



le nombre de listes de mots n'est pas identique pour chaque ligne.



une idée???



merci

7 réponses

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 25
24 janv. 2006 à 18:04
S'cuse, j'avais pas testé et j'avais oublié le "Step -1" dans la boucle For. Là, çà fonctionne !





Si tu appelles InverserColonne(4), tu inverses la 4ème colonne :





Private Sub InverserColonne(lCol As Long)

' Sur les 10 premieres lignes de la colonne numCol (A=1, B=2, ... , I=9 )

Dim lLigne As Long

For lLigne = 1 To 10

Inverser lLigne, lCol

Next lLigne

End Sub







Private Sub Inverser(lLigne As Long, lCol As Long)

Dim sTemp As String

Dim t() As String



sChaine = Sheets("Feuil1").Cells(lLigne, lCol)

t = Split(sChaine, "//")

sTemp = ""

For k = UBound(t) To LBound(t) Step -1 ' du dernier element au premier

sTemp = sTemp & t(k) & "//"

Next k

Sheets("Feuil1").Cells(lLigne, lCol) = sTemp

MsgBox sTemp

End Sub

Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
3
jannoman Messages postés 256 Date d'inscription jeudi 17 avril 2003 Statut Membre Dernière intervention 20 février 2008 1
24 janv. 2006 à 15:21
utlise la fonction split :
dim t() as string
t = split(chaine, "//")
n = ubound(t)
for k = 1 to n
me.print t(n - k)
next k


essaye aussi le cas ou le tableau va de 1 à n au lieu de 0 à n-1, je ne sais pas



A+.
Thomas.
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 25
24 janv. 2006 à 15:31
Le tableau retourné par Split commence à l'indice 0

Sinon, si tu ne connais pas les bornes du tableau, tu fais ceci :



Dim sTemp As String

Dim t() As String

t = Split(sChaine,"//")

sTemp = ""

For k=Ubound(t) To LBound(t) ' du dernier element au premier

sTemp = sTemp & t(k)

Next k


MsgBox sTemp


Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
0
nicobentz Messages postés 17 Date d'inscription lundi 16 janvier 2006 Statut Membre Dernière intervention 2 octobre 2006
24 janv. 2006 à 15:43
merci mais comment indiquer la colonne ou j'applique cette fonction?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 25
24 janv. 2006 à 16:58
Private Sub InverserColonne(numCol As Long)

' Sur les 10 premieres lignes de la colonne numCol (A=1, B=2, ... , I=9 )

For ll = 1 To 10

Inverser ll,numCol

Next ll

End Sub







Private Sub Inverser( lLigne As Long, numCol As Long)

Dim sTemp As String

Dim t() As String



sChaine = Sheets("Feuil1").Cells(lLigne,numCol)

t = Split(sChaine,"//")

sTemp = ""

For k=Ubound(t) To LBound(t) ' du dernier element au premier

sTemp = sTemp & t(k)

Next k

Sheets("Feuil1").Cells(lLigne,numCol) = sTemp

MsgBox sTemp

End Sub




Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
0
nicobentz Messages postés 17 Date d'inscription lundi 16 janvier 2006 Statut Membre Dernière intervention 2 octobre 2006
24 janv. 2006 à 17:25
désolé de te déranger encore mais j'utilise le déboggeur et tout marche
jusqu'à sTemp = sTemp & t(k). la boucle saute directement sur
Cells(x, 45) sTemp sans passer par sTemp sTemp & t(k) donc
sTemp reste vide....et ça marche pas, snif!



For x = 2 To maxx Step 1



sChaine = Cells(x, 45)

t = Split(sChaine, "//")

sTemp = ""

For k = UBound(t) To LBound(t) ' du dernier element au premier

sTemp = sTemp & t(k)

Next k



Cells(x, 45) = sTemp

Next x
0
nicobentz Messages postés 17 Date d'inscription lundi 16 janvier 2006 Statut Membre Dernière intervention 2 octobre 2006
24 janv. 2006 à 20:40
merci beaucoup pour ton aide!!!

bonne soirée
0
Rejoignez-nous