Somme de cellules dans 2 feuilles différentes

Résolu/Fermé
Pompom974 Messages postés 20 Date d'inscription lundi 15 juin 2015 Statut Membre Dernière intervention 9 août 2015 - 19 juin 2015 à 10:06
Pompom974 Messages postés 20 Date d'inscription lundi 15 juin 2015 Statut Membre Dernière intervention 9 août 2015 - 23 juin 2015 à 11:02
Bonjour à tous !

Je suis toute nouvelle en VBA, et sur le forum...

Je suis face à une problèmatique que je n'arrive pas à résoudre malgré mes recherches.

Voici le contexte : J'ai deux feuilles de calcul dans un même classeur, appelons les Feuil1 et Feuil2.
Dans Feuil1, j'ai un tableau à deux colonnes, l'une qui donne les quantités de produits commandés, une autre qui donne la date à laquelle elles ont été livrées.
Dans ma Feuil2, j'ai un autre tableau dans lequel je dois rentrer la somme des produits qui ont été livrés entre deux dates.

Malheureusement, le code que j'ai fait à l'air de compiler, mais il ne renvoit aucune valeur dans la cellule demandée, et je n'arrive toujours pas à trouver mon erreur...

Voici le code :

Private Sub D1_PromiseDate_Click()
Dim NumLig As Integer

With Worksheets("LG Data")

Dim MaDate As Date
MaDate = Range("J" & NumLig).Value
Dim tempPromDate As Integer

tempPromDate = Range("J" & Rows.Count).End(xlUp).Row

For NumLig = 1 To tempPromDate

If MaDate >= DateSerial(Year(Date), Month(Date) - 6, Day(Date)) And MaDate <= DateSerial(Year(Date), Month(Date), Day(Date)) Then
Application.Worksheets("OTD LG").Range("C3").Formula = Application.WorksheetFunction.Sum(Range("E" & NumLig).Value)
End If

Next NumLig

For NumLig = 1 To tempPromDate

If MaDate >= DateSerial(Year(Date), Month(Date) - 7, Day(Date)) And MaDate <= DateSerial(Year(Date), Month(Date) - 1, Day(Date)) Then
If Application.Worksheets("OTD LG").Range("C4").Value = "" Then
Application.Worksheets("OTD LG").Range("C4").Formula = Application.WorksheetFunction.Sum(Range("E" & NumLig).Value)
End If
End If

Next NumLig

End With

End Sub


Si quelqu'un voit une erreur que je n'aurais pas remarqué dans mon code, ou pense que ce n'est pas comme ça qu'il faut faire, je suis preneuse :$

Je vous remercie de votre aide.
A voir également:

5 réponses

Bruce Willix Messages postés 11968 Date d'inscription mardi 24 mai 2011 Statut Contributeur Dernière intervention 12 juin 2018 2 587
19 juin 2015 à 10:53
Salut,

Tu veux vraiment passer par du VBA ?

Parce qu'il me semble qu'avec SOMME.SI() ce serait diablement plus facile, non?
0
Pompom974 Messages postés 20 Date d'inscription lundi 15 juin 2015 Statut Membre Dernière intervention 9 août 2015
19 juin 2015 à 11:05
C'est l'idée que j'avais eu, car j'ai comme condition des dates... Et comme le fichier change toutes les semaines, il faut que Excel actualise tout à chaque fois :/ Je ne suis pas très douée en Excel/VBA, je n'ai donc pas pensé à utiliser des formules dans la cellule même

Est ce possible si les données sont dans une autre feuille ?

Merci!
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
Modifié par ccm81 le 19/06/2015 à 10:56
Bonjour

Sans le fichier, difficile de te répondre
Un exemple à adapter + une solution sans macro
http://www.cjoint.com/c/EFti3pJUwbg

Cdlmnt
0
Pompom974 Messages postés 20 Date d'inscription lundi 15 juin 2015 Statut Membre Dernière intervention 9 août 2015
19 juin 2015 à 11:03
Bonjour, je ne peux malheureusement pas envoyer le fichier, car c'est un fichier professionnel. Il est cependant assez similaire à ton exemple, à part que les données sont dans une feuille autre que celle dans laquelle je met le résultat du calcul.

Je vais essayer de comprendre comment tu as fait.

Merci !
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
Modifié par ccm81 le 19/06/2015 à 11:06
Tu as les données correspondantes à ta configuration dans la liste des constantes en début du code, il te suffit de les adapter
Et la solution avec SOMMEPROD (sans macro), ça ne peut pas faire ?

Cdlmnt
0
Pompom974 Messages postés 20 Date d'inscription lundi 15 juin 2015 Statut Membre Dernière intervention 9 août 2015
19 juin 2015 à 11:11
C'est un fichier qui va changer toutes les semaines... Du coup, je ne dois pas sélectionner de cellules dans les données, cela risque de fausser le résultat je pense, non ?
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
19 juin 2015 à 11:13
Pour la solution sans macro, tu peux utiliser des plages dynamiques
1. plages nommées
listedates=DECALER(Feuil1!$B$1;1;0;NB(Feuil1!$B:$B);1)
listeproduits=DECALER(Feuil1!$A$1;1;0;NB(Feuil1!$A:$A);1)
2. formule de calcul
puis J2=SOMMEPROD((listedates>=G2)*(listedates<=G3)*(listeproduits))
RQ. J2 peut se trouver dans une autre feuille (avec G2,G3 bien sûr)

Cdlmnt
0
Pompom974 Messages postés 20 Date d'inscription lundi 15 juin 2015 Statut Membre Dernière intervention 9 août 2015
19 juin 2015 à 11:14
Merci beaucoup ! J'essaye ça tout de suite :)

Merci de ton aide !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pompom974 Messages postés 20 Date d'inscription lundi 15 juin 2015 Statut Membre Dernière intervention 9 août 2015
Modifié par Pompom974 le 23/06/2015 à 11:02
Bonjour !

Donc, j'ai mis du temps mais finalement ça fonctionne lorsque je fais ma macro sur un mois roulant(oui, j'ai fait une macro, j'ai besoin d'effacer le tableur excel à chaque fois et j'ai préféré faire un code du coup :$)

Merci beaucoup ccm81, tu as débloqué ce qui n'allait pas dans mon code !

Maintenant je vais tenter de corriger mon problème sur les 6 mois roulants... Merci de votre aide !!
0