Rechercher : dans
Par :

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

Dernière réponse le 13 jun 2008 à 14:26:26 Cécile, le 12 jun 2008 à 10:34:49 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « VB, Excel et place des chaînes de caractères » dans :
PHP - Nettoyer une chaîne de caractères VoirVoici une fonction en PHP qui peut être assez pratique, surtout quand on fait de l'URL Rewriting. Cette fonction permet de transformer les caractères de n'importe quelle chaîne de caractères en chaîne non accentuée, en enlevant les caractères...
VBScript - Les fonctions de chaînes de caractères VoirLes fonctions de chaînes de caractères Fonction Description Filter(InputStrings, Value[, Include[, Compare]]) Sélectionne des chaînes de caractères parmi un tableau de chaînes...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...
Javascript - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractère Une chaîne de caractère est, comme son nom l'indique, une suite de caractères. On la représente par la suite de caractères encadrée par des guillemets simples (') ou doubles ("), sachant que les deux types de...

1

onesdf, le 12 jun 2008 à 10:51:03

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)"

Répondre à onesdf

3

Cécile, le 13 jun 2008 à 13:48:59

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" ?

Répondre à Cécile

4

Ivan-hoe, le 13 jun 2008 à 14:06:03

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...

Répondre à Ivan-hoe

5

Cécile, le 13 jun 2008 à 14:22:39

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 )

Répondre à Cécile

2

Ivan-hoe, le 12 jun 2008 à 11:02:08

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.

Répondre à Ivan-hoe

6

 Ivan-hoe, le 13 jun 2008 à 14:26:26

Peux-tu poster ton code complet, qu'on puisse voir en amont d'où vient le problème ?
Merci.

Répondre à Ivan-hoe