Programmation VBA
MisterVBA
-
Bidouilleu_R Messages postés 1209 Statut Membre -
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
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
-
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 !! -
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