Erreur d'objet avec la fonction .Union

Salut Salut!

Voila mon code qui doit supprimer supprimer des lignes avec un pas constant. Il rassemble dans un Range (plagetot) l'ensemble des lignes concernées en partant du bas puis il les sup.

Sauf qu'il m'indique une erreur d'objet que je ne trouve pas :/

Sub supp_N_sur_N_plus_un()

Dim i, last, pas

Dim plage, plagetot As Range

pas = InputBox("choisir le pas ", "", 1)

last = [C65000].End(xlUp).Row

For i = last To 2 Step -1

plage = Rows((i - 1) & ":" & (i - pas))

If plagetot Is Nothing Then

Set plagetot = plage

Else

plagetot = Application.Union(plagetot, plage)

End If

Next

plagetot.EntireRow.Delete

End Sub

Merci pour vos aides !

Salut matotto,

inutile de s'étendre sur le code : ça ne peut pas fonctionner!

Fournis-nous plutôt un fichier représentatif et des explications claires et complètes : ça ira plus vite que de se lancer dans des explications kilométriques!

A+

Bonjour,

La variable "plage" est parfaitement inutile et en plus mal définie. Elle est définie en tant que Variant (défaut) et non en tant que Range.

Pour une bonne visibilité, le code doit être indenté et posté avec la balise "</>"

Sub supp_N_sur_N_plus_un()

    Dim i As Long, last As Long, pas As Integer
    Dim plagetot As Range

    pas = InputBox("choisir le pas ", "", 1)
    last = [C65000].End(xlUp).Row

    For i = last To 1 Step -pas
        If plagetot Is Nothing Then
            Set plagetot = Rows(i)
        Else
            Set plagetot = Application.Union(plagetot, Rows(i))
        End If
    Next

    If Not plagetot Is Nothing Then plagetot.Delete
End Sub

Bonjour,

Désolé pour les erreurs grossières je suis vraiment débutant.

Le code proposé marche super merci beaucoup !!

Rechercher des sujets similaires à "erreur objet fonction union"