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

XL 2019 Problème de boucle pour soustraction de nombre et total vba

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 !

thespeedy20

XLDnaute Occasionnel
Bonjour à tous,



J'ai une carte de vacance, ou j'introduit le nombre d'heure(L9), on rentre le nombre d'heure de congé en C11, C12, C13..... et le solde restant s'indique en D11,D12,D13....

Ex
en L9: 250
je prends 8h de congés(c11) et le solde est de 242(D11)
je prends 4h de congés(c12) et le solde restant est de 238 (D12)......

J'ai créé une boucle mais cela ne fonctionne pas, pouvez-vous m'aider à résoudre le problème

Merci beaucoup
 

Pièces jointes

Bonjour,

J'ai pas bien compris ce que tu voulais faire mais voici très simplement un tableau avec dans Solde heures le nombre d'heures restantes après entrée d'un certain nombre d'heures en C_ et en haut en gros renvoyé le nombre d'heures restant actuellement.

Dis moi si c'est ce que tu veux.

Bonne continuation

PS : Le VBA, c'est comme les problèmes : moins y en a, mieux on se porte.
 

Pièces jointes

bonjour,
il suffit de changer ton code en :

VB:
Dim i As Integer

Cells(9, 12) = Cells(9, 12).Value
Cells(11, 4).Value = Cells(9, 12).Value - Cells(11, 3).Value

For i = 12 To 30
 Cells(i, 4).Value = Cells(i - 1, 4).Value - Cells(i, 3).Value
    
     Next i
    
End Sub
 
Re,

@Santulud
VB:
Cells(9,12) = Cells(9,12).Value
Ca ne veut rien dire, c'est une référence circulaire 😕

Et je ne suis vraiment pas certain qu'une boucle VBA soit nécessaire dans cette situation (de plus, tu as oublié la partie droite du tableau (les lignes 21 à 40)

Bonne continuation
 
Bonjour,

@Santulud : comme ceci



VB:
Cells(11, 4).Value = Cells(9, 12).Value - Cells(11, 3).Value
 
  For i = 12 To 30
 
   If Cells(i - 1, 3).Value <> "" Then Cells(i, 4).Value = Cells(i - 1, 4).Value - Cells(i, 3).Value
  
       If Cells(i - 1, 3).Value = "" Then Exit For
 
      
      Next i
    
 
Cells(11, 11).Value = Cells(30, 4).Value - Cells(11, 10).Value
   If Cells(11, 11) = 0 Then Cells(11, 11) = ""
    
  For j = 12 To 30
      
      
    If Cells(j - 1, 10).Value <> "" Then Cells(j, 11).Value = Cells(j - 1, 11).Value - Cells(j, 10).Value
    
       If Cells(j - 1, 10).Value = "" Then Exit For
      
      Next j
 
Faire une autre boucle pour ça, c'est un peu dommage, ils sont sur les mêmes lignes ...
A mon sens, des formules dans les cellules seraient bien plus efficaces.
Sinon, si tu veux absolument passer par macro, la deuxième boucle est inutile, il suffit de mettre les deux boucles en une, en insérant un décalage de colonne.
@thespeedy20 il faut chercher à optimiser tes macros 😉

Bonne continuation
 
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…