VBA code effacer ligne entiere si

Bonjour a tous, je sens que je vais avoir besoin de la communauté ces prochains jours

Je veux supprimer toutes les lignes où dans la colonne K, la case est vide ou contient le mot Montant

tout ça dans une feuille qui s'appelle Sheet1 (2)

de la ligne 1 a 300. et faire un shift up des lignes.

J ai commence ça mais ça ne marche pas , le delete semble ok mais pas le conditonnel montant .

Sub deleteUSDRows()

On Error Resume Next

Worksheets("’Sheet1 (2)’").Columns("K").SpecialCells(xlCellTypeBlanks).EntireRow.Delete

Worksheets("’Sheet1 (2)’").Columns("K").If .Value = "Montant" Then .EntireRow.Delete

End Sub

Merci a pour votre temps

Remy

Bonsoir,

un truc dans ce genre là non ?

Sub deleteUSDRows()
    Const Mot = "Montant"
    Dim Debut As Integer, Fin As Integer, i As Integer

    Debut = 1
    Fin = 10

    For i = Fin To Debut Step -1
        If Range("K" & i).Value2 = Mot Or Range("K" & i).Value2 = "" Then
            Rows(i).Delete
        End If
    Next i
End Sub

Cordialement.

merci mais ca ne semble pas fonctionner. ca ne m a effacer visiblement qu une ligne.

De plus, comment specifier que je ne souhaite que cette ope ne se fasse que sur la Sheet1 (2) et pas sur toutes les feuilles de mon fichier ?

merci

Parce que j'ai mis la variable fin à 10

voici la modif

Sub deleteUSDRows()
    Const Mot = "Montant"
    Dim Debut As Integer, Fin As Integer, i As Integer
    Dim Feuille As String

    Debut = 1 'ligne du debut
    Fin = 300 'ligne de fin
    Feuille = "Sheet1(2)" 'la feuille ou les lignes seront supprimées

    For i = Fin To Debut Step -1
        If Sheets(Feuille).Range("K" & i).Value2 = Mot Or Sheets(Feuille).Range("K" & i).Value2 = "" Then
            Sheets(Feuille).Rows(i).Delete
        End If
    Next i
End Sub

Cordialement

merci mais la ligne suivante sort en erreur /

If Sheets(Feuille).Range("K" & i).Value2 = Mot Or Sheets(Feuille).Range("K" & i).Value2 = "" Then

Bonsoir yeahremy, bigdaddy154, le forum,

Une variante...

Sub Supprimerligne()
 Dim i As Long

Application.ScreenUpdating = False

 With Sheets("Sheet1(2)")
  For i = 300 To 1 Step -1
   If .Cells(i, 11).Value = "Montant" Or .Cells(i, 11).Value = "" Then Rows(i).EntireRow.Delete
  Next i
 End With

 Application.ScreenUpdating = True
End Sub

Cordialement,

Vérifie que le nom que j'ai donnée à Feuille ici Sheet1(2) soit bien écris qu'il manque pas en espace ou une connerie du genre.

Cordialement.

merci on se rapproche car ca a effacé les lignes vides mais les cellules qui contiennent le mot montant sont toujours la .

Pour etre plus precis si jamais ca aide... les cellules que je cherche a supprimer contiennent "Montant en NOK" "Montant en USD" etc...

ps/ oui il y a une espace dans Sheet1 (2)

Ah bah oui mais si tu nous dis pas tout aussi

Sub deleteUSDRows()
    Const Mot = "montant"
    Dim Debut As Integer, Fin As Integer, i As Integer
    Dim Feuille As String

    Debut = 1
    Fin = 300
    Feuille = "Feuil1"

    For i = Fin To Debut Step -1
        If InStr(1, LCase(Sheets(Feuille).Range("K" & i).Value2), Mot) <> 0 Or Sheets(Feuille).Range("K" & i).Value2 = "" Then
            Sheets(Feuille).Rows(i).Delete
        End If
    Next i
End Sub

Ps: coucou xorsankukai

Cordialement.

Belle tentative mais pb d execution

If InStr(1, LCase(Sheets(Feuille).Range("K" & i).Value2), Mot) <> 0 Or Sheets(Feuille).Range("K" & i).Value2 = "" Then

Re,

les cellules que je cherche a supprimer contiennent "Montant en NOK" "Montant en USD" etc...

Option Compare Text

Sub Supprimerligne()
 Dim i As Long

Application.ScreenUpdating = False

 With Sheets("Sheet1 (2)")
  For i = 300 To 1 Step -1
   If .Cells(i, 11).Value Like "Montant*" Or .Cells(i, 11).Value = "" Then Rows(i).EntireRow.Delete
  Next i
 End With

 Application.ScreenUpdating = True
End Sub

CTRL + e pour exécuter la macro...

8classeur1.xlsm (17.55 Ko)

Cordialement,

Bizarre tu peux envoyer ton fichier du moins que la colonne K si y a des infos confidentielles que je regarde stp.

Cordialement.

Rechercher des sujets similaires à "vba code effacer ligne entiere"