Boucle while inaccessible

Résolu
Bonjour,

je ne sais pas pourquoi la boucle while au milieu n'est pas accessible !!
ce while :
While .Range("J2").Offset(j, 0) = .Range("J2").Offset(j + 1, 0)
Sum = Sum + .Range("K2").Offset(j + 1, 0)
j = j + 1
Wend


Public Function StockSecurite(Depot, Base_Oil, Transaction, Year, Week)
Dim i As Long
Dim j As Long
Dim w As Worksheet
Dim Sum As Double
Dim Max As Double
Set w = Worksheets("Donnees")
i = 0
j = 0
Max = 0
With w

While .Range("I2").Offset(i, 0) <> ""

If .Range("J2").Offset(i, -9) = Depot And .Range("J2").Offset(i, -8) = Base_Oil And .Range("J2").Offset(i, -6) = Transaction And .Range("J2").Offset(i, -3) = Year And .Range("J2").Offset(i, -1) = Week Then
tot = tot + .Range("K2").Offset(i, 0)
Sum = .Range("K2").Offset(i, 0)

While .Range("J2").Offset(j, 0) = .Range("J2").Offset(j + 1, 0)
Sum = Sum + .Range("K2").Offset(j + 1, 0)
j = j + 1
Wend
End If
i = i + 1
Wend
End With
'StockSecurite = (Max - tot / 7) * 7
StockSecurite = Sum
End Function

Merci de votre aide

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Salut le Forum

    Merci de clore ton autre ficelle et de remercier les répondants.

    Ta boucle ne s'exécutera que si toutes les conditions sont réunies
    If .Range("J2").Offset(i, -9) = Depot And .Range("J2").Offset(i, -8) = Base_Oil And .Range("J2").Offset(i, -6) = Transaction And .Range("J2").Offset(i, -3) = Year And .Range("J2").Offset(i, -1) = Week then

    Mytå
    1. Bonjour
      Les conditions sont réunies car en mettant la boucle while (ou y a problème) en commentaire, le programme renvoie la valeur sum ou tot .
      Merci.
      Je m'excuse pour mon inattention pour l'autre discussion !
    2. Contributeur
      Re le Forum

      Il faudrait avoir un fichier, car ma boule de cristal est cassée.

      Mytå
  2. Bonjour
    Voila ce que je veux exactement
    Dans le fichier simplifié joint (je l'ai partagé sous forme d'image, je sais pas si c'est possible de partager des docs! ) , il y a week , Date, et quantité , je souhaite calculé cette formule , q = Max quantité journalière - quantité totale hebdomadaire/7
    avec :
    pour le max, il faut sommer les quantités qui ont les mêmes dates, et les comparer pour déterminer le max.


    Merci de votre aide !
    1. Contributeur
      RE le Forum

      Pour joindre un fichier utilise https://www.cjoint.com/
      et recopie le lien fourni dans ton prochain message.

      Mytå
  3. Aidez moi SVP , je bloque !!
    1. Contributeur
      Re le Forum

      Déjà dans ton exemple, il n'y a pas d'onglet "Donnees".

      Et tu n'indiques pas les paramètres à saisir dans ta formule
      =StockSecurite(Depot, Base_Oil, Transaction, Year, Week)

      Mytå
    2. Contributeur
      Re le Forum

      Tu réaffectes la valeur de Sum à chaque passage
      Sum = .Range("K2").Offset(i, 0)
    3. Où dois-je exactement l'insérer ?!
      Merci
    4. Contributeur
      Re le Forum

      Que devrait faire ta fonction, quel est le résultat attendu ?

      Mytå