Programmation VBA
Fermé
MisterVBA
-
17 févr. 2010 à 11:22
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 - 17 févr. 2010 à 15:03
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 - 17 févr. 2010 à 15:03
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
- Mkdir vba ✓ - Forum VB / VBA
- Autofill vba ✓ - Forum Excel
- Vba range avec variable ✓ - Forum VB / 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 !!
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 !!
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
295
17 févr. 2010 à 15:03
17 févr. 2010 à 15:03
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