Partager via

Suppression de caractères de droite

Anonyme
2020-07-11T02:15:08+00:00

Bonjour,

Soit les variables:      ACDEF.C.CO

                                  YHSFR:CNX

Je cherche une macro qui me permettrait de supprimer les caractères

à la droite du premier caractère non alphabétique à partir de la droite.

Donc, la variable    ACDEF.C.CO    deviendra  ACDEF.C  (j'enlève les caractères   .CO )

soit le premier point de droite et les caractères après ce point. (L'autre point n'est 

pas supprimé.)

l'autre variable     YHSFR:CNX   deviendra    YHSFR   (j'enlève les caractères   :CNX  )

 soit les points superposés et les caractères à leur droite.

À noter que s'il y a plus d'un caractère non alphabétique seul celui de droite

est supprimé.

Merci et bonne journée

Flac

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

Réponse acceptée par l’auteur de la question

DanielCo 107.7K Points de réputation
2020-07-11T16:43:27+00:00

Dans ce cas :

Sub test()

  Dim Var As String, I As Long

  Var = "FID230"

  For I = Len(Var) To 1 Step -1

    If (Mid(Var, I, 1) < "a" Or Mid(Var, I, 1) > "z") And _

      (Mid(Var, I, 1) < "A" Or Mid(Var, I, 1) > "Z") And _

      (Mid(Var, I, 1) < "0" Or Mid(Var, I, 1) > "9") Then

      Var = Left(Var, I - 1)

      Exit For

    End If

  Next I

  MsgBox Var

End Sub

Daniel

Cette réponse a-t-elle été utile ?

1 personne a trouvé cette réponse utile.
0 commentaires Aucun commentaire

3 réponses supplémentaires

  1. Anonyme
    2020-07-11T20:16:09+00:00

    Boujour,

    Merci, en plein ce que je voulais.

    Bonne journée

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2020-07-11T12:59:10+00:00

    Bonjour Daniel,

    Merci pour la réponse, ça me convient mais j'aurais une contrainte supplémentaire.

    Serait-il possible d'empêcher la suppression de chiffres dans le cas oû la chaine

    ne contient pas de point ou de point superposé.

    Je m'explique:

    en roulant la macro,  la variable      "FID230"    devient      "FID23"

    alors qu'il faudrait qu'elle conserve sa valeur de   "FID230"

    Merci et bonne journée

    Flac

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. DanielCo 107.7K Points de réputation
    2020-07-11T09:08:22+00:00

    Bonjour,

    Teste (le résultat s'affiche dans une msgbox).

    Sub test()

      Dim Var As String, I As Long

      Var = "YHSFR:CNX"

      For I = Len(Var) To 1 Step -1

        If (Mid(Var, I, 1) < "a" Or Mid(Var, I, 1) >= "z") And _

          (Mid(Var, I, 1) < "A" Or Mid(Var, I, 1) >= "Z") Then

          Var = Left(Var, I - 1)

          MsgBox Var

          Exit For

        End If

      Next I

    End Sub

    Cordialement.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire