Programmation VBA

MisterVBA -  
Bidouilleu_R Messages postés 1209 Statut Membre -
Bonjour,

Je souhaite faire une macro VBA Excel qui recherche dans une colonne si les premiers caractères sont MR ou MME. Si c'est le cas supprimer "MR " ou "MME " et passer à la ligne suivante.

Merci d'avance de votre aide

Mister VBA

2 réponses

  1. Chico95
     
    Peut etre avec un boucle for !

    feuille = ThisWorkbook.Sheets("nom_de_ta_feuille).Cells(i, 1)

    For i = 1 To X ( X est le nombre de ligne)
    If feuille.Cells(i, 1).Characters(Start:=1, Length:=2) = "MR" Then
    feuille.Cells(i, 1) = Right(feuille.Cells(i, 1), InStr(feuille.Cells(i, 1), "MR") + 2 )
    Else If feuille.Cells(i, 1).Characters(Start:=1, Length:=3) = "MME" Then
    feuille.Cells(i, 1) = Right(feuille.Cells(i, 1), InStr(feuille.Cells(i, 1), "MME") +3 )
    End If

    i = i + 1
    Next i

    Là en faite la boucle passe de ligne en ligne et voit si les premières lettres sont MR ou MME, si tel est le cas, la cellule est remplacé par ce qu'il y avait après le MR ou le MME

    ton X correspond au nombre de ligne à vérifier
    Par contre dans mon exemple il va parcourir la cellule (1 , 1 ) à la cellule (1, X ) , a toi de changer selon ton cas !!
    0
  2. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    un petit code tout simple

    J'ai mis à partir de la ligne A6 MR Durand MME dupont.....

    Sub RetireLeDebut()
    
    Dim NbLig As Integer
    Dim C As Variant
    Sheets("feuil1").Select
    NbLig = Range("A6").CurrentRegion.Rows.Count
    
    For Each C In Range("A6:A" & NbLig + 6)
        If UCase(Left(C, 3)) = "MR " Then
        C.Value = Replace(C.Value, "MR ", "")
            
        End If
        If UCase(Left(C, 4)) = "MME " Then
            C.Value = Replace(C.Value, "MME ", "")
        End If
    
    Next
    
    End Sub
    0