Rechercher et supprimer

Bonjour et merci de bien vouloir m'accueillir sur ce forum.

J'ai créé un document avec un formulaire de saisie qui fonctionne très bien pour la saisie, l'enregistrement et la mise à jour des données.

Je souhaite passer à une phase suivant c'est à dire pouvoir rechercher une donnée saisie dans userForm "Formular" dans la fenêtre "TXT Produits"

donc rechercher la valeur renvoyé et supprimer la ligne dans laquelle se trouve la valeur.

J'ai donc fait le petit bout de code suivant.

Private Sub BTNRechercher_Click()
Dim Myrange As Range
Dim résultat As Variant
Sheets("Liste de courses").Activate
Set Myrange = Range("b2:d999999")
résultat = Application.WorksheetFunction.VLookup(Formular.TXTProduits, Myrange, 1, False)
If résultat <> Formular.TXTProduits Or résultat = vide Then
MsgBox "La valeur n'a pas été trouvée"
Else
For Each Myrange In Range("b2:d999999")
If Myrange.Value = Formular.TXTProduits Then
Myrange.EntireRow.Delete
End If
Next Myrange
End If
End Sub

et j'obtiens le message ci dessous , ou il me renvoi le message " "La valeur n'a pas été trouvée" même si la valeur est dans la plage de cellules.

que je fasse varier False ou true dans "résultat = Application.WorksheetFunction.VLookup(Formular.TXTProduits, Myrange, 1, False)", rien ne change

image

Quelqu'un peut il me dire se qui ne colle pas dans ma formulation.

Par avance merci à la bonne âme !

J'ai oublié de préciser, il fonctionne de temps en temps ?????

Bonsoir,

Essayez ce code svp

Private Sub BTNRechercher_Click()

Dim Myrange As Range
Dim résultat As Range
Set Myrange = Sheets("Liste de courses").Range("B2:D999999")
Set résultat = Myrange.Find(Formular.TXTProduits.Value, LookIn:=xlValues, LookAt:=xlWhole)

If Not résultat Is Nothing Then
résultat.EntireRow.Delete
Else

MsgBox "La valeur n'a pas été trouvée"

End If
End Sub

Si ce code fonctionne correctement, c'est bon. Sinon, pourriez-vous partager un fichier d'exemple et expliquer davantage le problème ?

Merci ,

Le code marche a merveille , il est bien plus réduit que le mien , je vais maintenant étudier tous les thermes de la formule car Jaime bien comprendre.

Un grand merci a vous et bon weekend.

Je vais clore le sujet.

Je suis désolé de revenir sur le sujet mais bien que l'aide que j'ai reçu soit satisfaisante du point de vue du problème que j'avais posé, je rencontre le problème suivant .

La solution proposé s'arrête à la première valeur trouvé mais celle ci n'est pas forcément la bonne , il me faudrait donc surement faire une boucle afin de continuer la recherche dans la feuille de données.

je ne vois pas comment réaliser cette boucle.

Merci de votre aide

En fait se que je souhaite, c'est poursuivre la recherche à chaque fois que je clique sur rechercher.

Help SVP

Bonjour,
désolée pour ma réponse tardive

merci de vérifier ce code ci-dessous svp et modifier "Feuil1" par votre feuille (modifier juste le numéro)

Private Sub BTNRechercher_Click()

Dim résultat As String
Dim Myrange As Long
Dim i As Long
Dim trouvé As Boolean

résultat = TXTProduits.Value
trouvé = False
Myrange = Feuil1.Cells(Rows.Count, "B").End(xlUp).Row

For i = Myrange To 2 Step -1

If Feuil1.Cells(i, "B").Value = résultat Then

Feuil1.Rows(i).Delete
trouvé = True
End If
Next i

If Not trouvé Then
MsgBox "La valeur saisie n'est pas trouvée.", vbExclamation
Else

MsgBox "L'opération de suppression a été effectuée avec succès.", vbExclamation

End If

End Sub

Bonjour et merci une nouvelle fois pour la réponse.

J'ai donc mis le code en modifiant la valeur feuil1 par feuil34

cela me renvoi sans arrêt le message "La valeur saisie n'est pas trouvée."

il n'y a pas de sélection de cellule ou de ligne .

Le code précédent marchait très bien , peut être faut il juste reboucler pour trouver le valeurs suivantes .

qu'en pensez vous ?

En fait se que je souhaite , c'est de pouvoir poursuivre la recherche après la première valeur trouvé.

Par avance Merci

Rechercher des sujets similaires à "rechercher supprimer"