Sub DelSuppression_Click() 'Suppresion d'une activité Row = Selection.Row 'Recuperation de la ligne sur laquelle on se situe ID = Cells(Row, 1).Value 'On recupere et met dans une variable l'id situé en row(a) If ((Cells(Row, 1) <> Cells(Row - 1, 1)) Or (Cells(Row, 1) <> Cells(Row + 1, 1))) Then If (MsgBox("Etes-vous sure de vouloir supprimer les dépendances et l'activité situées a la ligne Excel#" & Row, vbOKCancel) = vbOK) Then ActiveSheet.Rows(Row).Delete 'Suppression de la ligne dans la feuille activité Sheets("Feuil2").Activate 'On active la feuille Dim J As Long 'Declaration de la variable J Dim Plage As Range 'Declaration de la variable utilisée pour stocker la plage Set Plage = Range("A1", Range("A10000").End(xlUp)) 'On initialise la variable avec la plage souhaitée For J = Plage.Cells.Count To 1 Step -1 'Boucle qui part de la fin en remontant If Plage.Cells(J).Value ID Then 'Si jamais la valeur de la cellule parcouru valeur ID Plage.Cells(J).EntireRow.Delete 'Alors on supprime la totalité de la ligne End If Next End If End If Sheets("Feuil1").Activate 'On active la feuille de depart End Sub
'le 3 dans cells cest que je travaille sur la troisieme ligne mais je crois cest pas bon
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionSub DelSuppression_Click() 'Suppresion d'une activité Row = Selection.Row 'Recuperation de la ligne sur laquelle on se situe ID = Cells(Row, 1).Value 'On recupere et met dans une variable l'id situé en row(a) 'If ((Cells(Row, 1) Cells(Row - 1, 1)) Or (Cells(Row, 1) Cells(Row + 1, 1))) Then If (MsgBox("Etes-vous sure de vouloir supprimer l'activité de la ligne #" & Row, vbOKCancel) = vbOK) Then ActiveSheet.Rows(Row).Delete 'Suppression de la ligne dans la feuille activité With Worksheets("R1- BC Strategy").Range("A1:A9999") 'Dans la feuille R1- BC Strategy sur la plage A1 a A999 (id) Set c = .Find(ID, LookIn:=xlValues) 'On recherche la valeur var(id) If Not c Is Nothing Then firstAddress = c.Address Do ActiveCell.EntireRow.Delete Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> firstAddress End If End With End If End Sub
ActiveCell.EntireRow.Delete
un EntireRow.Delete suffit simplement?
étant avec uniquement des ID unique dans ma colonne (valeur que je recherce)
ceci contredit ta boucle avec Find pour rechercher plusieurs occurences !
Sub DelSuppression_Click() 'Suppresion d'une activité Row = Selection.Row 'Recuperation de la ligne sur laquelle on se situe ID = Cells(Row, 1).Value 'On recupere et met dans une variable l'id situé en row(a) 'If ((Cells(Row, 1) Cells(Row - 1, 1)) Or (Cells(Row, 1) Cells(Row + 1, 1))) Then If (MsgBox("Etes-vous sure de vouloir supprimer l'activité de la ligne #" & Row, vbOKCancel) = vbOK) Then ActiveSheet.Rows(Row).Delete 'Suppression de la ligne dans la feuille activité Sheets("R1- BC Strategy").Activate With Worksheets("R1- BC Strategy").Range("A1:A9999") 'Dans la feuille R1- BC Strategy sur la plage A1 a A999 (id) Set c = .Find(ID, LookIn:=xlValues) 'On recherche la valeur var(id) If Not c Is Nothing Then firstAddress = c.Address Do ActiveCell.EntireRow.Delete 'Set c = .FindNext(c) ' Loop While Not c Is Nothing And c.Address <> firstAddress End If End With End If End Sub