Suppression lignes

bonjour le forum,

bonjour à tous,

je n'arrive pas à trouver la solution au problème suivant :

code

Private Sub B_Click()

Set d = CreateObject("Scripting.Dictionary")

nM = Worksheets("Donnees").Cells(Worksheets("Donnees").Rows.Count, 16).End(xlUp).Row

For i = 3 To nM

d(Worksheets("Donnees").Cells(i, 16).Value) = i

Next i

nD = Worksheets("Donnees").Cells(Worksheets("Donnees").Rows.Count, 1).End(xlUp).Row

For i = 3 To nD

If d.exists(Worksheets("Donnees").Cells(i, 1).Value) Then d.Remove (Worksheets("Donnees").Cells(i, 1).Value)

Next i

With Worksheets("Donnees")

For Each k In d.keys

lgn = d(k)

For col = 11 To 16

.Cells(lgn, col).Delete Shift:=xlUp

Next

Next k

End With

End Sub

lorsque je fais for i = nM to 3 et for i = nD to 3 afin qu'il supprime de bas en haut lorsqu'il y a plusieurs lignes à supprimer, ça ne fonctionne plus.

pour la compréhension, j'importe les données des colonnes A à J et j'aimerais que quand un (ou plusieurs) code(s) en colonne A n'est plus représenté en colonne P alors la (ou les) ligne(s) correspondante(s) en colonnes K à O soient également supprimées,

c'est l'objet du code.

merci d'avance pour votre aide.

Pedro.

6test.xlsm (743.50 Ko)

Salut dudesson,

quelque chose comme ça ?

Private Sub B_Click()
'
On Error Resume Next
Application.ScreenUpdating = False
'
For x = Range("P" & Rows.Count).End(xlUp).Row To 2 Step -1
    If Range("A:A").Find(what:=Range("P" & x).Value, lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlNext) Is Nothing Then _
        Range("K" & x & ":P" & x).Delete shift:=xlUp
Next
Application.ScreenUpdating = True
On Error GoTo 0
'
End Sub

 8-) 
 A+
7test.xlsm (674.04 Ko)

bonjour le forum,

bonjour @curulis57, très bonne approche!!! ça m'a donné des idées.

je crois que mon problème actuellement, c'est la façon dont j’aborde les problèmes et le fait de rester figer sur ma première solution, sans doute manque d'expérience...

merci beaucoup.

bien à vous.

Pedro.

Rechercher des sujets similaires à "suppression lignes"