Macro ne s'exécute pas correctement

Fermé
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 - Modifié par Kuartz le 4/08/2015 à 16:11
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 - 4 août 2015 à 16:34
Bonjour,

Ce code :

Sub Macro1()

Dim DL As Long, i As Long

DL = Cells(Application.Rows.Count, 1).End(xlUp).Row

For i = 2 To DL

If CStr(Range("M" & i).Value) = "FSU" Then
    Rows(i).Delete
End If

Next i

End Sub


Doit être exécuté autant de fois qu'il y a de FSU dans la colonne M. Comment cela se fait-il que toutes les lignes avec FSU ne s'effacent pas d'emblée en exécutant une seule fois le code?
A voir également:

1 réponse

Bonjour
ta macro modifier
Sub Macro1()
Dim DL As Long, I As Long
DL = Range("M" & Rows.Count).End(xlUp).Row
   For I = DL To 2 Step -1
      If Range("M" & I).Value = "FSU" Then
          Rows(I).Delete
      End If
   Next
End Sub

A+
Maurice
0
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61
4 août 2015 à 16:34
Merci beaucoup :)

La même chose pour :

On Error Resume Next

  If IsEmpty(Range("D1:D" & Range("D65536").End(xlUp).Row)) Then Exit Sub
  
 Application.ScreenUpdating = False ' écran(faux)

 For Each cell In Range("D1:D" & Range("D65536").End(xlUp).Row)
  
                    For I = 1 To Range("D65536").End(xlUp).Row
                              Set Rng = cell.Offset(I, 0)
                              If Rng <> "" And Rng = cell Then
                                        Range("D" & cell.Row).Select
                                        Ligne = cell.Row
                                        ' ajout des valeurs de la colonne J lors d'une détection de doublons
                                        Cells(Ligne, 18).Value = Cells(Ligne, 18).Value + Cells(Ligne + I, 18).Value
                                        ' suppression de la ligne en doublons
                                        Range(Cells(Ligne + I, 1), Cells(Ligne + I, 32)).Delete
                                        'Exit For
                              End If
                    Next I
  Next cell


Merci d'avance.
0