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!!
Voici mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager