Découpage d'une chaine de caractère dans TextBox

Bonsoir,

Je débute en VBA et je me retrouve confronter à une difficulté. Je vous explique.

J'invite mon utilisateur a copier dans une textbox une chaine de caractère ayant ce type de format :

Affaire : 51515151- ABCD- 75000- DUPONT -

Adresse : 1 RUE EMILE ZOLA 75000 PARIS

Je souhaite pouvoir isoler trois informations dans cette chaine de caractère (les infos en souligné), et je ne sais pas comment m'y prendre.

Pour compléter mon propos ces infos seront ensuite afficher individuellement dans des cells distinctes de ma Sheet.

Merci d'avance pour votre aide et vos suggestions.

Bonjour Gral,

Voici un classeur exemple avec le code

20gral-exemple.xlsm (16.08 Ko)

@+

Bonjour BrunoM45,

Avant merci infiniment de votre réponse qui m'aide à y voir plus clair. Voilà le bout de code que j'ai mis en place.

Private Sub CommandButton1_Click()
    Dim sAffaire As String
    Dim TabAdr() As String, sRue As String, sVille As String
    Dim Ind As Integer

    sAffaire = Left(Me.TextBox1, InStr(1, Me.TextBox1, "-") - 1)

    ' Pour récupérer le numéro et la voie
    TabAdr = Split(Me.TextBox1, " ")
    For Ind = 0 To UBound(TabAdr) - 2
    sRue = sRue & TabAdr(Ind) & " "
    Next Ind

    ' Supprimer le dernier espace
    sRue = Left(sRue, Len(sRue) - 1)

    ' Pour récuperer la ville
    sVille = Mid(Me.TextBox1, InStrRev(Me.TextBox1, " ") + 1, 255)

    Sheets("Plan minute").Range("C4").Value = sVille
    Sheets("Plan minute").Range("C4").HorizontalAlignment = xlCenter

    Sheets("Plan minute").Range("C5").Value = sRue
    Sheets("Plan minute").Range("C5").HorizontalAlignment = xlCenter

    Sheets("Plan minute").Range("C6").Value = sAffaire
    Sheets("Plan minute").Range("C6").HorizontalAlignment = xlCenter

    Unload Me
    UserForm2.Show
End Sub

Ce dernier ne répond pas vraiment à ce que je souhaite faire.

Je m'explique, en fait la chaine de caractère est saisi en une seule fois dans un seule TextBox :

capture 2

Cela est une contrainte de développement que j'ai.

Avec cette précision et le code que vous m'avez proposé, 3 problèmes subsistent :

1/ Le numéro d'affaire que je récupère contient le mot Affaire en préfixe or je ne souhaite avoir que le numéro d'affaire.

2/ Le numéro de voie et la voie ne sont pas récupérer car l'information se trouve sur la deuxième ligne de la TextBox et non pas dans une TextBox "isolée".

3/ La ville récupère le dernier mot de la chaîne de caractère mais cela ne fonctionne pas dans le cas où j'ai un nom de ville composé de plusieurs mots (2 ou plus). Exemple La Bastide de Sérou. Je pense que le plus serait de dire de garde toute la chaîne de caratère se trouvant derrière le code postal.

Voilà je vous remercie encore pour aide.

Bonjour,

Je n'avais pas lu l'énoncé comme ça, voici le fichier modifié

@+

Super c'est parfait merci infiniment.

Re-bonjour,

Ca fonctionne à merveille mais je m'aperçois que la manipulation de chaine de caractère est un sujet complexe.

Auriez vous la gentillesse (même si j'ai conscience d'abuser un peu) de me dire comment récupérer ce qui correspond au nom du client (dans mon exemple DUPONT) sachant qu'une fois n'est pas coutume, ce nom peut-être composé de plusieurs mots (voire même contenir un trait d'union).

Merci par avance.

Re,

Tout ça pour éviter d'avoir à saisir des infos qui prennent 10s

Alors oui effectivement vous abusez

Comme je vous l'ai dis j'ai conscience que j'en demande beaucoup après croyez moi ce n'est pas que pour gagner 10s.

Rechercher des sujets similaires à "decoupage chaine caractere textbox"