VBA Excel: extraction de morceaux de chaînes dans un tableau

Résolu
mikel831 Messages postés 237 Date d'inscription   Statut Membre Dernière intervention   -  
via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   -

Bonjour,
J'ai une chaîne de caractères de la forme suivantes:
"Agences : Provence Cote Azur : 2 - 3 - 5 - 8 - 12 - 17....." constituée ainsi:
1) les ":" de séparations sont toujours à la même position, quelle que soit la région
2) les n° d'agence sont toujours séparées par " - " et peuvent être composées de 1 ou 2 chiffres
3) le nombre d'agences est variable : il peut aller de 1 à  9.
Je cherche à créer un tableau Agence(9) contenant le n° des agences dans l'ordre indiqué. Ici Agence(1)=2, Agence(2)=3 etc...
N'étant pas très expérimenté en VBA Excel , je galère ...
Merci pour votre aide !


Windows / Chrome 123.0.0.0

3 réponses

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     

    Re,

    Voir si cela convient

    https://www.cjoint.com/c/NDrsRxkEwJQ


    1
    1. mikel831 Messages postés 237 Date d'inscription   Statut Membre Dernière intervention   19
       

      Merci pour ta réponse!
      J'ai bien téléchargé le fichier , et ça fonctionne parfaitement.
      Je vais l'adapter à mon code existant. Cependant, quelques interrogations:
      1) quelle est la différence entre Target.value et Selection.value ?
      2) idem entre WorksheetFunction.Find et Selection.Find ?
      3) je ne connaissait pas la fonction Split(chaine) : c'est ce qui me manquait pour aboutir ... (l'experience , tout est là !)
      Merci encore pour ton aide, cordialement, Mikel

      0
  2. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     

    Bonjour

    1) Pas sûr qu'il y ait besoin de VBA

    2) Pas très clair, fournis un exemple de fichiers avec plusieurs lignes à traiter en le postant sur cjoint.com, en faisant créer un lien et en revenant le coller cie

    Dans l'attente

    Cdlmnt


    0
    1. mikel831 Messages postés 237 Date d'inscription   Statut Membre Dernière intervention   19
       

      Merci pour ta réponse
      Je souhaite le faire en VBA car c'est pour insérer dans un autre code
      Pour l'instant, je teste un cas unique , et je l'étendrais aux autres lignes. Voici quelques exemple de chaînes à traiter :
          "Agences : Provence Cote Azur : 2 - 3 - 5 - 8 - 12 - 17 "
          "Agences : Grand Nord              : 12 -15"
          "Agences : Auvergn Rhône Alp  : 5 - 10"
          "Agences : Occitanie                  : 13 -17 - 19"
      Tu choisis n'importe laquelle ...
       

      0
  3. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     

    Re

    Target c'est la cible donc la cellule de l'action (ici un double-clic)

    Selection c'est la cellule qui a été sélectionnée auparavant (avec une instruction comme Range("B2"). Select par exemple

    Worksheetfunction.Find c'est l'application de la fonction Find (l'équivalent en VBA de CHERCHE)

    Oui, SPLIT est une fonction très pratique pour décomposer une chaîne selon ses séparateurs quel qu'ils soient, virgule, tiret, espace, slash etc

    Bonne continuation


    0