VBA: Effacer cellules ne correspondant pas à
Résolu
Juliette
-
Juliette -
Juliette -
Bonjour à tous et bon début de semaine,
je cherche depuis un certain moment un moyen d'effacer toutes les lignes dont la cellule de la colonne "D" ne contient pas la valeur d'un textbox. Les cellules de la colonne D contiennent un nom précédé d'un code client. (exemple : "123456 Jean"). Si la valeur de mon textbox est 123456 comment effacer toutes les lignes ne contenant pas 123456 ?
Merci d'avance pour votre aide qui m'a déjà été fort précieuse par le passé.
je cherche depuis un certain moment un moyen d'effacer toutes les lignes dont la cellule de la colonne "D" ne contient pas la valeur d'un textbox. Les cellules de la colonne D contiennent un nom précédé d'un code client. (exemple : "123456 Jean"). Si la valeur de mon textbox est 123456 comment effacer toutes les lignes ne contenant pas 123456 ?
Merci d'avance pour votre aide qui m'a déjà été fort précieuse par le passé.
3 réponses
-
en supprimant les lignes fautives d'un seul coup
Const lig_dep As Byte = 2 'ta ligne de départ Const col_dep As Byte = 4 'ta colonne de recherche (ici D) Sub supprimer_intrus() Dim numero As String * 9 Dim derlig As Integer, cptr As Integer Dim ligs_del As String numero = CStr(123456789) ' 123456789 a remplacer par ton textbox derlig = Cells(10000, col_dep).End(xlUp).Row For cptr = lig_dep To derlig If Left(Cells(cptr, col_dep), 9) <> numero Then ligs_del = ligs_del & cptr & ":" & cptr & "," End If Next If ligs_del <> "" Then Application.ScreenUpdating = False ligs_del = Left(ligs_del, Len(ligs_del) - 1) Range(ligs_del).Delete End If End Sub
-
Bonjour
as tu toujours 6 chiffres et un espace entre le code et le nom ( je suppose aussi que les codes varient ?)
Combien de lignes à traiter ? -
Bonjour,
Faire une boucle sur la colonne D du début des données à la fin des données
' 1- en colonne D il peut y avoir des cellules vides
' les cellules vides seront supprimées
Sub Macro5()
Dim Debut_Donnees As Integer
Dim Fin_Donnees As Integer
Debut_Donnees = 3 ' mettre la bonne valeur
Fin_Donnees = Range(Cells(65536, 4), Cells(65536, 4)).End(xlUp).Row
For X = Debut_Donnees To Fin_Donnees
If Left(Cells(X, 4), Len(TextBoX.text)) <> TextBoX.text) Then
Cells(X, 4).EntireRow.Delete
X = X - 1
Fin_Donnees = Fin_Donnees - 1
End If
Next X
End Sub
Bonne programmation