Erreur de loop

Bonjour toute le monde,

Euh j ai comme un bug, j'essaye de recolorer des cellules déjà colorier d une ligne bien précise. Du coup j ai mis cette loop mais j ai comme un souci d'application pourtant tout je pensais avoir utiliser un code le plus simple possible mais j'ai comme un loupe je pense et je ne vois ou.

En gros sur une colonne chercher la ligne qui contient le mot "Cockpit" puis sur la ligne chercher les colonnes qui sont colorier pour les remplacer par une autre.

Sub test()
Dim i
Dim j
Dim cell As Range
Dim dercol
Dim derlig
dercol = Cells(1, Columns.Count).End(xlToLeft)
derlig = Sheets("TimeLinePROD").Range("G2:G" & Sheets("TimeLinePROD").Range("G65535").End(xlUp).Row)

For j = 1 To derlig
    If Worksheets("TimeLinePROD").Cells(i, 2).value = "Cockpit" Then
        For i = 9 To dercol
            If Worksheets("TimeLinePROD").Cells(i, 2).Interior.ColorIndex > 1 Then
                cell.Interior.ColorIndex = 3
            End If
        Next i
    End If
Next j
End Sub

Merci d'avance pour vos lumiere

Bonjour,

en essayant d'imaginer ce à quoi pourrait ressembler ton fichier

une proposition de correction

Sub test()
    Dim i
    Dim j
    Dim dercol
    Dim derlig
    With Sheets("TimeLinePROD")
        dercol = .Cells(1, Columns.Count).End(xlToLeft).Column
        derlig = .Cells(Rows.Count, "G").End(xlUp).Row

        For j = 1 To derlig
            If .Cells(j, 2).Value = "Cockpit" Then
                For i = 9 To dercol
                    If .Cells(j, i).Interior.ColorIndex > 1 Then
                        .Cells(j, i).Interior.ColorIndex = 3
                    End If
                Next i
            End If
        Next j
    End With
End Sub

Bonjour nunos31,

Je te propose ce code VBA (non testé, car sans ton fichier) :

Option Explicit

Sub test()
  Dim dercol%, derlig&, i&, j%
  With Worksheets("TimeLinePROD")
    dercol = .Cells(1, Columns.Count).End(xlToLeft).Column
    derlig = .Cells(Rows.Count, 7).End(xlUp).Row
    For i = 1 To derlig
      With .Cells(i, 2)
        If .Value = "Cockpit" Then
          For j = 0 To dercol - 9
            If .Offset(, j).Interior.ColorIndex <> -4142 Then .Offset(, j).Interior.ColorIndex = 3
          Next j
        End If
      End With
    Next i
  End With
End Sub

dhany

Oui désolé,

C'est plus simple avec un fichier d'exemple... le voici merci pour vos proposition je test tout ça

6test.xlsx (14.12 Ko)

Je te retourne ton fichier Excel converti en .xlsm pour pouvoir y mettre du code VBA :

7test.xlsm (20.49 Ko)

Ctrl e (ou clic sur le bouton « Modification de couleur ») ➯ travail effectué

Alt F11 pour voir la macro, puis revenir sur Excel

Si besoin, tu peux demander une adaptation.

Merci de me donner ton avis.

dhany

Bonjour dhany,

C'est parfait merci beaucoup de ton aide, joyeuse pâque

Bruno

Bonjour Bruno,

Merci du retour, je suis ravi d'avoir pu t'aider !

Joyeuse pâque à toi aussi !

dhany

Rechercher des sujets similaires à "erreur loop"