Supprimer une ligne en VBA

Résolu
Bonjour,

j'ai un bout de programme qui efface une ligne dont la deuxième colonne est nulle

Dim k As Long
Dim n As Long

For k = 0 To nbdefos - 1
If (Cells(k + 4, 2) > -3) Or (Cells(k + 4, 2) < -11.4) Then
Rows(k + 4).Select
Selection.ClearContents
n = n + 1
End If
Next

je voudrai plutôt supprimer la ligne, j'ai essayé:
q=k+4
Rows("q:q").Select
Selection.Delete Shift:=xlUp

ça ne fonctionne pas quand j'utilise une variable quelle que soit le type
avez -vous une idée du problème svp?

merci beaucoup
Configuration: Windows Vista
Firefox 2.0.0.14

5 réponses

  1. Contributeur
    Bonsoir,

    Donne le n° de ligne à rows() :

    For k = 0 To nbdefos - 1
    If (Cells(k + 4, 2) > -3) Or (Cells(k + 4, 2) < -11.4) Then
    Rows(k + 4).Delete Shift:=xlUp
    n = n + 1
    End If
    Next k

    Ca ne supprime la ligne dont la 2nde colonne est vide mais celle qui répond aux critères >-3 et <-11.4...
    eric
    0
    1. Contributeur
      Bonsoir elise,

      Au lieu de:
      q=k+4
      Rows("q:q").Select
      Selection.Delete Shift:=xlUp

      essaies
      q=k+4
      Rows(q).delete

      Cordialement,

      Michel
      0
      1. bonsoir

        j'ai trouvé pourquoi la fonction supprimer ne fonctionne pas, c'est parce qu'elle travaille dans un autre fichier que celle que je veux
        mais ce que je ne comprend pas c'est pourquoi la fonction selection.clearcontents fonctionne dans le bon fichier et pas la fonction supprimer
        vous auriez une idée?
        0
        1. Contributeur
          Re,

          Bonsoir Eric, excuses moi, je n'avais pas rafraichi!

          Elise

          rows("q:q") est faux comme je te l'ai indiqué mais peut-^tre que nos posts se sont croisés
          0
          1. j'ai trouvé la solution

            en fait j'ai un problème dans la gestion de mes indices, comme je supprime des lignes les indices de cellules ne correspondent plus

            merci à vous deux de m'avoir aider
            bonne soirée
            0