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é.
A voir également:
- VBA: Effacer cellules ne correspondant pas à
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Dépassement de capacité vba ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
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
Juliette
Michel, c'est génial. Ca marche super ! Merci beaucoup vraiment.
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 ?
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
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