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 !
Voila j'ai de nouveau des problèmes avec une macro excel, étant novice je me suis lancé dans le code suivant(il doit y avoir beaucoup d'erreurs 😀) :
Je joint aussi le fichier d'exemple pour une meilleure compréhension de mon problème
Code:
Dim onglet As Worksheet
Dim Selectioncellule As Range
Dim destination As Range
Dim somme as Long
DateValue("j-mmm-aa")
Set onglet = Sheets("Feuil1")
For Each cel In Range("A65536").End(xlUp))
If Selectioncellule.Value = Date Then
With Range(Cells(Selectioncellule.Row, 2))
"sum=(somme,ActiveCell.value)"
End With
End If
Next cel
Set destination = onglet.Range("B65536").End(xlUp).Offset(1, 0)
destination.PasteSpecial (somme)
End Sub
Cette macro devrait faire les actions suivantes :
-faire la somme des cellules de la collone B si la date dans la collone A est égale a la date d'aujourd'hui (feuille 2)
-écrire le résultat de cette somme dans la collone B de la feuille 1 en mettant la date dans la collone A
J'espère ne pas être trop confus dans ma description et je vous remercie d'avance pour votre précieuse aide !
Re : macro somme d'une plage de cellule en fonction de la date
Bonjour Alex52,
J'ai fait au plus simple, dans la macro affectée au bouton de la feuille 2.
Je te laisse le soin d'étudier mon code, et je reste à ton écoute pour tout renseignement éventuel.
Re : macro somme d'une plage de cellule en fonction de la date
Bonjour Papou-net : bonjour le forum 🙂
Merci de ta réponse Papou-net Je viens de tester ta solution (j'étais parti en week-end 😀)elle fonctionne très bien maitenant j'aurais voulu rajouter une dernière petite chose :
-serait'il possible de rajouter une condition a l'execution du calcul ?
je m'explique : outre la condition sur la date j'aurais aimé pouvoir faire un autre test sur autre colonne (ex colonne D) par exemple si la valeur de la colonne D > 0 ce qui donnerait : si date = aujourd'hui et si valeur de la colonne D >0 alors je fais la somme que j'inscrit dans la colonne A de la feuille 1.
J'ai essayer d'adapter le code que tu m'as fournit sans succès :
Code:
Private Sub CommandButton1_Click()
attente = 0
cell = Range(D2:D & Range(D65536).End(xlUp).Row)
If Cells(cell.Row, 2) > 0 Then
For Each cel In Range(A2A & Range(A65536).End(xlUp).Row)
If Cells(cel.Row, 1) = Date Then attente = attente + Cells(cel.Row, 2)
Next
With Sheets(Feuil1)
lg = .Range(A65536).End(xlUp).Row + 1
.Cells(lg, 1) = Date
.Cells(lg, 2) = attente
End With
End If
End Sub
Je te remercie de m'accorder du temps pour résoudre mes petits problèmes de débutant.
Merci de ta réponse Papou-net Je viens de tester ta solution (j'étais parti en week-end 😀)elle fonctionne très bien maitenant j'aurais voulu rajouter une dernière petite chose :
-serait'il possible de rajouter une condition a l'execution du calcul ?
je m'explique : outre la condition sur la date j'aurais aimé pouvoir faire un autre test sur autre colonne (ex colonne D) par exemple si la valeur de la colonne D > 0 ce qui donnerait : si date = aujourd'hui et si valeur de la colonne D >0 alors je fais la somme que j'inscrit dans la colonne A de la feuille 1.
J'ai essayer d'adapter le code que tu m'as fournit sans succès :
Code:
Private Sub CommandButton1_Click()
attente = 0
cell = Range(D2:D & Range(D65536).End(xlUp).Row)
If Cells(cell.Row, 2) > 0 Then
For Each cel In Range(A2A & Range(A65536).End(xlUp).Row)
If Cells(cel.Row, 1) = Date Then attente = attente + Cells(cel.Row, 2)
Next
With Sheets(Feuil1)
lg = .Range(A65536).End(xlUp).Row + 1
.Cells(lg, 1) = Date
.Cells(lg, 2) = attente
End With
End If
End Sub
Je te remercie de m'accorder du temps pour résoudre mes petits problèmes de débutant.
Pas de problème, voici comment compléter le code :
Code:
Private Sub CommandButton1_Click()
attente = 0
For Each cel In Range("A2:A" & Range("A65536").End(xlUp).Row)
If Cells(cel.Row, 1) = Date [COLOR="Red"][B]And Cells(cel.Row, 4) > 0[/B][/COLOR] Then attente = attente + Cells(cel.Row, 2)
Next
With Sheets("Feuil1")
lg = .Range("A65536").End(xlUp).Row + 1
.Cells(lg, 1) = Date
.Cells(lg, 2) = attente
End With
End Sub
Re : macro somme d'une plage de cellule en fonction de la date
Rebonjour papou-net , rebonjour le forum !
ARf j'ai rajouté la partie que vous m'avez indiquée mais maintenant le calcul ne me retourne que des "0" même lorsque la somme est sensée être supérieure a "0" j'ai essayé de comprendre pourquoi sans succès 😕. Pouvez vous m'aidez encore un peu s'il vous plaît ? 😀 ( je vous joint le fichier pour que vous puissiez voir ce que je veux faire avec cette fameuse colonne D)
Re : macro somme d'une plage de cellule en fonction de la date
Bonjour a tous et Bonjour le forum !
Voila en fait le problème est règlé , je ne sais pas pourquoi cela ne fonctionnait pas hier mais aujourd'hui miracle cela fonctionne donc la correction que tu avait apporté au code était tout a fait juste , encore merci a toi Papou-net ton aide m'as été très précieuse 🙂
- 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.