Macro pour supprimer des lignes
christ.lenoir
Messages postés
39
Statut
Membre
-
christ.lenoir Messages postés 39 Statut Membre -
christ.lenoir Messages postés 39 Statut Membre -
Bonjour,
J'ai cette macro qui fonctionne :
Sub Macro_2()
'Pour détruire les lignes qui commence par *
Sheets("DATA - Achats").Select
Dim Ligne As Integer
For Ligne = 1 To 10000
If Cells(Ligne, 13) = "Effacer" Then
Rows(Ligne & ":" & Ligne).EntireRow.Delete
End If
Next
End Sub
Toutefois, elle ne semble pas vouloir supprimer plus de deux lignes à la fois ??
Pourtant quand je désire masquer la ligne :
Rows(Ligne & ":" & Ligne).EntireRow.Hidden
ça fonctionne pour tous les lignes ....
Je ne comprends pas pourquoi ?
Y aurait-il un autre moyen pour supprimer mes lignes ?
Merci d'avance,
J'ai cette macro qui fonctionne :
Sub Macro_2()
'Pour détruire les lignes qui commence par *
Sheets("DATA - Achats").Select
Dim Ligne As Integer
For Ligne = 1 To 10000
If Cells(Ligne, 13) = "Effacer" Then
Rows(Ligne & ":" & Ligne).EntireRow.Delete
End If
Next
End Sub
Toutefois, elle ne semble pas vouloir supprimer plus de deux lignes à la fois ??
Pourtant quand je désire masquer la ligne :
Rows(Ligne & ":" & Ligne).EntireRow.Hidden
ça fonctionne pour tous les lignes ....
Je ne comprends pas pourquoi ?
Y aurait-il un autre moyen pour supprimer mes lignes ?
Merci d'avance,
A voir également:
- Macro pour supprimer des lignes
- Supprimer rond bleu whatsapp - Guide
- Supprimer page word - Guide
- Supprimer pub youtube - Accueil - Streaming
- Partager des photos en ligne - Guide
- Fichier impossible à supprimer - Guide
2 réponses
Bonjour christ.lenoir,
Pour une suppression de lignes, il faut faire l'opération
du bas vers le haut => voici ton code VBA modifié :
Cordialement
Pour une suppression de lignes, il faut faire l'opération
du bas vers le haut => voici ton code VBA modifié :
Sub SupprLigs()
' pour supprimer les lignes qui commencent par *
Worksheets("DATA - Achats").Select
Application.ScreenUpdating = False
Dim dlig As Long, lig As Long
' derrnière ligne, selon la colonne "M"
dlig = Range("M" & Rows.Count).End(xlUp).Row
For lig = dlig To 1 Step -1
If Left$(Cells(lig, 13), 1) = "*" Then Rows(lig & ":" & lig).Delete
Next lig
End Sub
Cordialement
Bonjour
Poste un exemple de ton fichier sur monpartage.fr, fais créer un lien que tu copies et reviens coller ici, on regardera
Cdlmnt
Via
Poste un exemple de ton fichier sur monpartage.fr, fais créer un lien que tu copies et reviens coller ici, on regardera
Cdlmnt
Via
Je ne peux pas malheureusement, il contient des données confidentielles ...
Peut-être je peux être plus clair, dans les cellules se trouvant à la colonne 13, j'ai une formule Si qui me dit donne la réponse : Effacer ou"" quand je ne veux pas l'effacer ...
Alors l'erreur ne provient pas de ce bout là ..
Peut-être je peux être plus clair, dans les cellules se trouvant à la colonne 13, j'ai une formule Si qui me dit donne la réponse : Effacer ou"" quand je ne veux pas l'effacer ...
Alors l'erreur ne provient pas de ce bout là ..
Toutefois ça ne fait rien ??
Juste pour ma compréhension, que veut dire cette partie de la macro:
For lig = dlig To 1 Step -1
If Left$(Cells(lig, 13), 1) = "*" Then Rows(lig & ":" & lig).Delete
Next lig
Je crois que là que ça bogue ... ou sinon là :
dlig = Range("M" & Rows.Count).End(xlUp).Row
Sub SupprLigs() ' pour supprimer les lignes qui commencent par * Dim dlig As Long, lig As Long Worksheets("DATA - Achats").Select Application.ScreenUpdating = False ' dernière ligne, selon la colonne "M" dlig = Range("M" & Rows.Count).End(xlUp).Row For lig = dlig To 1 Step -1 If Left$(Cells(lig, 13), 1) = "*" Then Rows(lig).Delete Next lig End SubJ'ai fait une petite modif et ça fonctionné !
Merci,
C'est que moi je ne savais pas comment faire la macro avec le Left alors je l'avais fait dans une fonction Si : =SI(GAUCHE(G2;1)="*";"Effacer";"")
Toutefois avec votre macro, je n'ai plus besoin de cette fonction ...
Ça fonctionne merci beaucoup !