Verification de commande

Bonjour

je ne comprends pas pourquoi excel me demande une attendu a la fin de end sub

Sub heure()

Dim h, i As Integer

With Worksheets("graphique")

For h = 57 To 51

If .Cells("C", h) < .Cells("r", 51) Then

ThisWorkbook.Worksheets("activite").Cells("b12").Interior.Color = RGB(128, 255, 128)

Else
ThisWorkbook.Worksheets("activite").Cells("b12").Interior.Color = RGB(254, 195, 172)
End If

Next h

With Worksheets("graphique")

For i = 57 To 51

If .Cells("F", i) < .Cells("r", 51) Then

ThisWorkbook.Worksheets("activite").Cells("b13").Interior.Color = RGB(128, 255, 128)

Else
ThisWorkbook.Worksheets("activite").Cells("b13").Interior.Color = RGB(254, 195, 172)
End If

Next i

End Sub

merci

Bonjour

Il vous manque une END WITH avant le END SUB et après le NEXT H

Pour faire plus simple et corriger, mettez un END WITH avant le END SUB et supprimez le With Worksheets("graphique") juste après le NEXT H

Autre chose, vous pouvez aussi supprimer votre variable i et mettre à la place H dans les deux boucles

Cordialement

merci c etait tout bete

la macro fonctionne mais ne fait rien

donc j explique ce que je veux

dans la feuille "graphique" en r51 j ai l heure systeme appelée par une macro

en c 57 cellule vide qui peut etre remplie

en c56 11:10 (heure)

en c55 12:10

en c54 13:10

si c57< r51 alors celulle sur feuille "Activite" cellule B12 de couleur RGB(128, 255, 128)

sinon couleur RGB(254, 195, 172)

puis on repete la commande pour c56,c55,c54 jusqu a c51

merci de votre aide

Si on écrit pour la cellule c52. .cells("c52")

c est possible où il faut écrire .cells(52,"c")

re

Lorsque vous utilisez CELLS, le premier argument correspond à la ligne, le second argument correspond à la colonne. Donc votre code devient ceci :

Sub heure()

Dim h As Byte

With Worksheets("graphique")
    For h = 57 To 51 step -1
        If .Cells(h, "C") < .Cells(51, "r") Then
            ThisWorkbook.Worksheets("activite").Range("b12").Interior.Color = RGB(128, 255, 128)
        Else
            ThisWorkbook.Worksheets("activite").Range("b12").Interior.Color = RGB(254, 195, 172)
        End If
    Next h

    For h = 57 To 51 step -1
        If .Cells(h, "F") < .Cells(51, "r") Then
            ThisWorkbook.Worksheets("activite").Range("b13").Interior.Color = RGB(128, 255, 128)
        Else
            ThisWorkbook.Worksheets("activite").Range("b13").Interior.Color = RGB(254, 195, 172)
        End If
    Next h
End With
End Sub

bon ca ne fonctionne pas grrrrrrrrrrrrrrrrrrrrr

7test.xlsm (19.78 Ko)

Au fait pourquoi vous commencez par 57 au lieu de 51 dans le code. J'ai amendé le code proposé avant

Dans le fichier posté, l'heure en D1 a un format différent de celles en colonne A. Si c'est bien comme cela dans votre fichier original, essayez comme ceci

Sub heure()
Dim h As Byte

With Worksheets("Feuil2")
    For h = 1 To 4
        If Format(.Cells(h, "A"), "hh:mm:ss") < .Cells(1, "D") Then
            ThisWorkbook.Worksheets("Feuil1").Cells(1, "A").Interior.Color = RGB(128, 255, 128)
        Else
            ThisWorkbook.Worksheets("Feuil1").Cells(1, "A").Interior.Color = RGB(254, 195, 172)
        End If
    Next h

End With
End Sub

merci beaucoup ,ca ne fonctionnait pas encore mais j ai trouve pourquoi

l'heure systeme est un nombre avec la date + heure

mes heures n'etaient que heure j ai rajoute la date pour avoir un nombre et cela fonctionne parfaitement

j integre ceci demain dans ma feuille d origine

merci encore

sujet clos

Bonjour

Oui j'avais remarqué. Raison pour laquelle je vous ai ajouté l'instruction Format.

Ok si cela fonctionne.

Rechercher des sujets similaires à "verification commande"