Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

whiLe qui ne s'arrete pas help

  • Initiateur de la discussion Initiateur de la discussion sihamelm
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

sihamelm

Guest
Bonjour,
j'ai une fichier avec plusieurs feuil contenant l'historique des quantités transportées
J'ai voulu faire un programme pour que je puisse avoir la quantité mensuelle mais l boucle ne s'arrete pas pourtant je l'ai testé sur un petit tableau ça a marché
ps: c la premiere fois que j'écris sur ce forum :s je ne sais pas comment mettre le code
Dim quantites As Long
Dim i As Integer
Dim j As Integer
i = 3
j = 4
quantites = 0

While IsEmpty(Cells(j, 4)) = False
quantites = quantites + Cells(j, 8).Value
While Month(Cells(j, 4).Value) = Month(Cells(j + 1, 4).Value)
quantites = quantites + Cells(j + 1, 8).Value
j = j + 1


Wend

Cells(i, 21).Value = Month(Cells(j, 4).Value)
Cells(i, 22).Value = quantites
i = i + 1
quantites = 0
j = j + 1

Wend
 
Re : whiLe qui ne s'arrete pas help

Bonjour sihamelm et bienvenue sur le forum.

J'ai testé ton code sur un fichier test et il a bien fonctionné. Maintenant, pour savoir ce qui ne va pas dans ton cas réel, il faudrait que tu postes ton fichier (en enlevant les données sensibles). Pour celà, tu vas dans "Aller en mode avancé" en bas à droite puis "Gérer les pièces jointes".

Pour le code, il te faut utiliser les balises [CODE ] Ton Code [/CODE ] sans les espaces.

Ensuite, je t'invite cordialement à lire la Lien supprimé.

A+
 
Re : whiLe qui ne s'arrete pas help

bonsoir

nul besoin de macro
en J4
=SOMMEPROD((MOIS($D$4:$D$40000)=(LIGNE()-3))*($E$4:$E$40000))
tu peux ensuite tirer cette ligne vers le bas pour avoir les 12 mois de l'année
 
Re : whiLe qui ne s'arrete pas help

Re-bonsoir sihamelm,

Voici le code à utiliser. J'ai rajouté une condition qui teste si le mois de j+1 est vide ou non. En effet, lorsqu'une cellule est vide, EXCEL considère que le mois = 12. Dans le cas de la feuille que tu as mise en exemple, le dernier mois étant 12, il validait systématiquement la condition, jusqu'à ce qu'on soit en débordement de capacité pour la variable j déclarée en integer, c'est à dire 32567.

VB:
Sub consom()
    Dim quantites As Long
    Dim i As Integer
    Dim j As Integer
    i = 3
    j = 4
    quantites = 0
    While Not IsEmpty(Cells(j, 4))
        quantites = quantites + Cells(j, 8).Value
        While Not IsEmpty(Cells(j + 1, 4).Value) And Month(Cells(j, 4).Value) = Month(Cells(j + 1, 4).Value)
            quantites = quantites + Cells(j + 1, 8).Value
            j = j + 1
        Wend
        Cells(i, 21).Value = Month(Cells(j, 4).Value)
        Cells(i, 22).Value = quantites
        i = i + 1
        quantites = 0
        j = j + 1
    Wend
End Sub

A+
 
Re : whiLe qui ne s'arrete pas help

Rebonsoir
Merci fredoo ça marche surtout qu'il fallé bouclé sur plusieurs feuils
qu'on je récupère la date et je la mes dans la cellule
Code:
Cells(i, 21).Value = Month(Cells(j, 4).Value)
c'est affiché en # vu que la cellule n'est pas de format DATE Y a-t-il un moyen pour changer le format sur le code??
Merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
911
Réponses
4
Affichages
734
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
452
Réponses
5
Affichages
573
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
903
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…