VB, Excel et place des chaînes de caractères

Cécile -  
Ivan-hoe Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Cela fait un petit moment que je cherche une solution à mon problème et je n'ai encore rien trouvé. Je suis à la recherche d'une macro me permettant de diviser une chaîne de caractère et d'en passer une partie à la fin. Par exemple, pour "Port de Lorient", j'aimerai bien arriver à "Lorient (Port de)". Passer de "Port de" à "(Port de)" ne me pose pas de problème mais c'est envoyer le "(Port de") à la fin de la chaîne qui est plus problématique.....

Si quelqu'un a une idée, je l'en remercie :)

Bonne journée.
Configuration: Windows XP
Firefox 2.0.0.14

3 réponses

  1. onesdf Messages postés 375 Date d'inscription   Statut Membre Dernière intervention   120
     
    Voila grosso modo le code que tu dois appliquer :
        Texte = Range("A1")
        ' Cherche le dernier espace
        Position = InStrRev(Texte, " ")
        ' Extraction des caractères après le dernier espace
        Ville = Mid(Texte, Position + 1)
        ' Extraction des caractères avant le dernier espace
        Avant = Left(Texte, Position - 1)
        Avant = "(" & Avant & ")"
        ' Construction du nouveau Libellé
        NouveauTexte = Ville & " " & Avant
        MsgBox NouveauTexte
    


    Mais attention car cela recherche le dernier espace dans la chaine de caractère, donc ca marche pour les villes sans espaces, mais pour "Port de La Baule" ca te renverra "Baule (Port de La)"
    0
    1. Cécile
       
      Merci à tout les deux :) cela me donne des pistes ^^
      Par contre, j'ai encore un p'tit problème d'argument ou de procédure incorrect au niveau de la ligne avant = Left(texte, Position - 1) et j'ai du mal à voir d'où vient le problème... peut être d'une mauvaise déclaration de la variable "texte" ?
      0
      1. Ivan-hoe Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   310 > Cécile
         
        Salut,
        quelle est la valeur de Texte quand tu as ce message d'erreur ?
        est ce que ce n'est pas un mot simple (sans espace), par hasard ?
        A suivre...
        0
      2. Cécile > Ivan-hoe Messages postés 433 Date d'inscription   Statut Membre Dernière intervention  
         
        non, ce n'est pas un mot simple... mais il y a des formalismes sous VB que je dois omettre (je suis vraiment une débutante )
        0
  2. Ivan-hoe Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   310
     
    Salut,
    sinon, à partir du moment où tu as mis tes parenthèses, tu peux t'inspirer du code ci-dessous
    Split coupe le texte à chaque délimiteur ; ici, on met la parenthèse fermante comme délimiteur
    Ensuite, on recompose le texte à l'envers
    Sub Test()
    Dim LeTexte As String
    Dim Tableau
    LeTexte = "(Port de) Lorient "
    Tableau = Split(LeTexte, ")")
    MsgBox Tableau(1) & Tableau(0) & ")"
    End Sub

    I.
    0
  3. Ivan-hoe Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   310
     
    Peux-tu poster ton code complet, qu'on puisse voir en amont d'où vient le problème ?
    Merci.
    0