chaelie2015
XLDnaute Accro
Bonjour FORUM;
ci dessous un code; voici ces étapes: :
1. Le code commence par définir des variables pour référencer les feuilles de travail nécessaires et stocker les valeurs pertinentes.
2. Il récupère la date de départ, le nombre et les dates de début et de fin à partir de la feuille "Motif".
3. Il vérifie d'abord si la date de départ est dans l'intervalle spécifié (entre la date de début et la date de fin) et si le nombre est supérieur à zéro.
4. S'il satisfait à ces conditions, le code initialise un compteur à zéro.
5. Il commence ensuite à parcourir les cellules de la colonne AS de la feuille "CRT" (de AS17 à AS47).
6. À chaque itération, il vérifie si la cellule AS est vide. Si la cellule est vide, il passe à la cellule suivante. Si la cellule AS n'est pas vide, il incrémente le compteur.
7. Il continue de parcourir les cellules de la colonne AS jusqu'à ce que le compteur atteigne la valeur spécifiée dans la cellule O3 de la feuille "Motif".
8. Une fois que le compteur atteint la valeur spécifiée, le code enregistre la date correspondante de la cellule AS dans la variable `DerniereDate` et sort de la boucle.
9. Enfin, le code affiche la valeur de `DerniereDate` dans la cellule T3 de la feuille "Motif".
j'ai exécuté toutes ces étapes mais, ça n'a pas fonctionné ?
Merci par avance
ci dessous un code; voici ces étapes: :
1. Le code commence par définir des variables pour référencer les feuilles de travail nécessaires et stocker les valeurs pertinentes.
2. Il récupère la date de départ, le nombre et les dates de début et de fin à partir de la feuille "Motif".
3. Il vérifie d'abord si la date de départ est dans l'intervalle spécifié (entre la date de début et la date de fin) et si le nombre est supérieur à zéro.
4. S'il satisfait à ces conditions, le code initialise un compteur à zéro.
5. Il commence ensuite à parcourir les cellules de la colonne AS de la feuille "CRT" (de AS17 à AS47).
6. À chaque itération, il vérifie si la cellule AS est vide. Si la cellule est vide, il passe à la cellule suivante. Si la cellule AS n'est pas vide, il incrémente le compteur.
7. Il continue de parcourir les cellules de la colonne AS jusqu'à ce que le compteur atteigne la valeur spécifiée dans la cellule O3 de la feuille "Motif".
8. Une fois que le compteur atteint la valeur spécifiée, le code enregistre la date correspondante de la cellule AS dans la variable `DerniereDate` et sort de la boucle.
9. Enfin, le code affiche la valeur de `DerniereDate` dans la cellule T3 de la feuille "Motif".
j'ai exécuté toutes ces étapes mais, ça n'a pas fonctionné ?
VB:
Sub CalculerDateArrivee()
Dim wsMotif As Worksheet
Dim wsCRT As Worksheet
Dim DateDepart As Date
Dim Nombre As Integer
Dim DateDebut As Date
Dim DateFin As Date
Dim Compteur As Integer
Dim DerniereDate As Variant
' Référence à la feuille "Motif"
Set wsMotif = ThisWorkbook.Sheets("Motif")
' Référence à la feuille "CRT"
Set wsCRT = ThisWorkbook.Sheets("CRT")
' Récupération des valeurs depuis la feuille "Motif"
DateDepart = wsMotif.Range("R3").Value
Nombre = wsMotif.Range("O3").Value
DateDebut = wsMotif.Range("R2").Value
DateFin = wsMotif.Range("T2").Value
' Vérification des conditions
If DateDepart >= DateDebut And DateDepart <= DateFin And Nombre > 0 Then
' Comptage des cellules non vides dans la colonne AS de la feuille "CRT"
Compteur = 0
For Compteur = 17 To 47 ' Plage AS17:AS47
If wsCRT.Cells(Compteur, "AS").Value <> "" Then
Nombre = Nombre - 1
If Nombre = 0 Then
DerniereDate = wsCRT.Cells(Compteur, "AS").Value
Exit For
End If
End If
Next Compteur
End If
' Affichage du résultat dans la cellule T3 de la feuille "Motif"
wsMotif.Range("T3").Value = DerniereDate
End Sub
Merci par avance