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
A voir également:
- Programmation VBA
- Application de programmation - Guide
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Find vba - Astuces et Solutions
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 !!
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.....
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