VBA effacer des lignes sous conditions
Résolu
Glec
Messages postés
15
Statut
Membre
-
lermite222 Messages postés 9042 Statut Contributeur -
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,
Voilà, j'ai un problème que je n'arrive pas à régler. Je souhaite créer sur Excel une macro me permettant de supprimer des lignes sous conditions. Je voudrais en fait supprimer l'intégralité des lignes situées entre la cellule de la colonne A contenant "feuille" et la cellule de la colonne A contenant "ciseau". Le problème c'est que j'importe des fichiers différents, et ces cellules sont donc placées à des lignes différentes pour chaque fichiers.
Je voudrais donc faire une macro de ce genre
For i = 1 To 300
Si Range("A1") = "ciseau" Then
Entire.Row.Delete Shift:=xlUp
Jusqu'à ce que j'arrive à "feuille"
Quelqu'un pourrait il m'aider?
Voilà, j'ai un problème que je n'arrive pas à régler. Je souhaite créer sur Excel une macro me permettant de supprimer des lignes sous conditions. Je voudrais en fait supprimer l'intégralité des lignes situées entre la cellule de la colonne A contenant "feuille" et la cellule de la colonne A contenant "ciseau". Le problème c'est que j'importe des fichiers différents, et ces cellules sont donc placées à des lignes différentes pour chaque fichiers.
Je voudrais donc faire une macro de ce genre
For i = 1 To 300
Si Range("A1") = "ciseau" Then
Entire.Row.Delete Shift:=xlUp
Jusqu'à ce que j'arrive à "feuille"
Quelqu'un pourrait il m'aider?
A voir également:
- VBA effacer des lignes sous conditions
- Partager des photos en ligne - Guide
- Effacer les données de navigation sur android - Guide
- Effacer iphone - Guide
- Comment effacer une page word - Guide
- Comment recuperer des messages effacés sur whatsapp - Guide
3 réponses
Bonjour,
Bon amusement.
A+
Sub SupprimeDeA()
Dim i As Long
Dim e As Long
Dim A As String
Sheets("feuil2").Select
For i = 1 To Range("A65536").End(xlUp).Row
If UCase(Cells(i, 1).Value) = "CISEAU" Then Exit For
Next i
For e = i + 1 To Range("A65536").End(xlUp).Row
If UCase(Cells(e, 1).Value) = "FEUILLE" Then Exit For
Next e
A = CStr(i + 1) & ":" & CStr(e - 1)
Rows(A).Select
Selection.Delete Shift:=xlUp
Range("A" & i).Select
End Sub
Bon amusement.
A+
Juste par simple curiosité (car je suis débutant en VB) et que je m'y intéresse fortement
ce bout de code :
Que veut-il signifier
Merci
@+
ce bout de code :
Entire.Row.Delete Shift:=xlUp
Que veut-il signifier
Merci
@+
Je ne veux pas abuser, mais j'ai une autre question,
Si je souhaite faire la même chose que précédemment mais au lieu de "feuille", je souhaite dire je veux effacer les lignes entre "ciseau" et la prochaine cellule écrite en gras?
J'ai bien essayé de faire
If UCase(Cells(e, 1).Font.Bold) = True Then ...
Mais ca ne fonctionnne pas...
Quelqu'un pourrait il m'aider?
Si je souhaite faire la même chose que précédemment mais au lieu de "feuille", je souhaite dire je veux effacer les lignes entre "ciseau" et la prochaine cellule écrite en gras?
J'ai bien essayé de faire
If UCase(Cells(e, 1).Font.Bold) = True Then ...
Mais ca ne fonctionnne pas...
Quelqu'un pourrait il m'aider?
Autant pour moi lermite 222, cela ne marche pas lorsque la cellule suivante est vide (j'avais testé ton code dans ce cas), mais comme je me suis arrangé pour qu'il y ait toujours un ecrit dans les cellules suivantes et que le code à l'air de fonctionner correctement dans ce cas, je t'envoie un grand merci pour le temps passé et la solution trouvée,
MERCI
MERCI
Je dois dire que c'est bluffant! J'y suis depuis des heures et là... enfin, Merci encore!