Recherche et suppression ligne dans une feuil

Fermé
kumpb Messages postés 70 Date d'inscription lundi 19 septembre 2005 Statut Membre Dernière intervention 1 novembre 2016 - 17 févr. 2009 à 11:10
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 - 17 févr. 2009 à 12:38
Bonjour,

Apres avoir mis dans une variable une chaîne de caractère ......

Dim Cible As String
Cible = "TextBoxSupNOM"

je voudrai rechercher dans une feuille excel la variable cible dans la colonne A et supprimer la ligne correspondante. Tout ceci en VBA.

voici ou j'en suis pour le moment :



Dim Cible As String 'définition d'une chaîne de texte
Cible = "TextBoxSupNOM"
Dim idxNom As Integer
Application.ScreenUpdating = False

Sheets("Personnel").Activate ' activation page de recherche
idxNom = 2 ' 1ère ligne de recherche

With Sheets("Personnel")
While .Range("A" & idxNom) <> cible 'test texte identique a chaîne recherchée
idxNom = idxNom + 1
Wend
MsgBox "trouvé"

Application.ScreenUpdating = True
End With


2tant novice en vba je compte sur vos conseils avisés

merci d'avance

1 réponse

Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 294
17 févr. 2009 à 12:38
bonjour,

il y a un risque avec la boucle while..wend
si l'iformation recherchée n'existe pas on boucle jusqu'à 65536 puis erreur...
je te propose de regarder ce qui suit



Sub test()


Dim Cible As String 'définition d'une chaîne de texte
Cible = "TextBoxSupNOM"
Dim idxNom As Integer
Dim résultat As String
Dim DernièreLigne As Integer
Dim C As Variant


Application.ScreenUpdating = False

Sheets("Feuil1").Activate ' activation page de recherche
idxNom = 2 ' 1ère ligne de recherche

With Sheets("Feuil1")
DernièreLigne = [A65536].End(xlUp).Offset(1, 0).Row

For Each C In Range("A2:A" & DernièreLigne)
If C.Value <> Cible Then
résultat = " pas trouvé"

Else
résultat = "trouvé"
idxNom = C.Row ' le numero de ligne ou je trouve l'info ça peut servir.
Exit For
End If


Next


MsgBox résultat


Application.ScreenUpdating = True
End With

End Sub


A+
0