VBA recherche texte dans plage et supprimer ligne

aroute

XLDnaute Nouveau
Bonjour a tous,

debutant le VBA je me retrouve en diffulté, j'explique mon bloquage:
(je desirerais une fois cliqué sur le bouton en Feuil1)
-ecrire un texte dans TextBox1_Change
-une fois cliqué sur ok que la macro supprime toutes les lignes de la page "pièce" NE CONTENANT PAS CE MOT de ma TextBox1_Change


Merci pour votre aide
 

Pièces jointes

  • integration_macro_new.xlsm
    21.1 KB · Affichages: 28

aroute

XLDnaute Nouveau
Bonsoir cathodique,

Autant pour moi, ca serait dans la feuille "pièces" et la contenance du mot serait dans la colonne B

Je peux te donner un exemple,

je souhaiterais supprimer toutes les lignes de la feuille "pièces"qui n'ont pas le mot mercredi dans la dans colonne B

merci pour ton aide
 

cathodique

XLDnaute Barbatruc
Bonjour,

sans fichier pas tester, à toi de le faire.
VB:
 Sub Supprimer_mercredi()
Dim i As Integer
With ThisWorkbook.Sheets("pièces")
'Précisez le nom de votre feuille
            For i = .Range("B" & .Rows.Count).End(xlUp).Row To 2 Step -1
'Rows.count permet de retourner le nombre de ligne de la plage range
                        If ucase(.Range("B" & i).Value) = ucase("mercredi") Then
'Ucase transforme mercredi en majuscule au cas où il serait écrit de différentes façon
                                   .Rows(i).Delete
                        End If
            Next i
End With
End Sub
 

aroute

XLDnaute Nouveau
Merci pour ta réponse,

j'avais mis un fichier joint dans mon 1er message mais contenant une macro peut etre que le site la refusée.

ci-dessous ce que j'aimerais qu'effectue la macro:

si j'indique à la macro le mot "mercredi" celle-ci devrait me laisser que les lignes contenant le mot "mercredi" dans la colonne B.

merci pour ton aide et ta reactivité.
 
Dernière édition:

DoubleZero

XLDnaute Barbatruc
Bonjour à toutes et à tous,

Comme ceci ?
Code:
Option Explicit
Option Compare Text
Sub Jour_supprimer()
    Dim c As Range, i As Long, jour As String
    Application.ScreenUpdating = 0
    On Error Resume Next
    jour = InputBox("Saisir le jour de semaine à supprimer.")
    If jour = "" Then Exit Sub
    With Sheets("Pièces")
        For i = .Cells(Rows.Count, "b").End(xlUp).Row To 1 Step -1
            If Not .Range("b" & i) Like "*" & jour & "*" Then .Rows(i).Delete
        Next
    End With
    Application.ScreenUpdating = -1
End Sub
A bientôt :)
 

aroute

XLDnaute Nouveau
Bonjour Double zero,

dans l'idée c'est exactement ca mais j'aimerais au lieu de supprimer qu'il me conserve toutes les lignes de mon inputbox qu'il supprime ce qui ne contient pas dans mon inputbox
= InputBox("Saisir le jour de semaine à supprimer.") a remplacer par :
= InputBox("Saisir le jour de semaine à CONSERVER.")

en esperant avoir été claire
merci pour ton aide
 
Dernière édition:

DoubleZero

XLDnaute Barbatruc
Re-bonjour,
... en esperant avoir été claire...
En espérant avoir c:oops:mpris...
Code:
Option Explicit
Option Compare Text
Sub Jour_supprimer()
    Dim c As Range, i As Long, jour As String
    Application.ScreenUpdating = 0
    On Error Resume Next
    jour = InputBox("Saisir le jour de semaine à conserver.")
    If jour = "" Then Exit Sub
    With Sheets("Pièces")
        For i = .Cells(Rows.Count, "b").End(xlUp).Row To 1 Step -1
            If Not .Range("b" & i) Like "*" & jour & "*" Then .Rows(i).Delete
        Next
    End With
    Application.ScreenUpdating = -1
End Sub
A bientôt :)
 

aroute

XLDnaute Nouveau
Re-bonjour,

En espérant avoir c:oops:mpris...
Code:
Option Explicit
Option Compare Text
Sub Jour_supprimer()
    Dim c As Range, i As Long, jour As String
    Application.ScreenUpdating = 0
    On Error Resume Next
    jour = InputBox("Saisir le jour de semaine à conserver.")
    If jour = "" Then Exit Sub
    With Sheets("Pièces")
        For i = .Cells(Rows.Count, "b").End(xlUp).Row To 1 Step -1
            If Not .Range("b" & i) Like "*" & jour & "*" Then .Rows(i).Delete
        Next
    End With
    Application.ScreenUpdating = -1
End Sub
A bientôt :)



BRAVO! c'est exactement ca

par contre dans mon fichier mes journées sont en MAJUSCULE du coup ca fonction que si elles sont en minuscule sinon ca me supprimer tout
peux tu me parametrer ta macro ainsi que ca fonctionne sur les journée écrites majuscules

merciiii
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 195
Messages
2 086 077
Membres
103 111
dernier inscrit
Eric68350