Inverser les valeurs des colonnes d'une ligne VBA

Signaler
Messages postés
49
Date d'inscription
lundi 23 août 2010
Statut
Membre
Dernière intervention
14 octobre 2010
-
Messages postés
133
Date d'inscription
dimanche 23 juin 2002
Statut
Membre
Dernière intervention
3 janvier 2015
-
Bonjour à tous ,

Dans le cadre de mon activité professionnel et n'ayant très peu de connaissances en VB , je compte sur vos connaissances pour m'éclairer.

Mon problème est le suivant:

-à partir de la sélection d'une ligne
-inverser les valeurs des colonnes

Exemple

test forum internet

Résultat:

internet forum test

Merci de votre aide!

5 réponses

Messages postés
133
Date d'inscription
dimanche 23 juin 2002
Statut
Membre
Dernière intervention
3 janvier 2015
3
salut,
Valeur= Split("ta cellule", " ")
For x = UBound(valeur) To 0 Step -1
resultat = Trim(resultat & " " & valeur(x))
'affiche ensuite le resultat dans ta cellule
Next x


salutation
Messages postés
49
Date d'inscription
lundi 23 août 2010
Statut
Membre
Dernière intervention
14 octobre 2010
2
Bonjour AKZO,

Merci pour la rapidité de ta réponse,j'ai besoin de quelques précisions s'il te plait .

La ligne:

resultat = Trim(resultat & " " & valeur(x))

Permet bien l'affichage du résultat ? si oui dans quelle cellule pour
"ta cellule"=A1

Je n'ai pas besoin de préciser la destination?

Bonne journée
Messages postés
133
Date d'inscription
dimanche 23 juin 2002
Statut
Membre
Dernière intervention
3 janvier 2015
3
salut,
resultat c'est comme une variable,reste a choisir la destination ou tu veux l'afficher mais normalement c'est dans "ta cellule" si j'ai bien compris.
Donc cela devient:

Sub inversement()
valeur = Split("" & Range("A1").Value & "", " ")
For x = UBound(valeur) To 0 Step -1
resultat = Trim(resultat & " " & valeur(x))
Next x
Range("A1") = resultat
End Sub

Maintenant a toi de lister toute tes cases

Bonne continuation
Messages postés
49
Date d'inscription
lundi 23 août 2010
Statut
Membre
Dernière intervention
14 octobre 2010
2
Re,

Je ne comprend pas tout désolé. L'intérêt est qu'à partir d'une plage du style A1:W1 j'arrive à inverser les valeurs W1 devient A1.

Je n'ai pas bien compris le traitement qu'effectue ton code sur la cellule A1.

Merci de ton aide
Messages postés
133
Date d'inscription
dimanche 23 juin 2002
Statut
Membre
Dernière intervention
3 janvier 2015
3
salut,
Oui,désole j'avais pas saisi ta premiere question
en faite tu veux
---- A ------ B ---- C -----
1....toto.....tata....titi
resultat
1....titi.....tata....toto

alors que moi j'ai fait
----- A --------- B
1.titi tata toto

resultat
----- A --------- B
1.toto tata titi

Sinon pour ton probleme selectionne par couper la derniere colonne que tu inseres en 1 puis selectionne encore la derniere que tu inseres en 2 et ainsi de suite
tu devrais ainsi avoir inverser toute les colonnes.
Exemple:
a b c d
ca donne
couper d et inserer au niveau de a
ca donne
d a b c
couper c (donc toujour la derniere)
et inserer a a(donc toujours a la valeur de depart de A)
ca donne
d c a b
et ainsi de suite

Range("D1").Select
Selection.Cut
Range("A1").Select
Selection.Insert Shift:=xlToRight
Range("D1").Select
Selection.Cut
Range("B1").Select
Selection.Insert Shift:=xlToRight
Range("D1").Select
Selection.Cut
Range("C1").Select
Selection.Insert Shift:=xlToRight
Maintenant a toi de l'automatiser mais voila l'idée pour moi

Salutation