VBA - Suppression de cellules ciblées

Bonjour,

Dans le fichier ci-joint, lorsque je lance la macro "Supprimer", celle-ci fonctionne bien, sauf pour les dernières cellules d'une colonne/catégorie.

Vous pouvez faire le test en cliquant sur le bouton "supprimer", en choisissant la race "caucasse" puis "princesse". En validant, on s'aperçoit que toutes les colonnes suivantes de la même ligne sont décalées d'une colonne vers la gauche...Ca n'arrive que pour les chiens en dernière ligne d'une colonne. Une idée ?

PS: Amusez vous à en ajouter et supprimer

Voici le code ainsi que ce qui se passe lorsque je supprime princesse, pacha et autres colonnes de la même ligne sont décalées vers la gauche:

Private Sub Supprimer_Click()

    If Len(Me.ListeRaces) = 0 Then
        Message = "Indiquez la Race du Chien"
        Me.ListeRaces.SetFocus
    ElseIf Len(Me.Nom) = 0 Then
        Message = "Indiquez le Nom du Chien à Supprimer"
        Me.Nom.SetFocus

    Else

    'supp cellules d'Individus
            Sheets("Individus").Select
            Cells.Find(Me.Nom, LookAt:=xlWhole).Select
            Range(ActiveCell, ActiveCell.Offset(, 1)).Delete

    'supp la ligne du recap
            Sheets("Recap").Select
            Cells.Find(Me.Nom, LookAt:=xlWhole).EntireRow.Delete

    'Retour à la page Individu
            Sheets("Individus").Select

    End If

End Sub
supp princesse
6fichier-aide.xlsm (63.27 Ko)

Bonsoir,

essayez ceci :

Private Sub Supprimer_Click()

If Len(Me.ListeRaces) = 0 Then
    Message = "Indiquez la Race du Chien"
    Me.ListeRaces.SetFocus
ElseIf Len(Me.Nom) = 0 Then
    Message = "Indiquez le Nom du Chien à Supprimer"
    Me.Nom.SetFocus

Else

'supp cellules d'Individus
        Sheets("Individus").Select
        Cells.Find(Me.Nom, LookAt:=xlWhole).Select
        Range(ActiveCell, ActiveCell.Offset(, 1)).Delete Shift:=xlUp

'supp la ligne du recap
        Sheets("Recap").Select
        Cells.Find(Me.Nom, LookAt:=xlWhole).EntireRow.Delete

'Retour à la page Individu
        Sheets("Individus").Select

End If

End Sub

Par défaut si l'on supprime pas une ligne entière, Excel décale les cellules vers la gauche, pour s'en convaincre il suffit de sélectionner une cellule, clic droit, supprimer, et là une fenêtre s'ouvre avec des radio-boutons dont celui de décaler vers la gauche sélectionné.

Il a donc juste fallu ajouter l'instruction pour dire à VBA de décaler les cellules vers le haut "Shift:=xlUp"

@ bientôt

LouReeD

Bonsoir,

Merci LouReeD pour ton aide !

Ca marche correctement

Rechercher des sujets similaires à "vba suppression ciblees"