[excel] copier en partie le texte d'1 cellule

Résolu
MattDF Messages postés 76 Statut Membre -  
MattDF Messages postés 76 Statut Membre -
Bonjour à tous,

Je souhaiterai connaitre une formule macro permettant de copier le texte d'une cellule à partir d'un mot de cette même cellule.

Ainsi, si une cellule contient le texte "Facture n° 123456", il faut que je puisse récupérer uniquement ce qui est à droite de "n°", c'est à dire "123456".

Bien entendu, (autrement ce serait trop simple et je ne solliciterai pas votre aide) la position de la cellule n'est pas fixe dans la page(elle est juste située dans une région de la page), ni même le contenu de la case contenant la valeur à récupérer (ca peut être "facture", "invoice","note de credit", etc...). La seule constante de cette cellule est de posséder les caractères "n°".

Voilà pourquoi je sollicite votre aide pour savoir comment copier uniquement ce qui se trouve à droite de "n°".

J'ai déjà trouvé comment faire pour détecter la cellule :

Range("A1:G20").Select
For Each Cell In Selection
If Cell.Text Like "*N°*" Then
...


il me reste à trouver la suite

Merci d'avance

4 réponses

  1. LePierre Messages postés 249 Statut Membre 338
     
    bonjour

    essaye ce code :
    Sub test()
        Range("A1:G20").Select
        For Each Cell In Selection
            If UCase(Cell.Text) Like "*N°*" Then
                Facture = Cell.Value
                x = InStr(UCase(Facture), "N°")
                NumFacture = Right(Facture, Len(Facture) - x - 2)
            End If
        Next
    End Sub

    ceci devrait répondre à ton problème en récupérant la variable NumFacture

    à plus
    2
  2. MattDF Messages postés 76 Statut Membre 67
     
    Merci pour ce code ! C'est très aimable ! ^^
    2
  3. MattDF Messages postés 76 Statut Membre 67
     
    Merci beaucoup ^^
    1
  4. amigo
     
    Bonjour,

    Soit txtSerie la variable de type String qui récupère le numéro de Facture

    txtSerie = Right(Cell.Text, Len(Cell.Text) - InStr(UCase(Cell.Text), "N°") - 1)

    A+.
    0