Suppression lignes selon valeur cellule
Résolu/Fermé
Evedll
Messages postés
74
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
26 septembre 2023
-
Modifié le 22 oct. 2018 à 10:36
Evedll Messages postés 74 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 26 septembre 2023 - 22 oct. 2018 à 23:08
Evedll Messages postés 74 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 26 septembre 2023 - 22 oct. 2018 à 23:08
A voir également:
- Vba supprimer des lignes en fonction d'une valeur
- Supprimer une page word - Guide
- Fonction si et - Guide
- Supprimer compte instagram - Guide
- Supprimer pub youtube - Accueil - Streaming
- Partager photos en ligne - Guide
3 réponses
jordane45
Messages postés
38370
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 janvier 2025
4 722
22 oct. 2018 à 09:24
22 oct. 2018 à 09:24
Bonjour
Function FindAll(ByVal sText As String, ByRef oRange As Range, ByRef arMatches() As String) As Boolean ' -------------------------------------------------------------------------------------------------------------- ' FindAll - To find all instances of the1 given string and return the row numbers. ' If there are not any matches the function will return false ' -------------------------------------------------------------------------------------------------------------- On Error GoTo Err_Trap Dim rFnd As Range ' Range Object Dim iArr As Integer ' Counter for Array Dim rFirstAddress ' Address of the First Find ' ----------------- ' Clear the Array ' ----------------- Erase arMatches Set rFnd = oRange.Find(what:=sText, LookIn:=xlValues, lookAt:=xlPart) If Not rFnd Is Nothing Then rFirstAddress = rFnd.Address Do Until rFnd Is Nothing iArr = iArr + 1 ReDim Preserve arMatches(iArr) arMatches(iArr) = rFnd.Row 'rFnd.Address pour adresse complete ' rFnd.Row Pour N° de ligne Set rFnd = oRange.FindNext(rFnd) If rFnd.Address = rFirstAddress Then Exit Do ' Do not allow wrapped search Loop FindAll = True Else ' ---------------------- ' No Value is Found ' ---------------------- FindAll = False End If ' ----------------------- ' Error Handling ' ----------------------- Err_Trap: If Err <> 0 Then MsgBox Err.Number & " " & Err.Description, vbInformation, "Find All" Err.Clear FindAll = False Exit Function End If End Function Sub deleteByValue() Dim arMatches() As String Dim valcherch As String Dim Sh As Worksheet Dim rng As Range Set Sh = ThisWorkbook.Sheets("Feuil1") Set rng = Sh.Range("A1:A100") valcherch = "Noé v2017" bFound = FindAll(valcherch, rng, arMatches()) If bFound = True Then nbElemTrouve = UBound(arMatches) For i = 1 To nbElemTrouve Debug.Print (arMatches(i)) 'ici tu peux mettre le code de suppression '... Next End If End Sub
22 oct. 2018 à 10:35
Je viens de voir que le miens pourrait te causer des difficultés....
En effet, il faudra faire la boucle en partant de la fin (comme dans l'exemple de ThauTheme ) cas sinon les Numéros de lignes ne seront plus les bons au fur et à mesure que tu les supprimera )
22 oct. 2018 à 18:27
Oui j'ai essayé ce matin avec un peu de mal. Je vais donc voir celui de ThauTheme.
Cependant, je te remercie beaucoup de m'aider car je n'ai jamais appris et c'est difficile seule mais je progresse avec l'aide de vous tous.
Cordialement
Evelyne
22 oct. 2018 à 20:15