Macro vba pour faire la somme des cds par dat
saadiil1
Messages postés
27
Date d'inscription
Statut
Membre
Dernière intervention
-
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour tout le monde;
je suis debutant en vba et j'ai besoin de votre aide.
on ma demander au stage de faire une macro qui permet de faire la somme des commandes( colonne K) pour chaque mois (la date en colonne L) et de les mettre dans la Feuil2.
voilà ce que j'ai :
Feuil1 :
K L
10 05May2011000001
10 13May2011000001
10 19May2011000001
10 25May2011000001
10 06Jun2011000001
10 15Jun2011000001
10 23Jun2011000001
10 30Jun2011000001
10 11Jul2011000001
10 09Aug2011000001
10 22Aug2011000001
10 26Aug2011000001
et voilà ce que je veux dans la Feuil2 :
A B C D
Mois May Jun Jul Aug
cdes 40 40 10 20
Merci d'avance
je suis debutant en vba et j'ai besoin de votre aide.
on ma demander au stage de faire une macro qui permet de faire la somme des commandes( colonne K) pour chaque mois (la date en colonne L) et de les mettre dans la Feuil2.
voilà ce que j'ai :
Feuil1 :
K L
10 05May2011000001
10 13May2011000001
10 19May2011000001
10 25May2011000001
10 06Jun2011000001
10 15Jun2011000001
10 23Jun2011000001
10 30Jun2011000001
10 11Jul2011000001
10 09Aug2011000001
10 22Aug2011000001
10 26Aug2011000001
et voilà ce que je veux dans la Feuil2 :
A B C D
Mois May Jun Jul Aug
cdes 40 40 10 20
Merci d'avance
A voir également:
- Macro vba pour faire la somme des cds par dat
- Fichier .dat - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Formule somme excel colonne - Guide
- Winmail dat - Guide
- Somme si couleur - Guide
9 réponses
Bonjour,
Un exemple de code, mais moi je trouve...
Mois May Jun Jul Aug
cdes 40 40 10 30
A coller dans un module général.
A+
Un exemple de code, mais moi je trouve...
Mois May Jun Jul Aug
cdes 40 40 10 30
Option Explicit Option Compare Text Sub H() Dim T, Lig As Long, Mois As Integer, TB(), Result(12) As Integer TB = Array(" ", "Jan", "Fév", "Mar", "Avr", "May", "jun", "jul", "aug", "sep", "oct", "nov", "déc") Sheets("Feuil1").Select For Lig = 1 To [L65536].End(xlUp).Row For Mois = 1 To 12 If Cells(Lig, "L") Like "*" & TB(Mois) & "*" Then Result(Mois) = Result(Mois) + Cells(Lig, "K") Exit For End If Next Mois Next Sheets("Feuil2").Activate For Mois = 1 To 12 Cells(2, Mois + 1) = TB(Mois) Cells(3, Mois + 1) = Result(Mois) Next End Sub
A coller dans un module général.
A+
Merci bcp pour ta réponse.
En fait il accepte pas "Option Explicit" et "Option Compare Text" et lorsque je les enleve.il ne donne pas le bn résultat
voici ce que j'ai obtenu avec ton code (en enlevant "Option Explicit" et "Option Compare Text" bien sur ) : (40 pour May ) et 0 pour les autres mois :
Jan Feb Mar Apr May jun jul aug
0 0 0 0 40 0 0 0 .........
le problème c'est que dans ma colonne L , il ya les mois qui se repètent , car il ya les comandes de 2011 jusqu'à 2013 cad on peut trouver May2011 ,May2012,May2013 .donc j'aimerai bien que le code tient compte de l'année aussi et de l'aficher . voici les infos exact de ma colonnes L :
05May2011000001
13May2011000001
19May2011000001
25May2011000001
06Jun2011000001
15Jun2011000001
23Jun2011000001
30Jun2011000001
11Jul2011000001
09Aug2011000001
22Aug2011000001
26Aug2011000001
02Sep2011000001
12Sep2011000001
19Sep2011000001
26Sep2011000001
03Oct2011000001
07Oct2011000001
17Oct2011000001
24Oct2011000001
03Nov2011000001
10Nov2011000001
17Nov2011000001
24Nov2011000001
01Dec2011000001
07Dec2011000001
13Dec2011000001
20Dec2011000001
05Jan2012000001
12Jan2012000001
18Jan2012000001
26Jan2012000001
01Feb2012000001
07Feb2012000001
14Feb2012000001
21Feb2012000001
29Feb2012000001
06Mar2012000001
13Mar2012000001
20Mar2012000001
27Mar2012000001
30Mar2012000001
05Apr2012000001
16Apr2012000001
26Apr2012000001
30May2012000001
28Jun2012000001
17Jul2012000001
30Aug2012000001
18May2011000001
24May2011000001
31May2011000001
Merci bcp de ton aide
cordialement
En fait il accepte pas "Option Explicit" et "Option Compare Text" et lorsque je les enleve.il ne donne pas le bn résultat
voici ce que j'ai obtenu avec ton code (en enlevant "Option Explicit" et "Option Compare Text" bien sur ) : (40 pour May ) et 0 pour les autres mois :
Jan Feb Mar Apr May jun jul aug
0 0 0 0 40 0 0 0 .........
le problème c'est que dans ma colonne L , il ya les mois qui se repètent , car il ya les comandes de 2011 jusqu'à 2013 cad on peut trouver May2011 ,May2012,May2013 .donc j'aimerai bien que le code tient compte de l'année aussi et de l'aficher . voici les infos exact de ma colonnes L :
05May2011000001
13May2011000001
19May2011000001
25May2011000001
06Jun2011000001
15Jun2011000001
23Jun2011000001
30Jun2011000001
11Jul2011000001
09Aug2011000001
22Aug2011000001
26Aug2011000001
02Sep2011000001
12Sep2011000001
19Sep2011000001
26Sep2011000001
03Oct2011000001
07Oct2011000001
17Oct2011000001
24Oct2011000001
03Nov2011000001
10Nov2011000001
17Nov2011000001
24Nov2011000001
01Dec2011000001
07Dec2011000001
13Dec2011000001
20Dec2011000001
05Jan2012000001
12Jan2012000001
18Jan2012000001
26Jan2012000001
01Feb2012000001
07Feb2012000001
14Feb2012000001
21Feb2012000001
29Feb2012000001
06Mar2012000001
13Mar2012000001
20Mar2012000001
27Mar2012000001
30Mar2012000001
05Apr2012000001
16Apr2012000001
26Apr2012000001
30May2012000001
28Jun2012000001
17Jul2012000001
30Aug2012000001
18May2011000001
24May2011000001
31May2011000001
Merci bcp de ton aide
cordialement
ah . excuse-moi j'été con.( il n'est ya pas de souci pour "Option Explicit" et "Option Compare Text")
la partie somme des cdes marche très bien . En faite , il faut juste rajouter l'année et d'associer la somme des cmd de la manière suivante:
Jan2011 Feb2011 Mar2011 Apr2011 May2011 ........Jan2012 Feb2012..... .
0 0 0 0 40 40 50 ......
bien cordialement
la partie somme des cdes marche très bien . En faite , il faut juste rajouter l'année et d'associer la somme des cmd de la manière suivante:
Jan2011 Feb2011 Mar2011 Apr2011 May2011 ........Jan2012 Feb2012..... .
0 0 0 0 40 40 50 ......
bien cordialement
Une chose à la fois...
En fait il accepte pas "Option Explicit" et "Option Compare Text" Ça c'est pas possible, où tu met le code ?
Et quel Appli ? Excel ?
En fait il accepte pas "Option Explicit" et "Option Compare Text" Ça c'est pas possible, où tu met le code ?
Et quel Appli ? Excel ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ah . excuse-moi j'été con.( il n'est ya pas de souci pour "Option Explicit" et "Option Compare Text")
la partie somme des cdes marche très bien . En faite , il faut juste rajouter l'année et d'associer la somme des cmd de la manière suivante:
Jan2011 Feb2011 Mar2011 Apr2011 May2011 ........Jan2012 Feb2012..... .
0 0 0 0 40 ......40 50 ......
bien cordialement
la partie somme des cdes marche très bien . En faite , il faut juste rajouter l'année et d'associer la somme des cmd de la manière suivante:
Jan2011 Feb2011 Mar2011 Apr2011 May2011 ........Jan2012 Feb2012..... .
0 0 0 0 40 ......40 50 ......
bien cordialement
En fonction du code que je t'ai mis plus haut, réfléchi et essaye d'extrapoler pour avoir plus de données.
Une piste.. Faut autant de résultat que d'années * 12
Faut tester année ET le mois
Montre le code que tu peu générer à partir de ces pistes.
Une piste.. Faut autant de résultat que d'années * 12
Faut tester année ET le mois
Montre le code que tu peu générer à partir de ces pistes.
ok , merci bcp pour ton aide . je vais reflichir à ça et je te tiens au courant du résultat.
merci bcp une autre fois
merci bcp une autre fois
Bonjour ;
je reviens vers vous ,
En fait j'ai modifié un peu tn code "lermite2222" en rajoutant un autre tableau pour l'année 2012 ( au moins ça va me résoudre le pb pour 2 ans )
voici les modif :
Option Explicit
Option Compare Text
Sub test()
Dim T, Lig As Long, Mois As Integer, TB(), TB1(), Result(12), Result1(12) As Integer
TB = Array(" ", "Jan2011", "Feb2011", "Mar2011", "Apr2011", "May2011", "jun2011", "jul2011", "aug2011", "sep2011", "oct2011", "nov2011", "dec2011")
TB1 = Array(" ", "Jan2012", "Feb2012", "Mar2012", "Apr2012", "May2012", "jun2012", "jul2012", "aug2012", "sep2012", "oct2012", "nov2012", "dec2012")
For Lig = 1 To [L65536].End(xlUp).Row
For Mois = 1 To 12
If Cells(Lig, "L") Like "*" & TB(Mois) & "*" Then
Result(Mois) = Result(Mois) + Cells(Lig, "K")
Else
If Cells(Lig, "L") Like "*" & TB1(Mois) & "*" Then
Result1(Mois) = Result1(Mois) + Cells(Lig, "K")
Exit For
End If
End If
Next Mois
Next
Sheets("Feuil2").Activate
For Mois = 1 To 12
Cells(2, Mois + 1) = TB(Mois)
Cells(3, Mois + 1) = Result(Mois)
Cells(5, Mois + 1) = TB1(Mois)
Cells(6, Mois + 1) = Result1(Mois)
Next
End Sub
-----------------------------------------------------------------------
là j'aimerai faire la somme pour chaque article (la colonne A de mon fichier contient la références des article) et de les afficher :
exemple de ce que je veux :
Feuil2 :
Articl1 janv-11 févr-11 mars-11 avr-11 mai-11 juin-11 .....
0 0 0 0 70 70
janv-12 févr-12 mars-12 avr-12 mai-12 juin-12 ....
90 90 100 128 82 34
Articl2 janv-11 févr-11 mars-11 avr-11 mai-11 juin-11 ....
10 20 15 10 0 0
janv-12 févr-12 mars-12 avr-12 mai-12 juin-12 ...
12 42 10 10 0 10 10
Merci d'avance
cordialement
je reviens vers vous ,
En fait j'ai modifié un peu tn code "lermite2222" en rajoutant un autre tableau pour l'année 2012 ( au moins ça va me résoudre le pb pour 2 ans )
voici les modif :
Option Explicit
Option Compare Text
Sub test()
Dim T, Lig As Long, Mois As Integer, TB(), TB1(), Result(12), Result1(12) As Integer
TB = Array(" ", "Jan2011", "Feb2011", "Mar2011", "Apr2011", "May2011", "jun2011", "jul2011", "aug2011", "sep2011", "oct2011", "nov2011", "dec2011")
TB1 = Array(" ", "Jan2012", "Feb2012", "Mar2012", "Apr2012", "May2012", "jun2012", "jul2012", "aug2012", "sep2012", "oct2012", "nov2012", "dec2012")
For Lig = 1 To [L65536].End(xlUp).Row
For Mois = 1 To 12
If Cells(Lig, "L") Like "*" & TB(Mois) & "*" Then
Result(Mois) = Result(Mois) + Cells(Lig, "K")
Else
If Cells(Lig, "L") Like "*" & TB1(Mois) & "*" Then
Result1(Mois) = Result1(Mois) + Cells(Lig, "K")
Exit For
End If
End If
Next Mois
Next
Sheets("Feuil2").Activate
For Mois = 1 To 12
Cells(2, Mois + 1) = TB(Mois)
Cells(3, Mois + 1) = Result(Mois)
Cells(5, Mois + 1) = TB1(Mois)
Cells(6, Mois + 1) = Result1(Mois)
Next
End Sub
-----------------------------------------------------------------------
là j'aimerai faire la somme pour chaque article (la colonne A de mon fichier contient la références des article) et de les afficher :
exemple de ce que je veux :
Feuil2 :
Articl1 janv-11 févr-11 mars-11 avr-11 mai-11 juin-11 .....
0 0 0 0 70 70
janv-12 févr-12 mars-12 avr-12 mai-12 juin-12 ....
90 90 100 128 82 34
Articl2 janv-11 févr-11 mars-11 avr-11 mai-11 juin-11 ....
10 20 15 10 0 0
janv-12 févr-12 mars-12 avr-12 mai-12 juin-12 ...
12 42 10 10 0 10 10
Merci d'avance
cordialement
Une chose à la fois...
La macro optimisée pour les années de 2008 à 2020.
A+
Toute la connaissance du monde ne peu tenir dans une seul tête (moi)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
La macro optimisée pour les années de 2008 à 2020.
Option Compare Text Sub H() Dim Annee As Integer, Lig As Long, Mois As Integer, TB(), Result(2008 To 2020, 12) As Integer TB = Array(" ", "Jan", "Fév", "Mar", "Avr", "May", "jun", "jul", "aug", "sep", "oct", "nov", "déc") Sheets("Feuil1").Select For Lig = 1 To [L65536].End(xlUp).Row For Annee = 2008 To 2020 If Cells(Lig, "L") Like "*" & CStr(Annee) & "*" Then For Mois = 1 To 12 If Cells(Lig, "L") Like "*" & TB(Mois) & "*" Then Result(Annee, Mois) = Result(Annee, Mois) + Cells(Lig, "K") Exit For End If Next Mois Exit For End If Next Annee Next Lig Sheets("Feuil2").Activate For Mois = 1 To 12 Cells(2, Mois + 1) = TB(Mois) Next Mois For Annee = 2011 To 2012 'Adapter les années à afficher Cells(Annee - 2008, 1) = Annee For Mois = 1 To 12 Cells(Annee - 2008, Mois + 1) = Result(Annee, Mois) Next Mois Next Annee End SubEt je pense que ça répond aussi à ta 2ièm question.
A+
Toute la connaissance du monde ne peu tenir dans une seul tête (moi)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.