Inverse de données texte avec excel

grosbull73 Messages postés 3 Date d'inscription mercredi 10 mai 2006 Statut Membre Dernière intervention 3 octobre 2007 - 3 oct. 2007 à 10:40
caco64 Messages postés 69 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 14 décembre 2007 - 3 oct. 2007 à 16:49
Bonjour, je ne sais pas où poster ma question!! (désolé!)
Je veux juste rentrer une formule pour inverser des données texte dans excel :
C'est un trajet de train ex : paris / marseille
Et je veux juste que quelques lignes plus bas cela me mette le trajet retour : marseille / paris.
Je ne connais rien à excel!! et j'ai essayé avec INVERSEMAT mais j'ai toujours #VALEUR!!
Merki beaucoup!!

6 réponses

caco64 Messages postés 69 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 14 décembre 2007
3 oct. 2007 à 11:00
Salut,

Tu noteras que ce que tu essaies de faire n'est possible (par excel) que si tes mots sont écrits dans des cases différentes ("Paris" en B2, "/" en B3 et "Marseille" en B4 par ex).

A ce moment-là, une solution est d'écrire des numéros dans les cases au-dessus et d'utiliser la fonction recherche ou rechercheh.
Mais je ne développe pas plus car je ne crois pas que c'est ce que tu veux faire.

Sinon, en Vb c'est très facile :
for i = 1 to 3
    cells(12,(4-i)).value = cells(2,(1+i)).value
next i

NOTE : en vb, tu peux inverser le texte, même s'il est dans une seule case.
Cela suppose de récupérer le texte dans une variable de type string et de manipuler les fonctions de tritement de texte (replace, instr, mid, left, right...)

Bon courage

La haine aveugle n'est pas sourde
0
grosbull73 Messages postés 3 Date d'inscription mercredi 10 mai 2006 Statut Membre Dernière intervention 3 octobre 2007
3 oct. 2007 à 14:30
heu... en fait en VB je vois même pas ce que ça veut dire!!! moi c'est la pao et web en temps normal!! mais c'est au boulot que j'en ai besoin! en fait quelqu'un a effacé la formule qu'il y avait dans la cellule avant; mais pour en revenir à ce que tu me dis, il me semble qu'il y avait une formule pour une seule cellule, le texte était dans une cellule; mais peut être que je me trompe, il est vrai que si on met les données dans chaque cellule ça devrait marcher... je vais tester;
0
GEDDi Messages postés 206 Date d'inscription lundi 22 novembre 1999 Statut Membre Dernière intervention 3 juillet 2008
3 oct. 2007 à 14:32
Bonjour,

Encore plus simple :)

Dans la 'Feuil1' de ton Excel, colles les valeurs suivantes à partir de A1 :

<col />

----

paris / marseille,

----

paris / bordeaux,

----

paris / nantes



Puis le volet de code de Excel, vas dans le code de ThisWorkBook et colles ce code là :

Public Sub Invert()
Dim svValue, svInvert, svSplit, i
    For i = 1 To 32000
        svSplit = Split(ThisWorkbook.Sheets("Feuil1").Range("A" & i).Value, "/")
        If UBound(svSplit) = -1 Then Exit For
        ThisWorkbook.Sheets("Feuil1").Range("B" & i).Value = LTrim(svSplit(1)) & " / " & svSplit(0)
    Next i
End Sub

Et joues ce code depuis Excel, menu Outils / Macros / ThisWorkbook.Invert
Et le tour est joué!
VBA powahh ^^

Gerome GUILLEMIN (auteur du langage FBSL)
http://www.fbsl.net -------------------------------- -----
0
caco64 Messages postés 69 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 14 décembre 2007
3 oct. 2007 à 15:00
Bon, j'ai parlé trop vite : il est tout à fait possible de faire ce que l'on fait en VB avec des fonctions Excel.
Voilà ce que j'ai trouvé (et qui semble marcher!).

Supposons que ton texte paris / marseille soit écrit dans la cellule E3, alors tu écris la formule ci-dessous dans une autre cellule :

=CONCATENER(DROITE(E3;(NBCAR(E3)-TROUVE("/";E3)-1));" / ";GAUCHE(E3;TROUVE("/";E3)-2))

Je te la décompose :
NBCAR(E3), c'est le nombre de caractères
TROUVE("/";E3) recherche le caractère "/" dans le texte de départ
DROITE et GAUCHE c'est pour renvoyer un certain nombre de caractères en partant de la gauche ou de la droite
CONCATENER te permet d'associer les différents termes de la chaîne.

Voilà, ca devrait être bon

La haine aveugle n'est pas sourde
0

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

Posez votre question
grosbull73 Messages postés 3 Date d'inscription mercredi 10 mai 2006 Statut Membre Dernière intervention 3 octobre 2007
3 oct. 2007 à 15:54
Alors là TROP LA CLASSE!!!!!!!!!
Je te remercie beaucoup!!!!!!!!
0
caco64 Messages postés 69 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 14 décembre 2007
3 oct. 2007 à 16:49
Y'a pas de quoi

La haine aveugle n'est pas sourde
0
Rejoignez-nous