Suprimer lignes vides avec VBA Excel 2003
Bonjour à vous!
Je vous explique ce que je désire faire:
1. Couper les lignes de la feuil1 pour lesquelles il y a la valeur "1" dans la colonne D et les copier dans la feuil2.
2. Protéger la feuil2 avec un mot de passe pour éviter toutes modifications.
3. Supprimer les lignes vides de la feuil1 (pour l'instant j'ai fait une formule pour mettre une donné dans la colonne F si la ligne n'est pas vide).
Mon problème: Je n'arrive pas à faire supprimer toutes les lignes vides dans la feuil1. Ça fait déja quelques années que je n'ai pas joué dans VBA... pourriez-vous SVP m'aider?
Merci à l'avance!! :D
Voici mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| Sub Copierlignes()
Dim Lig As Long
Dim Col As String
Dim NbrLig As Long
Dim NumLig As Long
Dim Rw As Range
Sheets("Feuil2").Activate ' feuille de destination
ActiveSheet.Unprotect ("motdepasse")
Col = "D" ' colonne de la donnée non vide à tester
NumLig = 0
With Sheets("Feuil1") ' feuille source
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = 1 To NbrLig
If .Cells(Lig, Col).Value = "1" Then
.Cells(Lig, Col).EntireRow.Cut
NumLig = NumLig + 1
Cells(NumLig, 1).Select
Rows(ActiveSheet.UsedRange.Rows.Count + 1).Select
ActiveSheet.Paste
End If
Next
End With
ActiveSheet.Protect "motdepasse", DrawingObjects:=True, Contents:=True, Scenarios:=True
Sheets("Feuil1").Activate
Range("A1:Z65536").Select
For Each Rw In Selection.Rows
If Rw.Cells(1, 6).Value = "" Then ' S'il n'y a pas de valeur dans la colonne F
Rw.EntireRow.Delete
End If
Next Rw
End Sub |