Bonjour à tous ,
S'il vous plait j'aimerai écrire un macro qui supprime une ou plusieurs ligne d'une feuille précise quand la cellule correspondante est vide.
Merci pour votre aide .
Version imprimable
Bonjour à tous ,
S'il vous plait j'aimerai écrire un macro qui supprime une ou plusieurs ligne d'une feuille précise quand la cellule correspondante est vide.
Merci pour votre aide .
Bonjour,
En supposant que tu doit supprimer les lignes si colonne A est "vide".
Code:
1
2
3 Application.ScreenUpdating = False ThisWorkBook.Worksheets("NomDeTaFeuille").Columns("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete ' NomDeTaFeuille a modifier bien sure Application.ScreenUpdating = True
@mfoxy merci pour votre réponse j'aimerai plus précisément que lorsque une cellule de la colonne A4 à A25 soit vide ou égale à zero , toute la ligne de la cellule correspondante soit supprimer . merci d'avance
quand j'essaie d’enregistrer la macro , j'ai le message suivant : " les fonctionnalités suivantes ne peuvent pas être enregistrer dans un classeur sans macro..."
je comprend pas ce qu’il faut faire
Re,
Dans ce cas
pour :Code:
1
2
3
4
5 Sub test() Application.ScreenUpdating = False ThisWorkbook.Worksheets("NomDeTaFeuille").Range("A4:A25").SpecialCells(xlCellTypeBlanks).EntireRow.Delete ' NomDeTaFeuille a modifier bien sure Application.ScreenUpdating = True End Sub
Tu dois sauver ton fichier en Marco Enble soit format .Xlsm et non .Xls*Citation:
quand j'essaie d’enregistrer la macro , j'ai le message suivant : " les fonctionnalités suivantes ne peuvent pas être enregistrer dans un classeur sans macro..."
j'ai réussi a sauvegarder avec les macros merci mais les lignes ne sont pas supprimer quand j'exécute la macro .....les cellules contenant la valeur 0 ne sont pas supprimé
Ta demande concernait les "cellules vides", une cellule contenant "0" n est pas vide.
Que contiennent tes cellules de tes lignes devant être supprimées ?
elles contiennent zéro"0".
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Sub test() Dim i As Integer Dim wb As Workbook: Set wb = ThisWorkbook Dim ws As Worksheet: Set ws = wb.Worksheets("Sheet1") Application.ScreenUpdating = False For i = 25 To 4 Step -1 If ws.Cells(i, 1).Value = "0" Then ws.Cells(i, 1).EntireRow.Delete Next i Application.ScreenUpdating = True Set wb = Nothing Set ws = Nothing End Sub
Bonjour merci pour votre aide mais j'ai remplacé sheet1 par le nom de la feuille ou je veux exécuté la macro mais rien ne ce passe quand la macro est exécuté .
le code suivant marche :
Code:
1
2
3
4
5
6
7 Sub Supprimerligne() Dim i% For i = 28 To 4 Step -1 If Cells(i, 3).Value = "0" Then Rows(i).EntireRow.Delete Next i End Sub
J ai testé le code et celui fonctionne.
Tu es bien sur d avoir bien renommé ta feuille dans la procédure ?
Essaie une exécution pas à pas de la Sub, voir ou cela bug.
Si tjrs nok, Envois ton fichier que je jette un œil à tes données, stp
Bat
En faite j'avais pas préciser la colonne il devais mettre Cells(i, 3) au lieu de Cells(i, 1) car mon traitement est dans la colonne c :) merci beaucoup pour votre aide .