Boucle
Résolu
Jono92600
Messages postés
78
Statut
Membre
-
Jono92600 Messages postés 78 Statut Membre -
Jono92600 Messages postés 78 Statut Membre -
Bonjour,
J'ai un souci sur le choix de traitement de ma colonne. ci-dessous le code :
J'aimerais l’exécution du code s’arrête à la dernière ligne.
Merci d'avance.
J'ai un souci sur le choix de traitement de ma colonne. ci-dessous le code :
Sheets("PRESTAT").Activate
Const strPlageDesDates As String = "E3:E150"
Dim cel As Range
For Each cel In ActiveSheet.Range(strPlageDesDates)
'Corriger les dates saisies au format texte
If IsDate(cel.Value) And VarType(cel.Value) <> vbDate Then
cel.Value = CDate(cel.Value)
End If
' Renseigner la colonne ETAT
If IsDate(cel.Offset(0, 1).Value) Then
cel.Offset(0, 2).Value = "Réalisé"
ElseIf DateSerial(Year(Date), Month(Date) - 1, Day(Date)) >= cel.Value Then
cel.Offset(0, 2).Value = "Critique"
ElseIf Date - 7 >= cel.Value Then
cel.Offset(0, 2).Value = "En retard"
Else
cel.Offset(0, 2).Value = "Dans les temps"
End If
J'aimerais l’exécution du code s’arrête à la dernière ligne.
Merci d'avance.
A voir également:
- Boucle
- Télé samsung s'éteint et se rallume en boucle - Forum Téléviseurs
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Mise à disposition de boucle locale dédiée ✓ - Forum Freebox
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Vlc lecture en boucle ✓ - Forum Lecteurs et supports vidéo
1 réponse
Bonjour,
Il manque un "NEXT" dans ton code
Quelle dernière ligne ?
Là .. ton code va jusqu'à ligne 150 de la colonne E .. ce n'est pas bon ?
Si tu veux "trouver" la dernière ligne utilisée, tu peux utiliser
Il manque un "NEXT" dans ton code
Quelle dernière ligne ?
Là .. ton code va jusqu'à ligne 150 de la colonne E .. ce n'est pas bon ?
Si tu veux "trouver" la dernière ligne utilisée, tu peux utiliser
Dim DernLigne as Long
DernLigne = Range("E1048576").End(xlUp).Row
Dim strPlageDesDates As String
Dim maRng as Range
strPlageDesDates = "E3:E" & DernLigne
Set maRng = ActiveSheet.Range(strPlageDesDates)
Mon code n'arrive pas jusqu'à la ligne 150. Mais j'ai mis E150 pour limiter l'exécution à E150.
Je rajoute tous les jours une nouvelle ligne voir plus. Donc le but est de déterminer la dernière ligne remplit et d’arrêter son exécution à cette même ligne.
Sheets("PRESTAT").Activate
Const strPlageDesDates As String = "E3:E150"
Dim cel As Range
For Each cel In ActiveSheet.Range(strPlageDesDates)
'Corriger les dates saisies au format texte
If IsDate(cel.Value) And VarType(cel.Value) <> vbDate Then
cel.Value = CDate(cel.Value)
End If
' Renseigner la colonne ETAT
If IsDate(cel.Offset(0, 1).Value) Then
cel.Offset(0, 2).Value = "Réalisé"
ElseIf DateSerial(Year(Date), Month(Date) - 1, Day(Date)) >= cel.Value Then
cel.Offset(0, 2).Value = "Critique"
ElseIf Date - 7 >= cel.Value Then
cel.Offset(0, 2).Value = "En retard"
Else
cel.Offset(0, 2).Value = "Dans les temps"
End If
Next cel