Spécifique macro aidez moi les pro de excel
willcomcom
Messages postés
2
Statut
Membre
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai sur excel un tableau comprenant 6000 lignes (fichier clients).
Dans ma colonne A, j'ai des cellules contenant des références propre à mon entreprise du type 11669360OIF0001.
J'aimerai creer une macro qui me permetterai de supprimer la ligne entière des qu'une cellule contient les 3 lettres OIF.
SVP merci de me répondre je vous fait confiance
Merci d'avance....
will.
J'ai sur excel un tableau comprenant 6000 lignes (fichier clients).
Dans ma colonne A, j'ai des cellules contenant des références propre à mon entreprise du type 11669360OIF0001.
J'aimerai creer une macro qui me permetterai de supprimer la ligne entière des qu'une cellule contient les 3 lettres OIF.
SVP merci de me répondre je vous fait confiance
Merci d'avance....
will.
A voir également:
- Spécifique macro aidez moi les pro de excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Clé windows 10 pro 64 bits gratuit - Guide
- Word et excel gratuit - Guide
- Ccleaner pro gratuit - Télécharger - Optimisation
5 réponses
bonjour
Il te suffit de faire un filtre personnalisé sur la colonne avec "contient" "OIF" et de supprimer les lignes sélectionnées.
Il te suffit de faire un filtre personnalisé sur la colonne avec "contient" "OIF" et de supprimer les lignes sélectionnées.
Bonjour
aidez moi les pro de excel: tu payes combien ?
fonctionne jusqu'à enviiron 2000 "oif"
aidez moi les pro de excel: tu payes combien ?
fonctionne jusqu'à enviiron 2000 "oif"
Sub supprimer_avec_condition()
Application.ScreenUpdating = False
On Error Resume Next
lig = Columns(1).Find("OIF", Range("A65536"), , xlPart).Row
Rows(lig).Delete
If Err.Number > 0 Then: End
supprimer_avec_condition
End Sub
Bonjour,
Une macro qui fonctionne sur les 6000 lignes (ou plus)
Par contre je suis assez curieux de savoir d'où provient la limitation à environ 2000 résultats avec la méthode .Find ? Michel ?
Une macro qui fonctionne sur les 6000 lignes (ou plus)
Sub supprime()
Application.ScreenUpdating = False
For i = 6000 To 1 Step -1
If InStr(1, Range("A" & i).Value, "OIF", vbTextCompare) > 0 Then Rows(i).Delete
Next
Application.ScreenUpdating = True
End Sub
Par contre je suis assez curieux de savoir d'où provient la limitation à environ 2000 résultats avec la méthode .Find ? Michel ?
bonjour
saturation de la pile
pour voir: remplace END par EXIT SUB avec 3 ou 4 "OIF"; chaque fois que tu relance la macro, "l'ancienne" n'est pas considéré comme terminée et ca s'empile jusqu'à saturer
VBa n'aime pas les récurrences:
je m'étais amusé à faire ce système question de rapidité et tester la récurrence car boucler sur toutes les lignes est un peu lourd: la fonction "find" évite cela
mais on pourrait utiliser "find" sans récurrence...
saturation de la pile
pour voir: remplace END par EXIT SUB avec 3 ou 4 "OIF"; chaque fois que tu relance la macro, "l'ancienne" n'est pas considéré comme terminée et ca s'empile jusqu'à saturer
VBa n'aime pas les récurrences:
je m'étais amusé à faire ce système question de rapidité et tester la récurrence car boucler sur toutes les lignes est un peu lourd: la fonction "find" évite cela
mais on pourrait utiliser "find" sans récurrence...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Voici "vite fait"
la macro avec "Find"; on boucle autant de fois qu'il y a de "find" au lieu de 6000 fois
la macro avec "Find"; on boucle autant de fois qu'il y a de "find" au lieu de 6000 fois
Sub enlever_OIF()
Dim nbre As Long, lig As Long, cptr As Long
'initialisation
Application.ScreenUpdating = False
nbre = Application.CountIf(Columns(1), "*OIF*")
lig = 65536
'cherche et supprilmme les lignes OIF
While cptr < nbre
lig = Columns(1).Find("OIF", Cells(lig, 1), , xlPart).Row
Rows(lig).Delete
cptr = cptr + 1
Wend
End Sub