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

  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å
    0
    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 !
      0
    2. Contributeur
      Re le Forum

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

      Mytå
      0
  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 !
    0
    1. Contributeur
      RE le Forum

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

      Mytå
      0
  3. Aidez moi SVP , je bloque !!
    0
    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å
      0
    2. Contributeur
      Re le Forum

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

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

      Mytå
      0