Supprimer une ligne sous condition
Résolu
Manshiz
Messages postés
184
Date d'inscription
Statut
Membre
Dernière intervention
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
je sais que la question à déjà été posée des dixaines de fois; j'ai fait des tests avec les solutions proposées sur le site, mais je n'arrive à aucun résultat.
Voici ce que j'ai pour l'instant:
La procédure supprime la dernière ligne.
Dim derligne As String
derligne = Range("a65536").End(xlUp).Row
If Cells(derligne + 1, 1).Value = "" Then
Cells(derligne, 1).EntireRow.Delete
End If
Comment utilisé cette même procédure en disant que:
Si Cells.Value est égale au nom ou prénom recherché
activé la cellule et supprimer la ligne.
Dans le cas ou ça peux aider:
Sheets("Liste") - Nb colonnes 9.
TextBox's = Rechercher.Value - Nom.Value - Prénom.Value
je sais que la question à déjà été posée des dixaines de fois; j'ai fait des tests avec les solutions proposées sur le site, mais je n'arrive à aucun résultat.
Voici ce que j'ai pour l'instant:
La procédure supprime la dernière ligne.
Dim derligne As String
derligne = Range("a65536").End(xlUp).Row
If Cells(derligne + 1, 1).Value = "" Then
Cells(derligne, 1).EntireRow.Delete
End If
Comment utilisé cette même procédure en disant que:
Si Cells.Value est égale au nom ou prénom recherché
activé la cellule et supprimer la ligne.
Dans le cas ou ça peux aider:
Sheets("Liste") - Nb colonnes 9.
TextBox's = Rechercher.Value - Nom.Value - Prénom.Value
A voir également:
- Supprimer une ligne sous condition
- Supprimer rond bleu whatsapp - Guide
- Supprimer une page word - Guide
- Partager photos en ligne - Guide
- Excel cellule couleur si condition texte - Guide
- Comment supprimer une application préinstallée sur android - Guide
1 réponse
SAlut,
En fait, la première démarche est de donner à Visual Basic le nom (et/ou le prénom) dont tu souhaites supprimer la ligne.
Un exemple avec une InputBox :
Ensuite, rechercher dans la base de données le n° de ligne correspondant :
Ne reste qu'à supprimer cette ligne :
Soit le code complet :
Attention, comme on utilise Delete, il convient de tester d'abord cette procédure sur une copie du fichier et non sur l'original!!!!!
En fait, la première démarche est de donner à Visual Basic le nom (et/ou le prénom) dont tu souhaites supprimer la ligne.
Un exemple avec une InputBox :
Dim result As String result = InputBox("Veuillez saisir le nom et/ou le prénom à supprimer :")
Ensuite, rechercher dans la base de données le n° de ligne correspondant :
Dim Trouve As Range Dim i As Integer Set Trouve = Sheets("Liste").Columns(1).Cells.Find(result) If Trouve Is Nothing Then MsgBox "Ce nom n'existe pas dans la base, veuillez le vérifier" Else i = Sheets("Liste").Columns(1).Cells.Find(result).Row End If Set Trouve = Nothing
Ne reste qu'à supprimer cette ligne :
Cells(i, 1).EntireRow.Delete
Soit le code complet :
Sub suppression_lignes() Dim result As String Dim Trouve As Range Dim i As Integer result = InputBox("Veuillez saisir le nom et/ou le prénom à supprimer :") 'indiquer à la place du 1 le n° de la colonne ou se trouvent les données à trouver... Set Trouve = Sheets("Liste").Columns(1).Cells.Find(result) If Trouve Is Nothing Then MsgBox "Ce nom n'existe pas dans la base, veuillez le vérifier" Else i = Sheets("Liste").Columns(1).Cells.Find(result).Row Cells(i, 1).EntireRow.Delete End If Set Trouve = Nothing End Sub
Attention, comme on utilise Delete, il convient de tester d'abord cette procédure sur une copie du fichier et non sur l'original!!!!!
Désolé pour le retard.
Le code est efficace, mais comme j'ai déjà une textbox pour rechercher,
tu voudrais bien refaire le code sans l'imputbox?
Bien sur : en gras, à remplacer par le nom de ta textbox
Tu peux encore mieux faire en remplaçant cette TextBox par une combobox qui listerait les noms contenus dans ta colonne. Ca limite les erreurs de saisie...
Merci d'avoir répondu.
Et encore merci pour ton aide.
Juste une petite correction: Cells.Find(result) remplacer par Cells.Find(Trouve).
J'aurais encore une question.
J'ai une listbox qui liste les adresses emails dans un autre formulaire.
Est-il possible que, suite à la recherche elle ne prenne pas en cosidération la personne (adresse email) recherchée?
A+
A+