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

XL 2021 Additionner résultats d'une boucle for en 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 !

Claudinedu13

XLDnaute Junior
VB:
Sub BoutonAddition()
Dim fh As Worksheet, dico As Object
Dim I&
    Set fh = Sheets("Feuil1")
    Set dico = CreateObject("Scripting.Dictionary")
    For I = 2 To fh.Range("A" & Rows.Count).End(xlUp).Row
        If fh.Range("B" & I) = "D231201" Then
        MsgBox fh.Range("F" & I) 
        ' Additionner fh.Range("F" & I)
        End If
    Next I
End Sub

Bonjour,

J'apprends au fil de mes besoins, j'ai adapté ce code trouvé sur le net pour mon cas, mais

1/ Comment additionner tous les fh.Range("F" & I) obtenus d"une boucle for ?

2/ "Dans For I = 2" à quoi correspond le 2 ?

Merci
 

Pièces jointes

Solution
bonjour
VB:
Sub BoutonAddition()
    Dim fh As Worksheet, dico As Object
    Dim I&
    Dim Somme As Double
    Set fh = Sheets("Feuil1")
    Set dico = CreateObject("Scripting.Dictionary")
    For I = 2 To fh.Range("A" & Rows.Count).End(xlUp).Row
        If fh.Range("B" & I) = "D231201" Then
            Somme = Somme + fh.Range("F" & I)
        End If
    Next I
    MsgBox Somme
End Sub
bonjour
VB:
Sub BoutonAddition()
    Dim fh As Worksheet, dico As Object
    Dim I&
    Dim Somme As Double
    Set fh = Sheets("Feuil1")
    Set dico = CreateObject("Scripting.Dictionary")
    For I = 2 To fh.Range("A" & Rows.Count).End(xlUp).Row
        If fh.Range("B" & I) = "D231201" Then
            Somme = Somme + fh.Range("F" & I)
        End If
    Next I
    MsgBox Somme
End Sub
 

Bonjour @JM27

Merci pour ta réponse pour l'addition.

Peux tu me dire à quoi correspond 2 dans "For I = 2" ?
 
bonjour
2 correspond à la ligne du début de traitement aurait du être 5
fh.Range("A" & Rows.Count).End(xlUp).Row correspond à la ligne de fin de traitement

par contre dans ta procédure il y a des lignes en trop (non utilisé)
VB:
Sub BoutonAddition()
    Dim fh As Worksheet
    Dim I as long
    Dim Somme As Double
    Set fh = Sheets("Feuil1")
    For I = 2 To fh.Range("A" & Rows.Count).End(xlUp).Row
        If fh.Range("B" & I) = "D231201" Then
            Somme = Somme + fh.Range("F" & I)
        End If
    Next I
    MsgBox Somme
End Sub

Comme je vois que tu débutes voici les lignes commentées

VB:
Sub BoutonAddition()
    Dim fh As Worksheet
    Dim I As Long
    Dim Somme As Double
    ' déclaration de la variable feuille
    Set fh = Sheets("Feuil1")
    ' pour la variable I qui commence à la ligne 5 jusqu'a la ligne de fin de donnée  ( ici 12)
    For I = 5 To fh.Range("A" & Rows.Count).End(xlUp).Row
        ' Si la cellule en b et numéo de la ligne en traitement contient "D231201"
        If fh.Range("B" & I) = "D231201" Then
            ' j'ajoute dans la variable somme  la somme déja enregistrée + la valeur de la cellule F et ligne en cours de traitement
            Somme = Somme + fh.Range("F" & I)
        End If
    Next I
    ' j'envoie le message somme
    MsgBox Somme
End Sub
 
Dernière édition:
Bonjour,
Peut être plus simple :
VB:
Sub BoutonAddition()
Dim Total, Code
    Code = "D231201"
    Total = Application.SumIf([Tableau_AvoirsAcomptes[Réf AV AC]], Code, [Tableau_AvoirsAcomptes[Montant AV AC]])
    MsgBox "Total D231201 : " & Total
End Sub
Ce qui correspond en XL à :
Code:
=SOMME.SI(Tableau_AvoirsAcomptes[Réf AV AC];"D231201";Tableau_AvoirsAcomptes[Montant AV AC])
 
Super merci pour ton retour instructif
 
Merci 👍
 
Bonsoir @sylvanu

Je vais encore abuser, comment obtenir le nombre de fois où on trouve D231201 dans la colonne Réf AV AC ?

Merci d'avance , je dois chercher des heures pour trouver des trucs très simple comme ça...
 
- 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

Discussions similaires

Réponses
40
Affichages
2 K
Réponses
3
Affichages
569
  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
622
Réponses
4
Affichages
332
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
482
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…