Commande VBA supprimer

Bonsoir à toutes et tous,

Dans le cadre d'un listing de personnel, je recherche une commande VBA capable de sélectionner le nom (cellule 1), prénom(cellule 2) et fonction (cellule 3) dans une première feuille puis :

1/Aller dans une seconde feuille où se trouve le listing du personnel;

2/Retrouver la ligne et les différentes cellules correspondant aux données prises de la première feuille;

3/Sélectionner l'ensemble de cellules puis les supprimer.

J'avais réussi une première commande pour ajouter du personnel mais je n'y parviens pas pour supprimer.

Une personne du forum m'avait transmis le code ci-dessous qui fonctionne bien mais qui a la problématique de supprimer dans la 3ème colonne toutes les données identiques (logique) correspondant aux données prises dans la 1ère feuille. Je laisse en pj mon fichier afin que cela soit plus explicite que mes explications. Je vous remercie par avance,

Cordialement,

Mikaur89400.

PS:

Sub supprimer()
Set Ws = Sheets("Personnel")
With Sheets("Personnel")
For Each c In Ws.Range("A1", Ws.[A65000].End(xlUp))
If c.Value = Sheets("Gestion personnel").Range("E20").Value Then
c.Value = ""
End If

Next
End With
Sheets("Gestion personnel").Activate

End Sub

Bonsoir Mikaur, bonsoir le forum,

Essaie comme ça :

Sub supprimer()              'Selectionne la cellule dans "gestion", trouve la m valeur et efface
Dim OG As Worksheet 'déclare la variable OG (Onglet Gestion personnel)
Dim OP As Worksheet 'déclare la variable OP (Onglet Personnel)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)

Set OG = Sheets("Gestion personnel") 'définit l'onglet OG
Set OP = Sheets("Personnel") 'définit l'onglet OP
TV = OP.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV
    'si la donnée en colonne 1 est égale à D8, colonne 2 est égale à D10 et colonne 3 est égale à D12
    If TV(I, 1) = OG.Range("D8").Value And TV(I, 2) = OG.Range("D10").Value And TV(I, 3) = OG.Range("D12").Value Then
        OP.Activate 'active l'onglet OP
        OP.Rows(I).Delete 'sipprime la ligne I de l'onglet OP
        Exit For 'sort de la boucle
    End If 'fin de la condition
Next I 'prochaine ligne de la boucle
End Sub

Mais perso, je serais passé par une UserForm avec des ComboBoxes... Pour éviter les erreur (minuscule/Majuscule, espace en plus, etc.).

[Édition]

Un exemple adapté à ton fichier avec tableau structuré et UserForm (code commenté) :

8mikaur-ep-v01.xlsm (37.77 Ko)


Bonjour ThauThème,

C'est parfait. Je te remercie , c'est encore mieux avec UserForm. Un grand merci!

Bien à vous,

Cordialement,

Mikaur89400.

Rechercher des sujets similaires à "commande vba supprimer"