Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
3 Produit deux 15 (2+4+9) 7
Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
En simplifier et par exemple (ne pas tenir compte de cellules)
Sur la feuille "Sales" j'aurais
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Et voilà
J'espère avoir allumé une petite bougie quelque part
Merci
A bientôt
Rex
"FFO" a écrit dans le message de news:Re bonjours Rex
Je vois que l'on se surpasse en matière de macro
Et avec de beaux résultats !!!!
Mais si tu vois pas d'inconvénient je vais revenir au premier code que je
t'ai proposé avec la correction adéquate pour recopier uniquement la somme
dans la 2° cellule de la colonne K
Voici ce nouveau code :
Sheets("Sales").Select
R = 0
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
R = R + Range("BP" & l)
End If
Next
Sheets("TargetsVSSales").Range("K2") = R
Voilà donc pour la première partie
Celà te convient-il ???
Concernant la 2° partie
Je ne comprends pas que d'un côté on prenne en compte toutes les lignes de
la colonne A situées entre 2 dates d'un côté pour faire la somme des
ventescorrespondantes situées colonne BP et faire une différence en fonction des
nom de colonnes P à DO
Le résultat quelque soit ces colonnes sera toujours identiques considérant
toujours les mêmes lignes (même intervale de dates) et la même colonne
pourla somme des ventes colonne BP
Il serait bon que tu éclaircisses ma lanterne pour de proposer la solution
adaptée
Dans l'attenteEt oui
Trois réponses consécutive
J'ai un peu "bidouillé" ton code
et ceci fonctionne
MAIS
il ne me compte plus qu'une valeur et plus toutes les valeurs du même
moisJ'ai changé les dates et ajouté les lignes de fin pour faire ce que je
proposais
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sheets("TargetsVSSales").Select
Range("K25").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/05/2007") And c <= CDate("31/05/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TargetsVSSales").Select
Range("AA2").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Sheets("TargetsVSSales").Select
Range("AA1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[+500]C:R[+1]C)"
Range("AA1").Copy
Sheets("TargetsVSSales").Range("K25").Pastespecial Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A bientôt
Rex
"FFO" a écrit dans le message de news:Salut Rex
J'avoue n'avoir pas tout compris dans ta demande surtout la dernière
partie
En ce qui concerne
Récupérer et additioner (par exemple) toutes les ventes de la colonnes
BPdela feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est entre
le1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K (les
ventesdu mois de janvier)
Je te propose ce code qui fonctionne :
Sheets("TagetsVSSales").Select
Range("K2").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TagetsVSSales").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
End If
Next
Cette première partie te convient elle ???
Peux tu apporter des précisions pour la suite
MerciBonjour
Encore une requête pas facile à expliquer
Mais j'espère pouvoir (encore une fois) compter sur vous
Voici
Sur une feuille "Sales"
J'ai toutes mes ventes
Chaque vente est sur une ligne en A la date, en B le nom, en C la
société,etc
A partir de P j'ai mes produits
Je cherche, pour mes statistiques, à récupérer les ventes par mois
ET OUI JE SAIS que je peux le faire par TDC mais je cherche à créer
unfichier utilisable par tous sans trop de connaissances
Donc ce que je voudrais est ceci
Récupérer et additioner (par exemple) toutes les ventes de la
colonnesBP dela feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est entre
le1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K (les
ventesdu mois de janvier)
A mon avis je vais être obligé de passer par macro
Et si c'est le cas il faut tenir compte de ce qui suit
La ligne 1 de la feuille "Sales" comprend (de la colonne P à la
colonneDO)comme titre tous les nom de produits (mais pas consécutif !!!!)
Et, sur ma feuille "TargetsVSales" entre J25 et J45 ces mêmes noms
parordrealphabétique (uniquement les plus courants)
Tous les noms de mes produits sont définis dans une liste appellées
"TS_Sales_Products" et les mois dans une liste "TS_Monh-th"
Si nécessaire je peux poster le fichier
MAIS il est encore très "désordonné" et pas léger (500k)
En tous les cas merci et à bientôt
Rex
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
3 Produit deux 15 (2+4+9) 7
Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
En simplifier et par exemple (ne pas tenir compte de cellules)
Sur la feuille "Sales" j'aurais
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Et voilà
J'espère avoir allumé une petite bougie quelque part
Merci
A bientôt
Rex
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
942DA5FC-F1B6-450C-B708-7435AA2D6A45@microsoft.com...
Re bonjours Rex
Je vois que l'on se surpasse en matière de macro
Et avec de beaux résultats !!!!
Mais si tu vois pas d'inconvénient je vais revenir au premier code que je
t'ai proposé avec la correction adéquate pour recopier uniquement la somme
dans la 2° cellule de la colonne K
Voici ce nouveau code :
Sheets("Sales").Select
R = 0
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
R = R + Range("BP" & l)
End If
Next
Sheets("TargetsVSSales").Range("K2") = R
Voilà donc pour la première partie
Celà te convient-il ???
Concernant la 2° partie
Je ne comprends pas que d'un côté on prenne en compte toutes les lignes de
la colonne A situées entre 2 dates d'un côté pour faire la somme des
ventes
correspondantes situées colonne BP et faire une différence en fonction des
nom de colonnes P à DO
Le résultat quelque soit ces colonnes sera toujours identiques considérant
toujours les mêmes lignes (même intervale de dates) et la même colonne
pour
la somme des ventes colonne BP
Il serait bon que tu éclaircisses ma lanterne pour de proposer la solution
adaptée
Dans l'attente
Et oui
Trois réponses consécutive
J'ai un peu "bidouillé" ton code
et ceci fonctionne
MAIS
il ne me compte plus qu'une valeur et plus toutes les valeurs du même
mois
J'ai changé les dates et ajouté les lignes de fin pour faire ce que je
proposais
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sheets("TargetsVSSales").Select
Range("K25").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/05/2007") And c <= CDate("31/05/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TargetsVSSales").Select
Range("AA2").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Sheets("TargetsVSSales").Select
Range("AA1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[+500]C:R[+1]C)"
Range("AA1").Copy
Sheets("TargetsVSSales").Range("K25").Pastespecial Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A bientôt
Rex
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
88F38631-D184-4FE7-9256-1649894E102C@microsoft.com...
Salut Rex
J'avoue n'avoir pas tout compris dans ta demande surtout la dernière
partie
En ce qui concerne
Récupérer et additioner (par exemple) toutes les ventes de la colonnes
BP
de
la feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est entre
le
1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K (les
ventes
du mois de janvier)
Je te propose ce code qui fonctionne :
Sheets("TagetsVSSales").Select
Range("K2").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TagetsVSSales").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
End If
Next
Cette première partie te convient elle ???
Peux tu apporter des précisions pour la suite
Merci
Bonjour
Encore une requête pas facile à expliquer
Mais j'espère pouvoir (encore une fois) compter sur vous
Voici
Sur une feuille "Sales"
J'ai toutes mes ventes
Chaque vente est sur une ligne en A la date, en B le nom, en C la
société,
etc
A partir de P j'ai mes produits
Je cherche, pour mes statistiques, à récupérer les ventes par mois
ET OUI JE SAIS que je peux le faire par TDC mais je cherche à créer
un
fichier utilisable par tous sans trop de connaissances
Donc ce que je voudrais est ceci
Récupérer et additioner (par exemple) toutes les ventes de la
colonnes
BP de
la feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est entre
le
1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K (les
ventes
du mois de janvier)
A mon avis je vais être obligé de passer par macro
Et si c'est le cas il faut tenir compte de ce qui suit
La ligne 1 de la feuille "Sales" comprend (de la colonne P à la
colonne
DO)
comme titre tous les nom de produits (mais pas consécutif !!!!)
Et, sur ma feuille "TargetsVSales" entre J25 et J45 ces mêmes noms
par
ordre
alphabétique (uniquement les plus courants)
Tous les noms de mes produits sont définis dans une liste appellées
"TS_Sales_Products" et les mois dans une liste "TS_Monh-th"
Si nécessaire je peux poster le fichier
MAIS il est encore très "désordonné" et pas léger (500k)
En tous les cas merci et à bientôt
Rex
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
3 Produit deux 15 (2+4+9) 7
Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
En simplifier et par exemple (ne pas tenir compte de cellules)
Sur la feuille "Sales" j'aurais
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Et voilà
J'espère avoir allumé une petite bougie quelque part
Merci
A bientôt
Rex
"FFO" a écrit dans le message de news:Re bonjours Rex
Je vois que l'on se surpasse en matière de macro
Et avec de beaux résultats !!!!
Mais si tu vois pas d'inconvénient je vais revenir au premier code que je
t'ai proposé avec la correction adéquate pour recopier uniquement la somme
dans la 2° cellule de la colonne K
Voici ce nouveau code :
Sheets("Sales").Select
R = 0
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
R = R + Range("BP" & l)
End If
Next
Sheets("TargetsVSSales").Range("K2") = R
Voilà donc pour la première partie
Celà te convient-il ???
Concernant la 2° partie
Je ne comprends pas que d'un côté on prenne en compte toutes les lignes de
la colonne A situées entre 2 dates d'un côté pour faire la somme des
ventescorrespondantes situées colonne BP et faire une différence en fonction des
nom de colonnes P à DO
Le résultat quelque soit ces colonnes sera toujours identiques considérant
toujours les mêmes lignes (même intervale de dates) et la même colonne
pourla somme des ventes colonne BP
Il serait bon que tu éclaircisses ma lanterne pour de proposer la solution
adaptée
Dans l'attenteEt oui
Trois réponses consécutive
J'ai un peu "bidouillé" ton code
et ceci fonctionne
MAIS
il ne me compte plus qu'une valeur et plus toutes les valeurs du même
moisJ'ai changé les dates et ajouté les lignes de fin pour faire ce que je
proposais
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sheets("TargetsVSSales").Select
Range("K25").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/05/2007") And c <= CDate("31/05/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TargetsVSSales").Select
Range("AA2").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Sheets("TargetsVSSales").Select
Range("AA1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[+500]C:R[+1]C)"
Range("AA1").Copy
Sheets("TargetsVSSales").Range("K25").Pastespecial Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A bientôt
Rex
"FFO" a écrit dans le message de news:Salut Rex
J'avoue n'avoir pas tout compris dans ta demande surtout la dernière
partie
En ce qui concerne
Récupérer et additioner (par exemple) toutes les ventes de la colonnes
BPdela feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est entre
le1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K (les
ventesdu mois de janvier)
Je te propose ce code qui fonctionne :
Sheets("TagetsVSSales").Select
Range("K2").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TagetsVSSales").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
End If
Next
Cette première partie te convient elle ???
Peux tu apporter des précisions pour la suite
MerciBonjour
Encore une requête pas facile à expliquer
Mais j'espère pouvoir (encore une fois) compter sur vous
Voici
Sur une feuille "Sales"
J'ai toutes mes ventes
Chaque vente est sur une ligne en A la date, en B le nom, en C la
société,etc
A partir de P j'ai mes produits
Je cherche, pour mes statistiques, à récupérer les ventes par mois
ET OUI JE SAIS que je peux le faire par TDC mais je cherche à créer
unfichier utilisable par tous sans trop de connaissances
Donc ce que je voudrais est ceci
Récupérer et additioner (par exemple) toutes les ventes de la
colonnesBP dela feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est entre
le1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K (les
ventesdu mois de janvier)
A mon avis je vais être obligé de passer par macro
Et si c'est le cas il faut tenir compte de ce qui suit
La ligne 1 de la feuille "Sales" comprend (de la colonne P à la
colonneDO)comme titre tous les nom de produits (mais pas consécutif !!!!)
Et, sur ma feuille "TargetsVSales" entre J25 et J45 ces mêmes noms
parordrealphabétique (uniquement les plus courants)
Tous les noms de mes produits sont définis dans une liste appellées
"TS_Sales_Products" et les mois dans une liste "TS_Monh-th"
Si nécessaire je peux poster le fichier
MAIS il est encore très "désordonné" et pas léger (500k)
En tous les cas merci et à bientôt
Rex
Bonjours Rex
Fort des derniers élément que tu m'as donnés
Je te propose ce code qui devrait faire pour l'ensemble de tes attentes
'Demande dans une boîte de dialogue du mois à traiter
Mois = InputBox("saisissez le Mois", "Mois traité")
'Recherche de la bonne colonne à alimenter feuille ("TargetsVSSales")
Sheets("TargetsVSSales").Select
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
'1° boucle traitant chaque produit feuille ("Sales") identifié entre B1
et
C1 (à adapter)
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range("B1", "C1")
R = 0
'2° boucle traitant le produit de la 1° boucle
Sheets("Sales").Select
For Each d In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If d >= CDate("01/01/2007") And d <= CDate("31/01/2007") Then
l = d.Row
R = R + Range(Mid(c.Address, 2, 1) & l)
End If
Next
'Recopie du résultat du produit dans la feuille (("TargetsVSSales")
Sheets("TargetsVSSales").Select
'Recherche du nom du produit colonne A (à adapter)
For Each e In Worksheets("TargetsVSSales").Range([A2], [A65535].End(xlUp))
If e = c Then
'Recopie du résultat dans la bonne cellule
Range(Mid(Mois, 2, 1) & e.Row) = R
Exit For
End If
Next
Next
Je te propose de tester en l'état ce code avec l'exemple que tu m'as
fourni :
1 Date Produit un Produit deux2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Avant d'entamer des modifications en fonction de tes besoins
Une dernière interrogation dans ces paramètres
Lignes :
2 Produit un 8 (5+2+1) 43 Produit deux 15 (2+4+9) 7
Que reprèsente le dernier chiffre de chaque ligne : 4 et 7 ???
Merci pour la précision
Dans l'attente de tes impressions !!!Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
En simplifier et par exemple (ne pas tenir compte de cellules)
Sur la feuille "Sales" j'aurais
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier
Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Et voilà
J'espère avoir allumé une petite bougie quelque part
Merci
A bientôt
Rex
"FFO" a écrit dans le message de news:Re bonjours Rex
Je vois que l'on se surpasse en matière de macro
Et avec de beaux résultats !!!!
Mais si tu vois pas d'inconvénient je vais revenir au premier code que
je
t'ai proposé avec la correction adéquate pour recopier uniquement la
somme
dans la 2° cellule de la colonne K
Voici ce nouveau code :
Sheets("Sales").Select
R = 0
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
R = R + Range("BP" & l)
End If
Next
Sheets("TargetsVSSales").Range("K2") = R
Voilà donc pour la première partie
Celà te convient-il ???
Concernant la 2° partie
Je ne comprends pas que d'un côté on prenne en compte toutes les lignes
de
la colonne A situées entre 2 dates d'un côté pour faire la somme des
ventescorrespondantes situées colonne BP et faire une différence en fonction
des
nom de colonnes P à DO
Le résultat quelque soit ces colonnes sera toujours identiques
considérant
toujours les mêmes lignes (même intervale de dates) et la même colonne
pourla somme des ventes colonne BP
Il serait bon que tu éclaircisses ma lanterne pour de proposer la
solution
adaptée
Dans l'attenteEt oui
Trois réponses consécutive
J'ai un peu "bidouillé" ton code
et ceci fonctionne
MAIS
il ne me compte plus qu'une valeur et plus toutes les valeurs du même
moisJ'ai changé les dates et ajouté les lignes de fin pour faire ce que
je
proposais
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sheets("TargetsVSSales").Select
Range("K25").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/05/2007") And c <= CDate("31/05/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TargetsVSSales").Select
Range("AA2").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Sheets("TargetsVSSales").Select
Range("AA1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[+500]C:R[+1]C)"
Range("AA1").Copy
Sheets("TargetsVSSales").Range("K25").Pastespecial
Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A bientôt
Rex
"FFO" a écrit dans le message de
news:Salut Rex
J'avoue n'avoir pas tout compris dans ta demande surtout la
dernière
partie
En ce qui concerne
Récupérer et additioner (par exemple) toutes les ventes de la
colonnes
BPdela feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est
entre
le1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K
(les
ventesdu mois de janvier)
Je te propose ce code qui fonctionne :
Sheets("TagetsVSSales").Select
Range("K2").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TagetsVSSales").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
End If
Next
Cette première partie te convient elle ???
Peux tu apporter des précisions pour la suite
MerciBonjour
Encore une requête pas facile à expliquer
Mais j'espère pouvoir (encore une fois) compter sur vous
Voici
Sur une feuille "Sales"
J'ai toutes mes ventes
Chaque vente est sur une ligne en A la date, en B le nom, en C
la
société,etc
A partir de P j'ai mes produits
Je cherche, pour mes statistiques, à récupérer les ventes par
mois
ET OUI JE SAIS que je peux le faire par TDC mais je cherche à
créer
unfichier utilisable par tous sans trop de connaissances
Donc ce que je voudrais est ceci
Récupérer et additioner (par exemple) toutes les ventes de la
colonnesBP dela feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est
entre
le1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K
(les
ventesdu mois de janvier)
A mon avis je vais être obligé de passer par macro
Et si c'est le cas il faut tenir compte de ce qui suit
La ligne 1 de la feuille "Sales" comprend (de la colonne P à la
colonneDO)comme titre tous les nom de produits (mais pas consécutif !!!!)
Et, sur ma feuille "TargetsVSales" entre J25 et J45 ces mêmes
noms
parordrealphabétique (uniquement les plus courants)
Tous les noms de mes produits sont définis dans une liste
appellées
"TS_Sales_Products" et les mois dans une liste "TS_Monh-th"
Si nécessaire je peux poster le fichier
MAIS il est encore très "désordonné" et pas léger (500k)
En tous les cas merci et à bientôt
Rex
Bonjours Rex
Fort des derniers élément que tu m'as donnés
Je te propose ce code qui devrait faire pour l'ensemble de tes attentes
'Demande dans une boîte de dialogue du mois à traiter
Mois = InputBox("saisissez le Mois", "Mois traité")
'Recherche de la bonne colonne à alimenter feuille ("TargetsVSSales")
Sheets("TargetsVSSales").Select
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
'1° boucle traitant chaque produit feuille ("Sales") identifié entre B1
et
C1 (à adapter)
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range("B1", "C1")
R = 0
'2° boucle traitant le produit de la 1° boucle
Sheets("Sales").Select
For Each d In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If d >= CDate("01/01/2007") And d <= CDate("31/01/2007") Then
l = d.Row
R = R + Range(Mid(c.Address, 2, 1) & l)
End If
Next
'Recopie du résultat du produit dans la feuille (("TargetsVSSales")
Sheets("TargetsVSSales").Select
'Recherche du nom du produit colonne A (à adapter)
For Each e In Worksheets("TargetsVSSales").Range([A2], [A65535].End(xlUp))
If e = c Then
'Recopie du résultat dans la bonne cellule
Range(Mid(Mois, 2, 1) & e.Row) = R
Exit For
End If
Next
Next
Je te propose de tester en l'état ce code avec l'exemple que tu m'as
fourni :
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Avant d'entamer des modifications en fonction de tes besoins
Une dernière interrogation dans ces paramètres
Lignes :
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Que reprèsente le dernier chiffre de chaque ligne : 4 et 7 ???
Merci pour la précision
Dans l'attente de tes impressions !!!
Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
En simplifier et par exemple (ne pas tenir compte de cellules)
Sur la feuille "Sales" j'aurais
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier
Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Et voilà
J'espère avoir allumé une petite bougie quelque part
Merci
A bientôt
Rex
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
942DA5FC-F1B6-450C-B708-7435AA2D6A45@microsoft.com...
Re bonjours Rex
Je vois que l'on se surpasse en matière de macro
Et avec de beaux résultats !!!!
Mais si tu vois pas d'inconvénient je vais revenir au premier code que
je
t'ai proposé avec la correction adéquate pour recopier uniquement la
somme
dans la 2° cellule de la colonne K
Voici ce nouveau code :
Sheets("Sales").Select
R = 0
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
R = R + Range("BP" & l)
End If
Next
Sheets("TargetsVSSales").Range("K2") = R
Voilà donc pour la première partie
Celà te convient-il ???
Concernant la 2° partie
Je ne comprends pas que d'un côté on prenne en compte toutes les lignes
de
la colonne A situées entre 2 dates d'un côté pour faire la somme des
ventes
correspondantes situées colonne BP et faire une différence en fonction
des
nom de colonnes P à DO
Le résultat quelque soit ces colonnes sera toujours identiques
considérant
toujours les mêmes lignes (même intervale de dates) et la même colonne
pour
la somme des ventes colonne BP
Il serait bon que tu éclaircisses ma lanterne pour de proposer la
solution
adaptée
Dans l'attente
Et oui
Trois réponses consécutive
J'ai un peu "bidouillé" ton code
et ceci fonctionne
MAIS
il ne me compte plus qu'une valeur et plus toutes les valeurs du même
mois
J'ai changé les dates et ajouté les lignes de fin pour faire ce que
je
proposais
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sheets("TargetsVSSales").Select
Range("K25").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/05/2007") And c <= CDate("31/05/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TargetsVSSales").Select
Range("AA2").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Sheets("TargetsVSSales").Select
Range("AA1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[+500]C:R[+1]C)"
Range("AA1").Copy
Sheets("TargetsVSSales").Range("K25").Pastespecial
Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A bientôt
Rex
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de
news:
88F38631-D184-4FE7-9256-1649894E102C@microsoft.com...
Salut Rex
J'avoue n'avoir pas tout compris dans ta demande surtout la
dernière
partie
En ce qui concerne
Récupérer et additioner (par exemple) toutes les ventes de la
colonnes
BP
de
la feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est
entre
le
1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K
(les
ventes
du mois de janvier)
Je te propose ce code qui fonctionne :
Sheets("TagetsVSSales").Select
Range("K2").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TagetsVSSales").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
End If
Next
Cette première partie te convient elle ???
Peux tu apporter des précisions pour la suite
Merci
Bonjour
Encore une requête pas facile à expliquer
Mais j'espère pouvoir (encore une fois) compter sur vous
Voici
Sur une feuille "Sales"
J'ai toutes mes ventes
Chaque vente est sur une ligne en A la date, en B le nom, en C
la
société,
etc
A partir de P j'ai mes produits
Je cherche, pour mes statistiques, à récupérer les ventes par
mois
ET OUI JE SAIS que je peux le faire par TDC mais je cherche à
créer
un
fichier utilisable par tous sans trop de connaissances
Donc ce que je voudrais est ceci
Récupérer et additioner (par exemple) toutes les ventes de la
colonnes
BP de
la feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est
entre
le
1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K
(les
ventes
du mois de janvier)
A mon avis je vais être obligé de passer par macro
Et si c'est le cas il faut tenir compte de ce qui suit
La ligne 1 de la feuille "Sales" comprend (de la colonne P à la
colonne
DO)
comme titre tous les nom de produits (mais pas consécutif !!!!)
Et, sur ma feuille "TargetsVSales" entre J25 et J45 ces mêmes
noms
par
ordre
alphabétique (uniquement les plus courants)
Tous les noms de mes produits sont définis dans une liste
appellées
"TS_Sales_Products" et les mois dans une liste "TS_Monh-th"
Si nécessaire je peux poster le fichier
MAIS il est encore très "désordonné" et pas léger (500k)
En tous les cas merci et à bientôt
Rex
Bonjours Rex
Fort des derniers élément que tu m'as donnés
Je te propose ce code qui devrait faire pour l'ensemble de tes attentes
'Demande dans une boîte de dialogue du mois à traiter
Mois = InputBox("saisissez le Mois", "Mois traité")
'Recherche de la bonne colonne à alimenter feuille ("TargetsVSSales")
Sheets("TargetsVSSales").Select
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
'1° boucle traitant chaque produit feuille ("Sales") identifié entre B1
et
C1 (à adapter)
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range("B1", "C1")
R = 0
'2° boucle traitant le produit de la 1° boucle
Sheets("Sales").Select
For Each d In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If d >= CDate("01/01/2007") And d <= CDate("31/01/2007") Then
l = d.Row
R = R + Range(Mid(c.Address, 2, 1) & l)
End If
Next
'Recopie du résultat du produit dans la feuille (("TargetsVSSales")
Sheets("TargetsVSSales").Select
'Recherche du nom du produit colonne A (à adapter)
For Each e In Worksheets("TargetsVSSales").Range([A2], [A65535].End(xlUp))
If e = c Then
'Recopie du résultat dans la bonne cellule
Range(Mid(Mois, 2, 1) & e.Row) = R
Exit For
End If
Next
Next
Je te propose de tester en l'état ce code avec l'exemple que tu m'as
fourni :
1 Date Produit un Produit deux2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Avant d'entamer des modifications en fonction de tes besoins
Une dernière interrogation dans ces paramètres
Lignes :
2 Produit un 8 (5+2+1) 43 Produit deux 15 (2+4+9) 7
Que reprèsente le dernier chiffre de chaque ligne : 4 et 7 ???
Merci pour la précision
Dans l'attente de tes impressions !!!Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
En simplifier et par exemple (ne pas tenir compte de cellules)
Sur la feuille "Sales" j'aurais
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier
Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Et voilà
J'espère avoir allumé une petite bougie quelque part
Merci
A bientôt
Rex
"FFO" a écrit dans le message de news:Re bonjours Rex
Je vois que l'on se surpasse en matière de macro
Et avec de beaux résultats !!!!
Mais si tu vois pas d'inconvénient je vais revenir au premier code que
je
t'ai proposé avec la correction adéquate pour recopier uniquement la
somme
dans la 2° cellule de la colonne K
Voici ce nouveau code :
Sheets("Sales").Select
R = 0
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
R = R + Range("BP" & l)
End If
Next
Sheets("TargetsVSSales").Range("K2") = R
Voilà donc pour la première partie
Celà te convient-il ???
Concernant la 2° partie
Je ne comprends pas que d'un côté on prenne en compte toutes les lignes
de
la colonne A situées entre 2 dates d'un côté pour faire la somme des
ventescorrespondantes situées colonne BP et faire une différence en fonction
des
nom de colonnes P à DO
Le résultat quelque soit ces colonnes sera toujours identiques
considérant
toujours les mêmes lignes (même intervale de dates) et la même colonne
pourla somme des ventes colonne BP
Il serait bon que tu éclaircisses ma lanterne pour de proposer la
solution
adaptée
Dans l'attenteEt oui
Trois réponses consécutive
J'ai un peu "bidouillé" ton code
et ceci fonctionne
MAIS
il ne me compte plus qu'une valeur et plus toutes les valeurs du même
moisJ'ai changé les dates et ajouté les lignes de fin pour faire ce que
je
proposais
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sheets("TargetsVSSales").Select
Range("K25").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/05/2007") And c <= CDate("31/05/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TargetsVSSales").Select
Range("AA2").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Sheets("TargetsVSSales").Select
Range("AA1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[+500]C:R[+1]C)"
Range("AA1").Copy
Sheets("TargetsVSSales").Range("K25").Pastespecial
Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A bientôt
Rex
"FFO" a écrit dans le message de
news:Salut Rex
J'avoue n'avoir pas tout compris dans ta demande surtout la
dernière
partie
En ce qui concerne
Récupérer et additioner (par exemple) toutes les ventes de la
colonnes
BPdela feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est
entre
le1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K
(les
ventesdu mois de janvier)
Je te propose ce code qui fonctionne :
Sheets("TagetsVSSales").Select
Range("K2").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TagetsVSSales").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
End If
Next
Cette première partie te convient elle ???
Peux tu apporter des précisions pour la suite
MerciBonjour
Encore une requête pas facile à expliquer
Mais j'espère pouvoir (encore une fois) compter sur vous
Voici
Sur une feuille "Sales"
J'ai toutes mes ventes
Chaque vente est sur une ligne en A la date, en B le nom, en C
la
société,etc
A partir de P j'ai mes produits
Je cherche, pour mes statistiques, à récupérer les ventes par
mois
ET OUI JE SAIS que je peux le faire par TDC mais je cherche à
créer
unfichier utilisable par tous sans trop de connaissances
Donc ce que je voudrais est ceci
Récupérer et additioner (par exemple) toutes les ventes de la
colonnesBP dela feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est
entre
le1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K
(les
ventesdu mois de janvier)
A mon avis je vais être obligé de passer par macro
Et si c'est le cas il faut tenir compte de ce qui suit
La ligne 1 de la feuille "Sales" comprend (de la colonne P à la
colonneDO)comme titre tous les nom de produits (mais pas consécutif !!!!)
Et, sur ma feuille "TargetsVSales" entre J25 et J45 ces mêmes
noms
parordrealphabétique (uniquement les plus courants)
Tous les noms de mes produits sont définis dans une liste
appellées
"TS_Sales_Products" et les mois dans une liste "TS_Monh-th"
Si nécessaire je peux poster le fichier
MAIS il est encore très "désordonné" et pas léger (500k)
En tous les cas merci et à bientôt
Rex
Bonsour® Rex avec ferveur ;o))) vous nous disiez :Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier
Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Et voilà ;o)))
sans macro, ni TCD
un petit mix de SOMMEPROD et DECALER...
http://cjoint.com/?fhaJcLcqQM
--
--
@+
;o)))
Bonsour® Rex avec ferveur ;o))) vous nous disiez :
Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier
Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Et voilà ;o)))
sans macro, ni TCD
un petit mix de SOMMEPROD et DECALER...
http://cjoint.com/?fhaJcLcqQM
--
--
@+
;o)))
Bonsour® Rex avec ferveur ;o))) vous nous disiez :Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier
Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Et voilà ;o)))
sans macro, ni TCD
un petit mix de SOMMEPROD et DECALER...
http://cjoint.com/?fhaJcLcqQM
--
--
@+
;o)))
Bonjours Rex
Fort des derniers élément que tu m'as donnés
Je te propose ce code qui devrait faire pour l'ensemble de tes attentes
'Demande dans une boîte de dialogue du mois à traiter
Mois = InputBox("saisissez le Mois", "Mois traité")
'Recherche de la bonne colonne à alimenter feuille ("TargetsVSSales")
Sheets("TargetsVSSales").Select
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
'1° boucle traitant chaque produit feuille ("Sales") identifié entre B1
et
C1 (à adapter)
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range("B1", "C1")
R = 0
'2° boucle traitant le produit de la 1° boucle
Sheets("Sales").Select
For Each d In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If d >= CDate("01/01/2007") And d <= CDate("31/01/2007") Then
l = d.Row
R = R + Range(Mid(c.Address, 2, 1) & l)
End If
Next
'Recopie du résultat du produit dans la feuille (("TargetsVSSales")
Sheets("TargetsVSSales").Select
'Recherche du nom du produit colonne A (à adapter)
For Each e In Worksheets("TargetsVSSales").Range([A2], [A65535].End(xlUp))
If e = c Then
'Recopie du résultat dans la bonne cellule
Range(Mid(Mois, 2, 1) & e.Row) = R
Exit For
End If
Next
Next
Je te propose de tester en l'état ce code avec l'exemple que tu m'as
fourni :
1 Date Produit un Produit deux2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Avant d'entamer des modifications en fonction de tes besoins
Une dernière interrogation dans ces paramètres
Lignes :
2 Produit un 8 (5+2+1) 43 Produit deux 15 (2+4+9) 7
Que reprèsente le dernier chiffre de chaque ligne : 4 et 7 ???
Merci pour la précision
Dans l'attente de tes impressions !!!Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
En simplifier et par exemple (ne pas tenir compte de cellules)
Sur la feuille "Sales" j'aurais
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier
Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Et voilà
J'espère avoir allumé une petite bougie quelque part
Merci
A bientôt
Rex
"FFO" a écrit dans le message de news:Re bonjours Rex
Je vois que l'on se surpasse en matière de macro
Et avec de beaux résultats !!!!
Mais si tu vois pas d'inconvénient je vais revenir au premier code que
je
t'ai proposé avec la correction adéquate pour recopier uniquement la
somme
dans la 2° cellule de la colonne K
Voici ce nouveau code :
Sheets("Sales").Select
R = 0
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
R = R + Range("BP" & l)
End If
Next
Sheets("TargetsVSSales").Range("K2") = R
Voilà donc pour la première partie
Celà te convient-il ???
Concernant la 2° partie
Je ne comprends pas que d'un côté on prenne en compte toutes les lignes
de
la colonne A situées entre 2 dates d'un côté pour faire la somme des
ventescorrespondantes situées colonne BP et faire une différence en fonction
des
nom de colonnes P à DO
Le résultat quelque soit ces colonnes sera toujours identiques
considérant
toujours les mêmes lignes (même intervale de dates) et la même colonne
pourla somme des ventes colonne BP
Il serait bon que tu éclaircisses ma lanterne pour de proposer la
solution
adaptée
Dans l'attenteEt oui
Trois réponses consécutive
J'ai un peu "bidouillé" ton code
et ceci fonctionne
MAIS
il ne me compte plus qu'une valeur et plus toutes les valeurs du même
moisJ'ai changé les dates et ajouté les lignes de fin pour faire ce que
je
proposais
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sheets("TargetsVSSales").Select
Range("K25").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/05/2007") And c <= CDate("31/05/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TargetsVSSales").Select
Range("AA2").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Sheets("TargetsVSSales").Select
Range("AA1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[+500]C:R[+1]C)"
Range("AA1").Copy
Sheets("TargetsVSSales").Range("K25").Pastespecial
Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A bientôt
Rex
"FFO" a écrit dans le message de
news:Salut Rex
J'avoue n'avoir pas tout compris dans ta demande surtout la
dernière
partie
En ce qui concerne
Récupérer et additioner (par exemple) toutes les ventes de la
colonnes
BPdela feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est
entre
le1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K
(les
ventesdu mois de janvier)
Je te propose ce code qui fonctionne :
Sheets("TagetsVSSales").Select
Range("K2").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TagetsVSSales").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
End If
Next
Cette première partie te convient elle ???
Peux tu apporter des précisions pour la suite
MerciBonjour
Encore une requête pas facile à expliquer
Mais j'espère pouvoir (encore une fois) compter sur vous
Voici
Sur une feuille "Sales"
J'ai toutes mes ventes
Chaque vente est sur une ligne en A la date, en B le nom, en C
la
société,etc
A partir de P j'ai mes produits
Je cherche, pour mes statistiques, à récupérer les ventes par
mois
ET OUI JE SAIS que je peux le faire par TDC mais je cherche à
créer
unfichier utilisable par tous sans trop de connaissances
Donc ce que je voudrais est ceci
Récupérer et additioner (par exemple) toutes les ventes de la
colonnesBP dela feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est
entre
le1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K
(les
ventesdu mois de janvier)
A mon avis je vais être obligé de passer par macro
Et si c'est le cas il faut tenir compte de ce qui suit
La ligne 1 de la feuille "Sales" comprend (de la colonne P à la
colonneDO)comme titre tous les nom de produits (mais pas consécutif !!!!)
Et, sur ma feuille "TargetsVSales" entre J25 et J45 ces mêmes
noms
parordrealphabétique (uniquement les plus courants)
Tous les noms de mes produits sont définis dans une liste
appellées
"TS_Sales_Products" et les mois dans une liste "TS_Monh-th"
Si nécessaire je peux poster le fichier
MAIS il est encore très "désordonné" et pas léger (500k)
En tous les cas merci et à bientôt
Rex
Bonjours Rex
Fort des derniers élément que tu m'as donnés
Je te propose ce code qui devrait faire pour l'ensemble de tes attentes
'Demande dans une boîte de dialogue du mois à traiter
Mois = InputBox("saisissez le Mois", "Mois traité")
'Recherche de la bonne colonne à alimenter feuille ("TargetsVSSales")
Sheets("TargetsVSSales").Select
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
'1° boucle traitant chaque produit feuille ("Sales") identifié entre B1
et
C1 (à adapter)
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range("B1", "C1")
R = 0
'2° boucle traitant le produit de la 1° boucle
Sheets("Sales").Select
For Each d In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If d >= CDate("01/01/2007") And d <= CDate("31/01/2007") Then
l = d.Row
R = R + Range(Mid(c.Address, 2, 1) & l)
End If
Next
'Recopie du résultat du produit dans la feuille (("TargetsVSSales")
Sheets("TargetsVSSales").Select
'Recherche du nom du produit colonne A (à adapter)
For Each e In Worksheets("TargetsVSSales").Range([A2], [A65535].End(xlUp))
If e = c Then
'Recopie du résultat dans la bonne cellule
Range(Mid(Mois, 2, 1) & e.Row) = R
Exit For
End If
Next
Next
Je te propose de tester en l'état ce code avec l'exemple que tu m'as
fourni :
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Avant d'entamer des modifications en fonction de tes besoins
Une dernière interrogation dans ces paramètres
Lignes :
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Que reprèsente le dernier chiffre de chaque ligne : 4 et 7 ???
Merci pour la précision
Dans l'attente de tes impressions !!!
Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
En simplifier et par exemple (ne pas tenir compte de cellules)
Sur la feuille "Sales" j'aurais
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier
Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Et voilà
J'espère avoir allumé une petite bougie quelque part
Merci
A bientôt
Rex
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
942DA5FC-F1B6-450C-B708-7435AA2D6A45@microsoft.com...
Re bonjours Rex
Je vois que l'on se surpasse en matière de macro
Et avec de beaux résultats !!!!
Mais si tu vois pas d'inconvénient je vais revenir au premier code que
je
t'ai proposé avec la correction adéquate pour recopier uniquement la
somme
dans la 2° cellule de la colonne K
Voici ce nouveau code :
Sheets("Sales").Select
R = 0
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
R = R + Range("BP" & l)
End If
Next
Sheets("TargetsVSSales").Range("K2") = R
Voilà donc pour la première partie
Celà te convient-il ???
Concernant la 2° partie
Je ne comprends pas que d'un côté on prenne en compte toutes les lignes
de
la colonne A situées entre 2 dates d'un côté pour faire la somme des
ventes
correspondantes situées colonne BP et faire une différence en fonction
des
nom de colonnes P à DO
Le résultat quelque soit ces colonnes sera toujours identiques
considérant
toujours les mêmes lignes (même intervale de dates) et la même colonne
pour
la somme des ventes colonne BP
Il serait bon que tu éclaircisses ma lanterne pour de proposer la
solution
adaptée
Dans l'attente
Et oui
Trois réponses consécutive
J'ai un peu "bidouillé" ton code
et ceci fonctionne
MAIS
il ne me compte plus qu'une valeur et plus toutes les valeurs du même
mois
J'ai changé les dates et ajouté les lignes de fin pour faire ce que
je
proposais
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sheets("TargetsVSSales").Select
Range("K25").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/05/2007") And c <= CDate("31/05/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TargetsVSSales").Select
Range("AA2").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Sheets("TargetsVSSales").Select
Range("AA1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[+500]C:R[+1]C)"
Range("AA1").Copy
Sheets("TargetsVSSales").Range("K25").Pastespecial
Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A bientôt
Rex
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de
news:
88F38631-D184-4FE7-9256-1649894E102C@microsoft.com...
Salut Rex
J'avoue n'avoir pas tout compris dans ta demande surtout la
dernière
partie
En ce qui concerne
Récupérer et additioner (par exemple) toutes les ventes de la
colonnes
BP
de
la feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est
entre
le
1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K
(les
ventes
du mois de janvier)
Je te propose ce code qui fonctionne :
Sheets("TagetsVSSales").Select
Range("K2").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TagetsVSSales").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
End If
Next
Cette première partie te convient elle ???
Peux tu apporter des précisions pour la suite
Merci
Bonjour
Encore une requête pas facile à expliquer
Mais j'espère pouvoir (encore une fois) compter sur vous
Voici
Sur une feuille "Sales"
J'ai toutes mes ventes
Chaque vente est sur une ligne en A la date, en B le nom, en C
la
société,
etc
A partir de P j'ai mes produits
Je cherche, pour mes statistiques, à récupérer les ventes par
mois
ET OUI JE SAIS que je peux le faire par TDC mais je cherche à
créer
un
fichier utilisable par tous sans trop de connaissances
Donc ce que je voudrais est ceci
Récupérer et additioner (par exemple) toutes les ventes de la
colonnes
BP de
la feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est
entre
le
1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K
(les
ventes
du mois de janvier)
A mon avis je vais être obligé de passer par macro
Et si c'est le cas il faut tenir compte de ce qui suit
La ligne 1 de la feuille "Sales" comprend (de la colonne P à la
colonne
DO)
comme titre tous les nom de produits (mais pas consécutif !!!!)
Et, sur ma feuille "TargetsVSales" entre J25 et J45 ces mêmes
noms
par
ordre
alphabétique (uniquement les plus courants)
Tous les noms de mes produits sont définis dans une liste
appellées
"TS_Sales_Products" et les mois dans une liste "TS_Monh-th"
Si nécessaire je peux poster le fichier
MAIS il est encore très "désordonné" et pas léger (500k)
En tous les cas merci et à bientôt
Rex
Bonjours Rex
Fort des derniers élément que tu m'as donnés
Je te propose ce code qui devrait faire pour l'ensemble de tes attentes
'Demande dans une boîte de dialogue du mois à traiter
Mois = InputBox("saisissez le Mois", "Mois traité")
'Recherche de la bonne colonne à alimenter feuille ("TargetsVSSales")
Sheets("TargetsVSSales").Select
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
'1° boucle traitant chaque produit feuille ("Sales") identifié entre B1
et
C1 (à adapter)
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range("B1", "C1")
R = 0
'2° boucle traitant le produit de la 1° boucle
Sheets("Sales").Select
For Each d In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If d >= CDate("01/01/2007") And d <= CDate("31/01/2007") Then
l = d.Row
R = R + Range(Mid(c.Address, 2, 1) & l)
End If
Next
'Recopie du résultat du produit dans la feuille (("TargetsVSSales")
Sheets("TargetsVSSales").Select
'Recherche du nom du produit colonne A (à adapter)
For Each e In Worksheets("TargetsVSSales").Range([A2], [A65535].End(xlUp))
If e = c Then
'Recopie du résultat dans la bonne cellule
Range(Mid(Mois, 2, 1) & e.Row) = R
Exit For
End If
Next
Next
Je te propose de tester en l'état ce code avec l'exemple que tu m'as
fourni :
1 Date Produit un Produit deux2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Avant d'entamer des modifications en fonction de tes besoins
Une dernière interrogation dans ces paramètres
Lignes :
2 Produit un 8 (5+2+1) 43 Produit deux 15 (2+4+9) 7
Que reprèsente le dernier chiffre de chaque ligne : 4 et 7 ???
Merci pour la précision
Dans l'attente de tes impressions !!!Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
En simplifier et par exemple (ne pas tenir compte de cellules)
Sur la feuille "Sales" j'aurais
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier
Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Et voilà
J'espère avoir allumé une petite bougie quelque part
Merci
A bientôt
Rex
"FFO" a écrit dans le message de news:Re bonjours Rex
Je vois que l'on se surpasse en matière de macro
Et avec de beaux résultats !!!!
Mais si tu vois pas d'inconvénient je vais revenir au premier code que
je
t'ai proposé avec la correction adéquate pour recopier uniquement la
somme
dans la 2° cellule de la colonne K
Voici ce nouveau code :
Sheets("Sales").Select
R = 0
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
R = R + Range("BP" & l)
End If
Next
Sheets("TargetsVSSales").Range("K2") = R
Voilà donc pour la première partie
Celà te convient-il ???
Concernant la 2° partie
Je ne comprends pas que d'un côté on prenne en compte toutes les lignes
de
la colonne A situées entre 2 dates d'un côté pour faire la somme des
ventescorrespondantes situées colonne BP et faire une différence en fonction
des
nom de colonnes P à DO
Le résultat quelque soit ces colonnes sera toujours identiques
considérant
toujours les mêmes lignes (même intervale de dates) et la même colonne
pourla somme des ventes colonne BP
Il serait bon que tu éclaircisses ma lanterne pour de proposer la
solution
adaptée
Dans l'attenteEt oui
Trois réponses consécutive
J'ai un peu "bidouillé" ton code
et ceci fonctionne
MAIS
il ne me compte plus qu'une valeur et plus toutes les valeurs du même
moisJ'ai changé les dates et ajouté les lignes de fin pour faire ce que
je
proposais
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sheets("TargetsVSSales").Select
Range("K25").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/05/2007") And c <= CDate("31/05/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TargetsVSSales").Select
Range("AA2").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Sheets("TargetsVSSales").Select
Range("AA1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[+500]C:R[+1]C)"
Range("AA1").Copy
Sheets("TargetsVSSales").Range("K25").Pastespecial
Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A bientôt
Rex
"FFO" a écrit dans le message de
news:Salut Rex
J'avoue n'avoir pas tout compris dans ta demande surtout la
dernière
partie
En ce qui concerne
Récupérer et additioner (par exemple) toutes les ventes de la
colonnes
BPdela feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est
entre
le1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K
(les
ventesdu mois de janvier)
Je te propose ce code qui fonctionne :
Sheets("TagetsVSSales").Select
Range("K2").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TagetsVSSales").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
End If
Next
Cette première partie te convient elle ???
Peux tu apporter des précisions pour la suite
MerciBonjour
Encore une requête pas facile à expliquer
Mais j'espère pouvoir (encore une fois) compter sur vous
Voici
Sur une feuille "Sales"
J'ai toutes mes ventes
Chaque vente est sur une ligne en A la date, en B le nom, en C
la
société,etc
A partir de P j'ai mes produits
Je cherche, pour mes statistiques, à récupérer les ventes par
mois
ET OUI JE SAIS que je peux le faire par TDC mais je cherche à
créer
unfichier utilisable par tous sans trop de connaissances
Donc ce que je voudrais est ceci
Récupérer et additioner (par exemple) toutes les ventes de la
colonnesBP dela feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est
entre
le1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K
(les
ventesdu mois de janvier)
A mon avis je vais être obligé de passer par macro
Et si c'est le cas il faut tenir compte de ce qui suit
La ligne 1 de la feuille "Sales" comprend (de la colonne P à la
colonneDO)comme titre tous les nom de produits (mais pas consécutif !!!!)
Et, sur ma feuille "TargetsVSales" entre J25 et J45 ces mêmes
noms
parordrealphabétique (uniquement les plus courants)
Tous les noms de mes produits sont définis dans une liste
appellées
"TS_Sales_Products" et les mois dans une liste "TS_Monh-th"
Si nécessaire je peux poster le fichier
MAIS il est encore très "désordonné" et pas léger (500k)
En tous les cas merci et à bientôt
Rex
Bonjour
Une petite question
Au début de ta macro tu fais un
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Pour le moment il se plante à cet endroit
Que cherche-t-il?
dois-je créer un colonne mois en plus de la date?
Et puis bien sur, je dois créer une colonne pour les résultats
Pour le moment je travail sur un fichier vierge avec une seul feuille
A bientôt
Rex
"FFO" a écrit dans le message de news:Bonjours Rex
Fort des derniers élément que tu m'as donnés
Je te propose ce code qui devrait faire pour l'ensemble de tes attentes
'Demande dans une boîte de dialogue du mois à traiter
Mois = InputBox("saisissez le Mois", "Mois traité")
'Recherche de la bonne colonne à alimenter feuille ("TargetsVSSales")
Sheets("TargetsVSSales").Select
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
'1° boucle traitant chaque produit feuille ("Sales") identifié entre B1
et
C1 (à adapter)
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range("B1", "C1")
R = 0
'2° boucle traitant le produit de la 1° boucle
Sheets("Sales").Select
For Each d In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If d >= CDate("01/01/2007") And d <= CDate("31/01/2007") Then
l = d.Row
R = R + Range(Mid(c.Address, 2, 1) & l)
End If
Next
'Recopie du résultat du produit dans la feuille (("TargetsVSSales")
Sheets("TargetsVSSales").Select
'Recherche du nom du produit colonne A (à adapter)
For Each e In Worksheets("TargetsVSSales").Range([A2],
[A65535].End(xlUp))
If e = c Then
'Recopie du résultat dans la bonne cellule
Range(Mid(Mois, 2, 1) & e.Row) = R
Exit For
End If
Next
Next
Je te propose de tester en l'état ce code avec l'exemple que tu m'as
fourni :
1 Date Produit un Produit deux2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Avant d'entamer des modifications en fonction de tes besoins
Une dernière interrogation dans ces paramètres
Lignes :
2 Produit un 8 (5+2+1) 43 Produit deux 15 (2+4+9) 7
Que reprèsente le dernier chiffre de chaque ligne : 4 et 7 ???
Merci pour la précision
Dans l'attente de tes impressions !!!Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
En simplifier et par exemple (ne pas tenir compte de cellules)
Sur la feuille "Sales" j'aurais
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Et voilà
J'espère avoir allumé une petite bougie quelque part
Merci
A bientôt
Rex
"FFO" a écrit dans le message de news:Re bonjours Rex
Je vois que l'on se surpasse en matière de macro
Et avec de beaux résultats !!!!
Mais si tu vois pas d'inconvénient je vais revenir au premier code que
je
t'ai proposé avec la correction adéquate pour recopier uniquement la
somme
dans la 2° cellule de la colonne K
Voici ce nouveau code :
Sheets("Sales").Select
R = 0
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
R = R + Range("BP" & l)
End If
Next
Sheets("TargetsVSSales").Range("K2") = R
Voilà donc pour la première partie
Celà te convient-il ???
Concernant la 2° partie
Je ne comprends pas que d'un côté on prenne en compte toutes les
lignes de
la colonne A situées entre 2 dates d'un côté pour faire la somme des
ventescorrespondantes situées colonne BP et faire une différence en fonction
des
nom de colonnes P à DO
Le résultat quelque soit ces colonnes sera toujours identiques
considérant
toujours les mêmes lignes (même intervale de dates) et la même colonne
pourla somme des ventes colonne BP
Il serait bon que tu éclaircisses ma lanterne pour de proposer la
solution
adaptée
Dans l'attenteEt oui
Trois réponses consécutive
J'ai un peu "bidouillé" ton code
et ceci fonctionne
MAIS
il ne me compte plus qu'une valeur et plus toutes les valeurs du
même
moisJ'ai changé les dates et ajouté les lignes de fin pour faire ce que
je
proposais
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sheets("TargetsVSSales").Select
Range("K25").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/05/2007") And c <= CDate("31/05/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TargetsVSSales").Select
Range("AA2").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Sheets("TargetsVSSales").Select
Range("AA1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[+500]C:R[+1]C)"
Range("AA1").Copy
Sheets("TargetsVSSales").Range("K25").Pastespecial
Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A bientôt
Rex
"FFO" a écrit dans le message de
news:Salut Rex
J'avoue n'avoir pas tout compris dans ta demande surtout la
dernière
partie
En ce qui concerne
Récupérer et additioner (par exemple) toutes les ventes de la
colonnes
BPdela feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est
entre
le1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K
(les
ventesdu mois de janvier)
Je te propose ce code qui fonctionne :
Sheets("TagetsVSSales").Select
Range("K2").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TagetsVSSales").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
End If
Next
Cette première partie te convient elle ???
Peux tu apporter des précisions pour la suite
MerciBonjour
Encore une requête pas facile à expliquer
Mais j'espère pouvoir (encore une fois) compter sur vous
Voici
Sur une feuille "Sales"
J'ai toutes mes ventes
Chaque vente est sur une ligne en A la date, en B le nom, en C
la
société,etc
A partir de P j'ai mes produits
Je cherche, pour mes statistiques, à récupérer les ventes par
mois
ET OUI JE SAIS que je peux le faire par TDC mais je cherche à
créer
unfichier utilisable par tous sans trop de connaissances
Donc ce que je voudrais est ceci
Récupérer et additioner (par exemple) toutes les ventes de la
colonnesBP dela feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est
entre
le1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K
(les
ventesdu mois de janvier)
A mon avis je vais être obligé de passer par macro
Et si c'est le cas il faut tenir compte de ce qui suit
La ligne 1 de la feuille "Sales" comprend (de la colonne P à la
colonneDO)comme titre tous les nom de produits (mais pas consécutif !!!!)
Et, sur ma feuille "TargetsVSales" entre J25 et J45 ces mêmes
noms
parordrealphabétique (uniquement les plus courants)
Tous les noms de mes produits sont définis dans une liste
appellées
"TS_Sales_Products" et les mois dans une liste "TS_Monh-th"
Si nécessaire je peux poster le fichier
MAIS il est encore très "désordonné" et pas léger (500k)
En tous les cas merci et à bientôt
Rex
Bonjour
Une petite question
Au début de ta macro tu fais un
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Pour le moment il se plante à cet endroit
Que cherche-t-il?
dois-je créer un colonne mois en plus de la date?
Et puis bien sur, je dois créer une colonne pour les résultats
Pour le moment je travail sur un fichier vierge avec une seul feuille
A bientôt
Rex
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
91A00A5C-D18D-4FE8-A1A8-2893F31A95B8@microsoft.com...
Bonjours Rex
Fort des derniers élément que tu m'as donnés
Je te propose ce code qui devrait faire pour l'ensemble de tes attentes
'Demande dans une boîte de dialogue du mois à traiter
Mois = InputBox("saisissez le Mois", "Mois traité")
'Recherche de la bonne colonne à alimenter feuille ("TargetsVSSales")
Sheets("TargetsVSSales").Select
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
'1° boucle traitant chaque produit feuille ("Sales") identifié entre B1
et
C1 (à adapter)
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range("B1", "C1")
R = 0
'2° boucle traitant le produit de la 1° boucle
Sheets("Sales").Select
For Each d In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If d >= CDate("01/01/2007") And d <= CDate("31/01/2007") Then
l = d.Row
R = R + Range(Mid(c.Address, 2, 1) & l)
End If
Next
'Recopie du résultat du produit dans la feuille (("TargetsVSSales")
Sheets("TargetsVSSales").Select
'Recherche du nom du produit colonne A (à adapter)
For Each e In Worksheets("TargetsVSSales").Range([A2],
[A65535].End(xlUp))
If e = c Then
'Recopie du résultat dans la bonne cellule
Range(Mid(Mois, 2, 1) & e.Row) = R
Exit For
End If
Next
Next
Je te propose de tester en l'état ce code avec l'exemple que tu m'as
fourni :
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Avant d'entamer des modifications en fonction de tes besoins
Une dernière interrogation dans ces paramètres
Lignes :
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Que reprèsente le dernier chiffre de chaque ligne : 4 et 7 ???
Merci pour la précision
Dans l'attente de tes impressions !!!
Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
En simplifier et par exemple (ne pas tenir compte de cellules)
Sur la feuille "Sales" j'aurais
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Et voilà
J'espère avoir allumé une petite bougie quelque part
Merci
A bientôt
Rex
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
942DA5FC-F1B6-450C-B708-7435AA2D6A45@microsoft.com...
Re bonjours Rex
Je vois que l'on se surpasse en matière de macro
Et avec de beaux résultats !!!!
Mais si tu vois pas d'inconvénient je vais revenir au premier code que
je
t'ai proposé avec la correction adéquate pour recopier uniquement la
somme
dans la 2° cellule de la colonne K
Voici ce nouveau code :
Sheets("Sales").Select
R = 0
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
R = R + Range("BP" & l)
End If
Next
Sheets("TargetsVSSales").Range("K2") = R
Voilà donc pour la première partie
Celà te convient-il ???
Concernant la 2° partie
Je ne comprends pas que d'un côté on prenne en compte toutes les
lignes de
la colonne A situées entre 2 dates d'un côté pour faire la somme des
ventes
correspondantes situées colonne BP et faire une différence en fonction
des
nom de colonnes P à DO
Le résultat quelque soit ces colonnes sera toujours identiques
considérant
toujours les mêmes lignes (même intervale de dates) et la même colonne
pour
la somme des ventes colonne BP
Il serait bon que tu éclaircisses ma lanterne pour de proposer la
solution
adaptée
Dans l'attente
Et oui
Trois réponses consécutive
J'ai un peu "bidouillé" ton code
et ceci fonctionne
MAIS
il ne me compte plus qu'une valeur et plus toutes les valeurs du
même
mois
J'ai changé les dates et ajouté les lignes de fin pour faire ce que
je
proposais
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sheets("TargetsVSSales").Select
Range("K25").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/05/2007") And c <= CDate("31/05/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TargetsVSSales").Select
Range("AA2").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Sheets("TargetsVSSales").Select
Range("AA1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[+500]C:R[+1]C)"
Range("AA1").Copy
Sheets("TargetsVSSales").Range("K25").Pastespecial
Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A bientôt
Rex
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de
news:
88F38631-D184-4FE7-9256-1649894E102C@microsoft.com...
Salut Rex
J'avoue n'avoir pas tout compris dans ta demande surtout la
dernière
partie
En ce qui concerne
Récupérer et additioner (par exemple) toutes les ventes de la
colonnes
BP
de
la feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est
entre
le
1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K
(les
ventes
du mois de janvier)
Je te propose ce code qui fonctionne :
Sheets("TagetsVSSales").Select
Range("K2").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TagetsVSSales").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
End If
Next
Cette première partie te convient elle ???
Peux tu apporter des précisions pour la suite
Merci
Bonjour
Encore une requête pas facile à expliquer
Mais j'espère pouvoir (encore une fois) compter sur vous
Voici
Sur une feuille "Sales"
J'ai toutes mes ventes
Chaque vente est sur une ligne en A la date, en B le nom, en C
la
société,
etc
A partir de P j'ai mes produits
Je cherche, pour mes statistiques, à récupérer les ventes par
mois
ET OUI JE SAIS que je peux le faire par TDC mais je cherche à
créer
un
fichier utilisable par tous sans trop de connaissances
Donc ce que je voudrais est ceci
Récupérer et additioner (par exemple) toutes les ventes de la
colonnes
BP de
la feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est
entre
le
1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K
(les
ventes
du mois de janvier)
A mon avis je vais être obligé de passer par macro
Et si c'est le cas il faut tenir compte de ce qui suit
La ligne 1 de la feuille "Sales" comprend (de la colonne P à la
colonne
DO)
comme titre tous les nom de produits (mais pas consécutif !!!!)
Et, sur ma feuille "TargetsVSales" entre J25 et J45 ces mêmes
noms
par
ordre
alphabétique (uniquement les plus courants)
Tous les noms de mes produits sont définis dans une liste
appellées
"TS_Sales_Products" et les mois dans une liste "TS_Monh-th"
Si nécessaire je peux poster le fichier
MAIS il est encore très "désordonné" et pas léger (500k)
En tous les cas merci et à bientôt
Rex
Bonjour
Une petite question
Au début de ta macro tu fais un
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Pour le moment il se plante à cet endroit
Que cherche-t-il?
dois-je créer un colonne mois en plus de la date?
Et puis bien sur, je dois créer une colonne pour les résultats
Pour le moment je travail sur un fichier vierge avec une seul feuille
A bientôt
Rex
"FFO" a écrit dans le message de news:Bonjours Rex
Fort des derniers élément que tu m'as donnés
Je te propose ce code qui devrait faire pour l'ensemble de tes attentes
'Demande dans une boîte de dialogue du mois à traiter
Mois = InputBox("saisissez le Mois", "Mois traité")
'Recherche de la bonne colonne à alimenter feuille ("TargetsVSSales")
Sheets("TargetsVSSales").Select
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
'1° boucle traitant chaque produit feuille ("Sales") identifié entre B1
et
C1 (à adapter)
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range("B1", "C1")
R = 0
'2° boucle traitant le produit de la 1° boucle
Sheets("Sales").Select
For Each d In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If d >= CDate("01/01/2007") And d <= CDate("31/01/2007") Then
l = d.Row
R = R + Range(Mid(c.Address, 2, 1) & l)
End If
Next
'Recopie du résultat du produit dans la feuille (("TargetsVSSales")
Sheets("TargetsVSSales").Select
'Recherche du nom du produit colonne A (à adapter)
For Each e In Worksheets("TargetsVSSales").Range([A2],
[A65535].End(xlUp))
If e = c Then
'Recopie du résultat dans la bonne cellule
Range(Mid(Mois, 2, 1) & e.Row) = R
Exit For
End If
Next
Next
Je te propose de tester en l'état ce code avec l'exemple que tu m'as
fourni :
1 Date Produit un Produit deux2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Avant d'entamer des modifications en fonction de tes besoins
Une dernière interrogation dans ces paramètres
Lignes :
2 Produit un 8 (5+2+1) 43 Produit deux 15 (2+4+9) 7
Que reprèsente le dernier chiffre de chaque ligne : 4 et 7 ???
Merci pour la précision
Dans l'attente de tes impressions !!!Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
En simplifier et par exemple (ne pas tenir compte de cellules)
Sur la feuille "Sales" j'aurais
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Et voilà
J'espère avoir allumé une petite bougie quelque part
Merci
A bientôt
Rex
"FFO" a écrit dans le message de news:Re bonjours Rex
Je vois que l'on se surpasse en matière de macro
Et avec de beaux résultats !!!!
Mais si tu vois pas d'inconvénient je vais revenir au premier code que
je
t'ai proposé avec la correction adéquate pour recopier uniquement la
somme
dans la 2° cellule de la colonne K
Voici ce nouveau code :
Sheets("Sales").Select
R = 0
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
R = R + Range("BP" & l)
End If
Next
Sheets("TargetsVSSales").Range("K2") = R
Voilà donc pour la première partie
Celà te convient-il ???
Concernant la 2° partie
Je ne comprends pas que d'un côté on prenne en compte toutes les
lignes de
la colonne A situées entre 2 dates d'un côté pour faire la somme des
ventescorrespondantes situées colonne BP et faire une différence en fonction
des
nom de colonnes P à DO
Le résultat quelque soit ces colonnes sera toujours identiques
considérant
toujours les mêmes lignes (même intervale de dates) et la même colonne
pourla somme des ventes colonne BP
Il serait bon que tu éclaircisses ma lanterne pour de proposer la
solution
adaptée
Dans l'attenteEt oui
Trois réponses consécutive
J'ai un peu "bidouillé" ton code
et ceci fonctionne
MAIS
il ne me compte plus qu'une valeur et plus toutes les valeurs du
même
moisJ'ai changé les dates et ajouté les lignes de fin pour faire ce que
je
proposais
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sheets("TargetsVSSales").Select
Range("K25").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/05/2007") And c <= CDate("31/05/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TargetsVSSales").Select
Range("AA2").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Sheets("TargetsVSSales").Select
Range("AA1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[+500]C:R[+1]C)"
Range("AA1").Copy
Sheets("TargetsVSSales").Range("K25").Pastespecial
Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A bientôt
Rex
"FFO" a écrit dans le message de
news:Salut Rex
J'avoue n'avoir pas tout compris dans ta demande surtout la
dernière
partie
En ce qui concerne
Récupérer et additioner (par exemple) toutes les ventes de la
colonnes
BPdela feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est
entre
le1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K
(les
ventesdu mois de janvier)
Je te propose ce code qui fonctionne :
Sheets("TagetsVSSales").Select
Range("K2").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TagetsVSSales").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
End If
Next
Cette première partie te convient elle ???
Peux tu apporter des précisions pour la suite
MerciBonjour
Encore une requête pas facile à expliquer
Mais j'espère pouvoir (encore une fois) compter sur vous
Voici
Sur une feuille "Sales"
J'ai toutes mes ventes
Chaque vente est sur une ligne en A la date, en B le nom, en C
la
société,etc
A partir de P j'ai mes produits
Je cherche, pour mes statistiques, à récupérer les ventes par
mois
ET OUI JE SAIS que je peux le faire par TDC mais je cherche à
créer
unfichier utilisable par tous sans trop de connaissances
Donc ce que je voudrais est ceci
Récupérer et additioner (par exemple) toutes les ventes de la
colonnesBP dela feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est
entre
le1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K
(les
ventesdu mois de janvier)
A mon avis je vais être obligé de passer par macro
Et si c'est le cas il faut tenir compte de ce qui suit
La ligne 1 de la feuille "Sales" comprend (de la colonne P à la
colonneDO)comme titre tous les nom de produits (mais pas consécutif !!!!)
Et, sur ma feuille "TargetsVSales" entre J25 et J45 ces mêmes
noms
parordrealphabétique (uniquement les plus courants)
Tous les noms de mes produits sont définis dans une liste
appellées
"TS_Sales_Products" et les mois dans une liste "TS_Monh-th"
Si nécessaire je peux poster le fichier
MAIS il est encore très "désordonné" et pas léger (500k)
En tous les cas merci et à bientôt
Rex
Bonjour
Une petite question
Au début de ta macro tu fais un
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Pour le moment il se plante à cet endroit
Que cherche-t-il?
dois-je créer un colonne mois en plus de la date?
Et puis bien sur, je dois créer une colonne pour les résultats
Pour le moment je travail sur un fichier vierge avec une seul feuille
A bientôt
Rex
"FFO" a écrit dans le message de news:Bonjours Rex
Fort des derniers élément que tu m'as donnés
Je te propose ce code qui devrait faire pour l'ensemble de tes attentes
'Demande dans une boîte de dialogue du mois à traiter
Mois = InputBox("saisissez le Mois", "Mois traité")
'Recherche de la bonne colonne à alimenter feuille ("TargetsVSSales")
Sheets("TargetsVSSales").Select
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
'1° boucle traitant chaque produit feuille ("Sales") identifié entre B1
et
C1 (à adapter)
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range("B1", "C1")
R = 0
'2° boucle traitant le produit de la 1° boucle
Sheets("Sales").Select
For Each d In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If d >= CDate("01/01/2007") And d <= CDate("31/01/2007") Then
l = d.Row
R = R + Range(Mid(c.Address, 2, 1) & l)
End If
Next
'Recopie du résultat du produit dans la feuille (("TargetsVSSales")
Sheets("TargetsVSSales").Select
'Recherche du nom du produit colonne A (à adapter)
For Each e In Worksheets("TargetsVSSales").Range([A2], [A65535].End(xlUp))
If e = c Then
'Recopie du résultat dans la bonne cellule
Range(Mid(Mois, 2, 1) & e.Row) = R
Exit For
End If
Next
Next
Je te propose de tester en l'état ce code avec l'exemple que tu m'as
fourni :
1 Date Produit un Produit deux2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Avant d'entamer des modifications en fonction de tes besoins
Une dernière interrogation dans ces paramètres
Lignes :
2 Produit un 8 (5+2+1) 43 Produit deux 15 (2+4+9) 7
Que reprèsente le dernier chiffre de chaque ligne : 4 et 7 ???
Merci pour la précision
Dans l'attente de tes impressions !!!Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
En simplifier et par exemple (ne pas tenir compte de cellules)
Sur la feuille "Sales" j'aurais
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier
Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Et voilà
J'espère avoir allumé une petite bougie quelque part
Merci
A bientôt
Rex
"FFO" a écrit dans le message de news:Re bonjours Rex
Je vois que l'on se surpasse en matière de macro
Et avec de beaux résultats !!!!
Mais si tu vois pas d'inconvénient je vais revenir au premier code que
je
t'ai proposé avec la correction adéquate pour recopier uniquement la
somme
dans la 2° cellule de la colonne K
Voici ce nouveau code :
Sheets("Sales").Select
R = 0
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
R = R + Range("BP" & l)
End If
Next
Sheets("TargetsVSSales").Range("K2") = R
Voilà donc pour la première partie
Celà te convient-il ???
Concernant la 2° partie
Je ne comprends pas que d'un côté on prenne en compte toutes les lignes
de
la colonne A situées entre 2 dates d'un côté pour faire la somme des
ventescorrespondantes situées colonne BP et faire une différence en fonction
des
nom de colonnes P à DO
Le résultat quelque soit ces colonnes sera toujours identiques
considérant
toujours les mêmes lignes (même intervale de dates) et la même colonne
pourla somme des ventes colonne BP
Il serait bon que tu éclaircisses ma lanterne pour de proposer la
solution
adaptée
Dans l'attenteEt oui
Trois réponses consécutive
J'ai un peu "bidouillé" ton code
et ceci fonctionne
MAIS
il ne me compte plus qu'une valeur et plus toutes les valeurs du même
moisJ'ai changé les dates et ajouté les lignes de fin pour faire ce que
je
proposais
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sheets("TargetsVSSales").Select
Range("K25").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/05/2007") And c <= CDate("31/05/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TargetsVSSales").Select
Range("AA2").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Sheets("TargetsVSSales").Select
Range("AA1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[+500]C:R[+1]C)"
Range("AA1").Copy
Sheets("TargetsVSSales").Range("K25").Pastespecial
Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A bientôt
Rex
"FFO" a écrit dans le message de
news:Salut Rex
J'avoue n'avoir pas tout compris dans ta demande surtout la
dernière
partie
En ce qui concerne
Récupérer et additioner (par exemple) toutes les ventes de la
colonnes
BPdela feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est
entre
le1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K
(les
ventesdu mois de janvier)
Je te propose ce code qui fonctionne :
Sheets("TagetsVSSales").Select
Range("K2").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TagetsVSSales").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
End If
Next
Cette première partie te convient elle ???
Peux tu apporter des précisions pour la suite
MerciBonjour
Encore une requête pas facile à expliquer
Mais j'espère pouvoir (encore une fois) compter sur vous
Voici
Sur une feuille "Sales"
Bonjour
Une petite question
Au début de ta macro tu fais un
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Pour le moment il se plante à cet endroit
Que cherche-t-il?
dois-je créer un colonne mois en plus de la date?
Et puis bien sur, je dois créer une colonne pour les résultats
Pour le moment je travail sur un fichier vierge avec une seul feuille
A bientôt
Rex
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
91A00A5C-D18D-4FE8-A1A8-2893F31A95B8@microsoft.com...
Bonjours Rex
Fort des derniers élément que tu m'as donnés
Je te propose ce code qui devrait faire pour l'ensemble de tes attentes
'Demande dans une boîte de dialogue du mois à traiter
Mois = InputBox("saisissez le Mois", "Mois traité")
'Recherche de la bonne colonne à alimenter feuille ("TargetsVSSales")
Sheets("TargetsVSSales").Select
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
'1° boucle traitant chaque produit feuille ("Sales") identifié entre B1
et
C1 (à adapter)
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range("B1", "C1")
R = 0
'2° boucle traitant le produit de la 1° boucle
Sheets("Sales").Select
For Each d In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If d >= CDate("01/01/2007") And d <= CDate("31/01/2007") Then
l = d.Row
R = R + Range(Mid(c.Address, 2, 1) & l)
End If
Next
'Recopie du résultat du produit dans la feuille (("TargetsVSSales")
Sheets("TargetsVSSales").Select
'Recherche du nom du produit colonne A (à adapter)
For Each e In Worksheets("TargetsVSSales").Range([A2], [A65535].End(xlUp))
If e = c Then
'Recopie du résultat dans la bonne cellule
Range(Mid(Mois, 2, 1) & e.Row) = R
Exit For
End If
Next
Next
Je te propose de tester en l'état ce code avec l'exemple que tu m'as
fourni :
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Avant d'entamer des modifications en fonction de tes besoins
Une dernière interrogation dans ces paramètres
Lignes :
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Que reprèsente le dernier chiffre de chaque ligne : 4 et 7 ???
Merci pour la précision
Dans l'attente de tes impressions !!!
Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
En simplifier et par exemple (ne pas tenir compte de cellules)
Sur la feuille "Sales" j'aurais
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier
Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Et voilà
J'espère avoir allumé une petite bougie quelque part
Merci
A bientôt
Rex
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
942DA5FC-F1B6-450C-B708-7435AA2D6A45@microsoft.com...
Re bonjours Rex
Je vois que l'on se surpasse en matière de macro
Et avec de beaux résultats !!!!
Mais si tu vois pas d'inconvénient je vais revenir au premier code que
je
t'ai proposé avec la correction adéquate pour recopier uniquement la
somme
dans la 2° cellule de la colonne K
Voici ce nouveau code :
Sheets("Sales").Select
R = 0
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
R = R + Range("BP" & l)
End If
Next
Sheets("TargetsVSSales").Range("K2") = R
Voilà donc pour la première partie
Celà te convient-il ???
Concernant la 2° partie
Je ne comprends pas que d'un côté on prenne en compte toutes les lignes
de
la colonne A situées entre 2 dates d'un côté pour faire la somme des
ventes
correspondantes situées colonne BP et faire une différence en fonction
des
nom de colonnes P à DO
Le résultat quelque soit ces colonnes sera toujours identiques
considérant
toujours les mêmes lignes (même intervale de dates) et la même colonne
pour
la somme des ventes colonne BP
Il serait bon que tu éclaircisses ma lanterne pour de proposer la
solution
adaptée
Dans l'attente
Et oui
Trois réponses consécutive
J'ai un peu "bidouillé" ton code
et ceci fonctionne
MAIS
il ne me compte plus qu'une valeur et plus toutes les valeurs du même
mois
J'ai changé les dates et ajouté les lignes de fin pour faire ce que
je
proposais
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sheets("TargetsVSSales").Select
Range("K25").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/05/2007") And c <= CDate("31/05/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TargetsVSSales").Select
Range("AA2").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Sheets("TargetsVSSales").Select
Range("AA1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[+500]C:R[+1]C)"
Range("AA1").Copy
Sheets("TargetsVSSales").Range("K25").Pastespecial
Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A bientôt
Rex
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de
news:
88F38631-D184-4FE7-9256-1649894E102C@microsoft.com...
Salut Rex
J'avoue n'avoir pas tout compris dans ta demande surtout la
dernière
partie
En ce qui concerne
Récupérer et additioner (par exemple) toutes les ventes de la
colonnes
BP
de
la feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est
entre
le
1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K
(les
ventes
du mois de janvier)
Je te propose ce code qui fonctionne :
Sheets("TagetsVSSales").Select
Range("K2").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TagetsVSSales").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
End If
Next
Cette première partie te convient elle ???
Peux tu apporter des précisions pour la suite
Merci
Bonjour
Encore une requête pas facile à expliquer
Mais j'espère pouvoir (encore une fois) compter sur vous
Voici
Sur une feuille "Sales"
Bonjour
Une petite question
Au début de ta macro tu fais un
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Pour le moment il se plante à cet endroit
Que cherche-t-il?
dois-je créer un colonne mois en plus de la date?
Et puis bien sur, je dois créer une colonne pour les résultats
Pour le moment je travail sur un fichier vierge avec une seul feuille
A bientôt
Rex
"FFO" a écrit dans le message de news:Bonjours Rex
Fort des derniers élément que tu m'as donnés
Je te propose ce code qui devrait faire pour l'ensemble de tes attentes
'Demande dans une boîte de dialogue du mois à traiter
Mois = InputBox("saisissez le Mois", "Mois traité")
'Recherche de la bonne colonne à alimenter feuille ("TargetsVSSales")
Sheets("TargetsVSSales").Select
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
'1° boucle traitant chaque produit feuille ("Sales") identifié entre B1
et
C1 (à adapter)
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range("B1", "C1")
R = 0
'2° boucle traitant le produit de la 1° boucle
Sheets("Sales").Select
For Each d In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If d >= CDate("01/01/2007") And d <= CDate("31/01/2007") Then
l = d.Row
R = R + Range(Mid(c.Address, 2, 1) & l)
End If
Next
'Recopie du résultat du produit dans la feuille (("TargetsVSSales")
Sheets("TargetsVSSales").Select
'Recherche du nom du produit colonne A (à adapter)
For Each e In Worksheets("TargetsVSSales").Range([A2], [A65535].End(xlUp))
If e = c Then
'Recopie du résultat dans la bonne cellule
Range(Mid(Mois, 2, 1) & e.Row) = R
Exit For
End If
Next
Next
Je te propose de tester en l'état ce code avec l'exemple que tu m'as
fourni :
1 Date Produit un Produit deux2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Avant d'entamer des modifications en fonction de tes besoins
Une dernière interrogation dans ces paramètres
Lignes :
2 Produit un 8 (5+2+1) 43 Produit deux 15 (2+4+9) 7
Que reprèsente le dernier chiffre de chaque ligne : 4 et 7 ???
Merci pour la précision
Dans l'attente de tes impressions !!!Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
En simplifier et par exemple (ne pas tenir compte de cellules)
Sur la feuille "Sales" j'aurais
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier
Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Et voilà
J'espère avoir allumé une petite bougie quelque part
Merci
A bientôt
Rex
"FFO" a écrit dans le message de news:Re bonjours Rex
Je vois que l'on se surpasse en matière de macro
Et avec de beaux résultats !!!!
Mais si tu vois pas d'inconvénient je vais revenir au premier code que
je
t'ai proposé avec la correction adéquate pour recopier uniquement la
somme
dans la 2° cellule de la colonne K
Voici ce nouveau code :
Sheets("Sales").Select
R = 0
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
R = R + Range("BP" & l)
End If
Next
Sheets("TargetsVSSales").Range("K2") = R
Voilà donc pour la première partie
Celà te convient-il ???
Concernant la 2° partie
Je ne comprends pas que d'un côté on prenne en compte toutes les lignes
de
la colonne A situées entre 2 dates d'un côté pour faire la somme des
ventescorrespondantes situées colonne BP et faire une différence en fonction
des
nom de colonnes P à DO
Le résultat quelque soit ces colonnes sera toujours identiques
considérant
toujours les mêmes lignes (même intervale de dates) et la même colonne
pourla somme des ventes colonne BP
Il serait bon que tu éclaircisses ma lanterne pour de proposer la
solution
adaptée
Dans l'attenteEt oui
Trois réponses consécutive
J'ai un peu "bidouillé" ton code
et ceci fonctionne
MAIS
il ne me compte plus qu'une valeur et plus toutes les valeurs du même
moisJ'ai changé les dates et ajouté les lignes de fin pour faire ce que
je
proposais
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sheets("TargetsVSSales").Select
Range("K25").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/05/2007") And c <= CDate("31/05/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TargetsVSSales").Select
Range("AA2").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Sheets("TargetsVSSales").Select
Range("AA1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[+500]C:R[+1]C)"
Range("AA1").Copy
Sheets("TargetsVSSales").Range("K25").Pastespecial
Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A bientôt
Rex
"FFO" a écrit dans le message de
news:Salut Rex
J'avoue n'avoir pas tout compris dans ta demande surtout la
dernière
partie
En ce qui concerne
Récupérer et additioner (par exemple) toutes les ventes de la
colonnes
BPdela feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est
entre
le1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K
(les
ventesdu mois de janvier)
Je te propose ce code qui fonctionne :
Sheets("TagetsVSSales").Select
Range("K2").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TagetsVSSales").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
End If
Next
Cette première partie te convient elle ???
Peux tu apporter des précisions pour la suite
MerciBonjour
Encore une requête pas facile à expliquer
Mais j'espère pouvoir (encore une fois) compter sur vous
Voici
Sur une feuille "Sales"
Et ce qui précède est resté coincé dans ta souris !!!! :
'Demande dans une boîte de dialogue du mois à traiter
Mois = InputBox("saisissez le Mois", "Mois traité")
'Recherche de la bonne colonne à alimenter feuille ("TargetsVSSales")
Sheets("TargetsVSSales").Select
Mois est le paramètre que saisie l'utilisateur dans une boîte de dialogue
pour identifier celui que l'on traite dans la ligne que tu as oubliée :
Mois = InputBox("saisissez le Mois", "Mois traité")
ce qui permet en fin de code de mettre le résultat dans la bonne cellule
de
la bonne colonne feuille "TargetsVSSales"
Est ce plus claire ainsi !!!
N'hèsite pas à prendre l'intégralité de mon code de :
'Demande dans une boîte de dialogue du mois à traiter
à
Next
Next
et ainsi d'avoir toutes les chances de ne pas avoir de bug
Donne moi tes impressions !!!Bonjour
Une petite question
Au début de ta macro tu fais un
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Pour le moment il se plante à cet endroit
Que cherche-t-il?
dois-je créer un colonne mois en plus de la date?
Et puis bien sur, je dois créer une colonne pour les résultats
Pour le moment je travail sur un fichier vierge avec une seul feuille
A bientôt
Rex
"FFO" a écrit dans le message de news:Bonjours Rex
Fort des derniers élément que tu m'as donnés
Je te propose ce code qui devrait faire pour l'ensemble de tes attentes
'Demande dans une boîte de dialogue du mois à traiter
Mois = InputBox("saisissez le Mois", "Mois traité")
'Recherche de la bonne colonne à alimenter feuille ("TargetsVSSales")
Sheets("TargetsVSSales").Select
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
_
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
'1° boucle traitant chaque produit feuille ("Sales") identifié entre
B1
et
C1 (à adapter)
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range("B1", "C1")
R = 0
'2° boucle traitant le produit de la 1° boucle
Sheets("Sales").Select
For Each d In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If d >= CDate("01/01/2007") And d <= CDate("31/01/2007") Then
l = d.Row
R = R + Range(Mid(c.Address, 2, 1) & l)
End If
Next
'Recopie du résultat du produit dans la feuille (("TargetsVSSales")
Sheets("TargetsVSSales").Select
'Recherche du nom du produit colonne A (à adapter)
For Each e In Worksheets("TargetsVSSales").Range([A2],
[A65535].End(xlUp))
If e = c Then
'Recopie du résultat dans la bonne cellule
Range(Mid(Mois, 2, 1) & e.Row) = R
Exit For
End If
Next
Next
Je te propose de tester en l'état ce code avec l'exemple que tu m'as
fourni :
1 Date Produit un Produit deux2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Avant d'entamer des modifications en fonction de tes besoins
Une dernière interrogation dans ces paramètres
Lignes :
2 Produit un 8 (5+2+1) 43 Produit deux 15 (2+4+9) 7
Que reprèsente le dernier chiffre de chaque ligne : 4 et 7 ???
Merci pour la précision
Dans l'attente de tes impressions !!!Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
En simplifier et par exemple (ne pas tenir compte de cellules)
Sur la feuille "Sales" j'aurais
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier
Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Et voilà
J'espère avoir allumé une petite bougie quelque part
Merci
A bientôt
Rex
"FFO" a écrit dans le message de news:Re bonjours Rex
Je vois que l'on se surpasse en matière de macro
Et avec de beaux résultats !!!!
Mais si tu vois pas d'inconvénient je vais revenir au premier code
que
je
t'ai proposé avec la correction adéquate pour recopier uniquement la
somme
dans la 2° cellule de la colonne K
Voici ce nouveau code :
Sheets("Sales").Select
R = 0
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
R = R + Range("BP" & l)
End If
Next
Sheets("TargetsVSSales").Range("K2") = R
Voilà donc pour la première partie
Celà te convient-il ???
Concernant la 2° partie
Je ne comprends pas que d'un côté on prenne en compte toutes les
lignes
de
la colonne A situées entre 2 dates d'un côté pour faire la somme des
ventescorrespondantes situées colonne BP et faire une différence en
fonction
des
nom de colonnes P à DO
Le résultat quelque soit ces colonnes sera toujours identiques
considérant
toujours les mêmes lignes (même intervale de dates) et la même
colonne
pourla somme des ventes colonne BP
Il serait bon que tu éclaircisses ma lanterne pour de proposer la
solution
adaptée
Dans l'attenteEt oui
Trois réponses consécutive
J'ai un peu "bidouillé" ton code
et ceci fonctionne
MAIS
il ne me compte plus qu'une valeur et plus toutes les valeurs du
même
moisJ'ai changé les dates et ajouté les lignes de fin pour faire ce
que
je
proposais
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sheets("TargetsVSSales").Select
Range("K25").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/05/2007") And c <= CDate("31/05/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TargetsVSSales").Select
Range("AA2").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Sheets("TargetsVSSales").Select
Range("AA1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[+500]C:R[+1]C)"
Range("AA1").Copy
Sheets("TargetsVSSales").Range("K25").Pastespecial
Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A bientôt
Rex
"FFO" a écrit dans le message de
news:Salut Rex
J'avoue n'avoir pas tout compris dans ta demande surtout la
dernière
partie
En ce qui concerne
Récupérer et additioner (par exemple) toutes les ventes de la
colonnes
BPdela feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est
entre
le1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K
(les
ventesdu mois de janvier)
Je te propose ce code qui fonctionne :
Sheets("TagetsVSSales").Select
Range("K2").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1],
[A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TagetsVSSales").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
End If
Next
Cette première partie te convient elle ???
Peux tu apporter des précisions pour la suite
MerciBonjour
Encore une requête pas facile à expliquer
Mais j'espère pouvoir (encore une fois) compter sur vous
Voici
Sur une feuille "Sales"
Et ce qui précède est resté coincé dans ta souris !!!! :
'Demande dans une boîte de dialogue du mois à traiter
Mois = InputBox("saisissez le Mois", "Mois traité")
'Recherche de la bonne colonne à alimenter feuille ("TargetsVSSales")
Sheets("TargetsVSSales").Select
Mois est le paramètre que saisie l'utilisateur dans une boîte de dialogue
pour identifier celui que l'on traite dans la ligne que tu as oubliée :
Mois = InputBox("saisissez le Mois", "Mois traité")
ce qui permet en fin de code de mettre le résultat dans la bonne cellule
de
la bonne colonne feuille "TargetsVSSales"
Est ce plus claire ainsi !!!
N'hèsite pas à prendre l'intégralité de mon code de :
'Demande dans une boîte de dialogue du mois à traiter
à
Next
Next
et ainsi d'avoir toutes les chances de ne pas avoir de bug
Donne moi tes impressions !!!
Bonjour
Une petite question
Au début de ta macro tu fais un
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Pour le moment il se plante à cet endroit
Que cherche-t-il?
dois-je créer un colonne mois en plus de la date?
Et puis bien sur, je dois créer une colonne pour les résultats
Pour le moment je travail sur un fichier vierge avec une seul feuille
A bientôt
Rex
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
91A00A5C-D18D-4FE8-A1A8-2893F31A95B8@microsoft.com...
Bonjours Rex
Fort des derniers élément que tu m'as donnés
Je te propose ce code qui devrait faire pour l'ensemble de tes attentes
'Demande dans une boîte de dialogue du mois à traiter
Mois = InputBox("saisissez le Mois", "Mois traité")
'Recherche de la bonne colonne à alimenter feuille ("TargetsVSSales")
Sheets("TargetsVSSales").Select
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
_
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
'1° boucle traitant chaque produit feuille ("Sales") identifié entre
B1
et
C1 (à adapter)
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range("B1", "C1")
R = 0
'2° boucle traitant le produit de la 1° boucle
Sheets("Sales").Select
For Each d In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If d >= CDate("01/01/2007") And d <= CDate("31/01/2007") Then
l = d.Row
R = R + Range(Mid(c.Address, 2, 1) & l)
End If
Next
'Recopie du résultat du produit dans la feuille (("TargetsVSSales")
Sheets("TargetsVSSales").Select
'Recherche du nom du produit colonne A (à adapter)
For Each e In Worksheets("TargetsVSSales").Range([A2],
[A65535].End(xlUp))
If e = c Then
'Recopie du résultat dans la bonne cellule
Range(Mid(Mois, 2, 1) & e.Row) = R
Exit For
End If
Next
Next
Je te propose de tester en l'état ce code avec l'exemple que tu m'as
fourni :
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Avant d'entamer des modifications en fonction de tes besoins
Une dernière interrogation dans ces paramètres
Lignes :
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Que reprèsente le dernier chiffre de chaque ligne : 4 et 7 ???
Merci pour la précision
Dans l'attente de tes impressions !!!
Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
En simplifier et par exemple (ne pas tenir compte de cellules)
Sur la feuille "Sales" j'aurais
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier
Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Et voilà
J'espère avoir allumé une petite bougie quelque part
Merci
A bientôt
Rex
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
942DA5FC-F1B6-450C-B708-7435AA2D6A45@microsoft.com...
Re bonjours Rex
Je vois que l'on se surpasse en matière de macro
Et avec de beaux résultats !!!!
Mais si tu vois pas d'inconvénient je vais revenir au premier code
que
je
t'ai proposé avec la correction adéquate pour recopier uniquement la
somme
dans la 2° cellule de la colonne K
Voici ce nouveau code :
Sheets("Sales").Select
R = 0
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
R = R + Range("BP" & l)
End If
Next
Sheets("TargetsVSSales").Range("K2") = R
Voilà donc pour la première partie
Celà te convient-il ???
Concernant la 2° partie
Je ne comprends pas que d'un côté on prenne en compte toutes les
lignes
de
la colonne A situées entre 2 dates d'un côté pour faire la somme des
ventes
correspondantes situées colonne BP et faire une différence en
fonction
des
nom de colonnes P à DO
Le résultat quelque soit ces colonnes sera toujours identiques
considérant
toujours les mêmes lignes (même intervale de dates) et la même
colonne
pour
la somme des ventes colonne BP
Il serait bon que tu éclaircisses ma lanterne pour de proposer la
solution
adaptée
Dans l'attente
Et oui
Trois réponses consécutive
J'ai un peu "bidouillé" ton code
et ceci fonctionne
MAIS
il ne me compte plus qu'une valeur et plus toutes les valeurs du
même
mois
J'ai changé les dates et ajouté les lignes de fin pour faire ce
que
je
proposais
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sheets("TargetsVSSales").Select
Range("K25").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/05/2007") And c <= CDate("31/05/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TargetsVSSales").Select
Range("AA2").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Sheets("TargetsVSSales").Select
Range("AA1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[+500]C:R[+1]C)"
Range("AA1").Copy
Sheets("TargetsVSSales").Range("K25").Pastespecial
Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A bientôt
Rex
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de
news:
88F38631-D184-4FE7-9256-1649894E102C@microsoft.com...
Salut Rex
J'avoue n'avoir pas tout compris dans ta demande surtout la
dernière
partie
En ce qui concerne
Récupérer et additioner (par exemple) toutes les ventes de la
colonnes
BP
de
la feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est
entre
le
1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K
(les
ventes
du mois de janvier)
Je te propose ce code qui fonctionne :
Sheets("TagetsVSSales").Select
Range("K2").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1],
[A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TagetsVSSales").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
End If
Next
Cette première partie te convient elle ???
Peux tu apporter des précisions pour la suite
Merci
Bonjour
Encore une requête pas facile à expliquer
Mais j'espère pouvoir (encore une fois) compter sur vous
Voici
Sur une feuille "Sales"
Et ce qui précède est resté coincé dans ta souris !!!! :
'Demande dans une boîte de dialogue du mois à traiter
Mois = InputBox("saisissez le Mois", "Mois traité")
'Recherche de la bonne colonne à alimenter feuille ("TargetsVSSales")
Sheets("TargetsVSSales").Select
Mois est le paramètre que saisie l'utilisateur dans une boîte de dialogue
pour identifier celui que l'on traite dans la ligne que tu as oubliée :
Mois = InputBox("saisissez le Mois", "Mois traité")
ce qui permet en fin de code de mettre le résultat dans la bonne cellule
de
la bonne colonne feuille "TargetsVSSales"
Est ce plus claire ainsi !!!
N'hèsite pas à prendre l'intégralité de mon code de :
'Demande dans une boîte de dialogue du mois à traiter
à
Next
Next
et ainsi d'avoir toutes les chances de ne pas avoir de bug
Donne moi tes impressions !!!Bonjour
Une petite question
Au début de ta macro tu fais un
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Pour le moment il se plante à cet endroit
Que cherche-t-il?
dois-je créer un colonne mois en plus de la date?
Et puis bien sur, je dois créer une colonne pour les résultats
Pour le moment je travail sur un fichier vierge avec une seul feuille
A bientôt
Rex
"FFO" a écrit dans le message de news:Bonjours Rex
Fort des derniers élément que tu m'as donnés
Je te propose ce code qui devrait faire pour l'ensemble de tes attentes
'Demande dans une boîte de dialogue du mois à traiter
Mois = InputBox("saisissez le Mois", "Mois traité")
'Recherche de la bonne colonne à alimenter feuille ("TargetsVSSales")
Sheets("TargetsVSSales").Select
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
_
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
'1° boucle traitant chaque produit feuille ("Sales") identifié entre
B1
et
C1 (à adapter)
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range("B1", "C1")
R = 0
'2° boucle traitant le produit de la 1° boucle
Sheets("Sales").Select
For Each d In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If d >= CDate("01/01/2007") And d <= CDate("31/01/2007") Then
l = d.Row
R = R + Range(Mid(c.Address, 2, 1) & l)
End If
Next
'Recopie du résultat du produit dans la feuille (("TargetsVSSales")
Sheets("TargetsVSSales").Select
'Recherche du nom du produit colonne A (à adapter)
For Each e In Worksheets("TargetsVSSales").Range([A2],
[A65535].End(xlUp))
If e = c Then
'Recopie du résultat dans la bonne cellule
Range(Mid(Mois, 2, 1) & e.Row) = R
Exit For
End If
Next
Next
Je te propose de tester en l'état ce code avec l'exemple que tu m'as
fourni :
1 Date Produit un Produit deux2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Avant d'entamer des modifications en fonction de tes besoins
Une dernière interrogation dans ces paramètres
Lignes :
2 Produit un 8 (5+2+1) 43 Produit deux 15 (2+4+9) 7
Que reprèsente le dernier chiffre de chaque ligne : 4 et 7 ???
Merci pour la précision
Dans l'attente de tes impressions !!!Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
En simplifier et par exemple (ne pas tenir compte de cellules)
Sur la feuille "Sales" j'aurais
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier
Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Et voilà
J'espère avoir allumé une petite bougie quelque part
Merci
A bientôt
Rex
"FFO" a écrit dans le message de news:Re bonjours Rex
Je vois que l'on se surpasse en matière de macro
Et avec de beaux résultats !!!!
Mais si tu vois pas d'inconvénient je vais revenir au premier code
que
je
t'ai proposé avec la correction adéquate pour recopier uniquement la
somme
dans la 2° cellule de la colonne K
Voici ce nouveau code :
Sheets("Sales").Select
R = 0
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
R = R + Range("BP" & l)
End If
Next
Sheets("TargetsVSSales").Range("K2") = R
Voilà donc pour la première partie
Celà te convient-il ???
Concernant la 2° partie
Je ne comprends pas que d'un côté on prenne en compte toutes les
lignes
de
la colonne A situées entre 2 dates d'un côté pour faire la somme des
ventescorrespondantes situées colonne BP et faire une différence en
fonction
des
nom de colonnes P à DO
Le résultat quelque soit ces colonnes sera toujours identiques
considérant
toujours les mêmes lignes (même intervale de dates) et la même
colonne
pourla somme des ventes colonne BP
Il serait bon que tu éclaircisses ma lanterne pour de proposer la
solution
adaptée
Dans l'attenteEt oui
Trois réponses consécutive
J'ai un peu "bidouillé" ton code
et ceci fonctionne
MAIS
il ne me compte plus qu'une valeur et plus toutes les valeurs du
même
moisJ'ai changé les dates et ajouté les lignes de fin pour faire ce
que
je
proposais
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sheets("TargetsVSSales").Select
Range("K25").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/05/2007") And c <= CDate("31/05/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TargetsVSSales").Select
Range("AA2").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Sheets("TargetsVSSales").Select
Range("AA1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[+500]C:R[+1]C)"
Range("AA1").Copy
Sheets("TargetsVSSales").Range("K25").Pastespecial
Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A bientôt
Rex
"FFO" a écrit dans le message de
news:Salut Rex
J'avoue n'avoir pas tout compris dans ta demande surtout la
dernière
partie
En ce qui concerne
Récupérer et additioner (par exemple) toutes les ventes de la
colonnes
BPdela feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est
entre
le1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K
(les
ventesdu mois de janvier)
Je te propose ce code qui fonctionne :
Sheets("TagetsVSSales").Select
Range("K2").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1],
[A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TagetsVSSales").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
End If
Next
Cette première partie te convient elle ???
Peux tu apporter des précisions pour la suite
MerciBonjour
Encore une requête pas facile à expliquer
Mais j'espère pouvoir (encore une fois) compter sur vous
Voici
Sur une feuille "Sales"
Une ereur de ma part
J'avais oublié de renommer une de tes Sales en TargetsVSSales puis que je
n'ai qu'une feuille nommée TargetsVSSales
Maintenant elle ne bloque plus
MAIS
Quand elle termine, elle n'a rien inscrit
Et la ligne 1 et sélectionné
Qu'est-ce que je fais de mal?
A bientôt
Rex
"rthompson" a écrit dans le message de
news:Bonjour
Une petite question
Au début de ta macro tu fais un
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Pour le moment il se plante à cet endroit
Que cherche-t-il?
dois-je créer un colonne mois en plus de la date?
Et puis bien sur, je dois créer une colonne pour les résultats
Pour le moment je travail sur un fichier vierge avec une seul feuille
A bientôt
Rex
"FFO" a écrit dans le message de news:Bonjours Rex
Fort des derniers élément que tu m'as donnés
Je te propose ce code qui devrait faire pour l'ensemble de tes attentes
'Demande dans une boîte de dialogue du mois à traiter
Mois = InputBox("saisissez le Mois", "Mois traité")
'Recherche de la bonne colonne à alimenter feuille ("TargetsVSSales")
Sheets("TargetsVSSales").Select
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
'1° boucle traitant chaque produit feuille ("Sales") identifié entre B1
et
C1 (à adapter)
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range("B1", "C1")
R = 0
'2° boucle traitant le produit de la 1° boucle
Sheets("Sales").Select
For Each d In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If d >= CDate("01/01/2007") And d <= CDate("31/01/2007") Then
l = d.Row
R = R + Range(Mid(c.Address, 2, 1) & l)
End If
Next
'Recopie du résultat du produit dans la feuille (("TargetsVSSales")
Sheets("TargetsVSSales").Select
'Recherche du nom du produit colonne A (à adapter)
For Each e In Worksheets("TargetsVSSales").Range([A2],
[A65535].End(xlUp))
If e = c Then
'Recopie du résultat dans la bonne cellule
Range(Mid(Mois, 2, 1) & e.Row) = R
Exit For
End If
Next
Next
Je te propose de tester en l'état ce code avec l'exemple que tu m'as
fourni :
1 Date Produit un Produit deux2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Avant d'entamer des modifications en fonction de tes besoins
Une dernière interrogation dans ces paramètres
Lignes :
2 Produit un 8 (5+2+1) 43 Produit deux 15 (2+4+9) 7
Que reprèsente le dernier chiffre de chaque ligne : 4 et 7 ???
Merci pour la précision
Dans l'attente de tes impressions !!!Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
En simplifier et par exemple (ne pas tenir compte de cellules)
Sur la feuille "Sales" j'aurais
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Et voilà
J'espère avoir allumé une petite bougie quelque part
Merci
A bientôt
Rex
"FFO" a écrit dans le message de news:Re bonjours Rex
Je vois que l'on se surpasse en matière de macro
Et avec de beaux résultats !!!!
Mais si tu vois pas d'inconvénient je vais revenir au premier code que
je
t'ai proposé avec la correction adéquate pour recopier uniquement la
somme
dans la 2° cellule de la colonne K
Voici ce nouveau code :
Sheets("Sales").Select
R = 0
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
R = R + Range("BP" & l)
End If
Next
Sheets("TargetsVSSales").Range("K2") = R
Voilà donc pour la première partie
Celà te convient-il ???
Concernant la 2° partie
Je ne comprends pas que d'un côté on prenne en compte toutes les
lignes de
la colonne A situées entre 2 dates d'un côté pour faire la somme des
ventescorrespondantes situées colonne BP et faire une différence en fonction
des
nom de colonnes P à DO
Le résultat quelque soit ces colonnes sera toujours identiques
considérant
toujours les mêmes lignes (même intervale de dates) et la même colonne
pourla somme des ventes colonne BP
Il serait bon que tu éclaircisses ma lanterne pour de proposer la
solution
adaptée
Dans l'attenteEt oui
Trois réponses consécutive
J'ai un peu "bidouillé" ton code
et ceci fonctionne
MAIS
il ne me compte plus qu'une valeur et plus toutes les valeurs du
même
moisJ'ai changé les dates et ajouté les lignes de fin pour faire ce que
je
proposais
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sheets("TargetsVSSales").Select
Range("K25").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/05/2007") And c <= CDate("31/05/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TargetsVSSales").Select
Range("AA2").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Sheets("TargetsVSSales").Select
Range("AA1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[+500]C:R[+1]C)"
Range("AA1").Copy
Sheets("TargetsVSSales").Range("K25").Pastespecial
Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A bientôt
Rex
"FFO" a écrit dans le message de
news:Salut Rex
J'avoue n'avoir pas tout compris dans ta demande surtout la
dernière
partie
En ce qui concerne
Récupérer et additioner (par exemple) toutes les ventes de la
colonnes
BPdela feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est
entre
le1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K
(les
ventesdu mois de janvier)
Je te propose ce code qui fonctionne :
Sheets("TagetsVSSales").Select
Range("K2").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
Une ereur de ma part
J'avais oublié de renommer une de tes Sales en TargetsVSSales puis que je
n'ai qu'une feuille nommée TargetsVSSales
Maintenant elle ne bloque plus
MAIS
Quand elle termine, elle n'a rien inscrit
Et la ligne 1 et sélectionné
Qu'est-ce que je fais de mal?
A bientôt
Rex
"rthompson" <roubliemoithompson@softscreen.be> a écrit dans le message de
news: OHlALNIkHHA.4852@TK2MSFTNGP03.phx.gbl...
Bonjour
Une petite question
Au début de ta macro tu fais un
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Pour le moment il se plante à cet endroit
Que cherche-t-il?
dois-je créer un colonne mois en plus de la date?
Et puis bien sur, je dois créer une colonne pour les résultats
Pour le moment je travail sur un fichier vierge avec une seul feuille
A bientôt
Rex
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
91A00A5C-D18D-4FE8-A1A8-2893F31A95B8@microsoft.com...
Bonjours Rex
Fort des derniers élément que tu m'as donnés
Je te propose ce code qui devrait faire pour l'ensemble de tes attentes
'Demande dans une boîte de dialogue du mois à traiter
Mois = InputBox("saisissez le Mois", "Mois traité")
'Recherche de la bonne colonne à alimenter feuille ("TargetsVSSales")
Sheets("TargetsVSSales").Select
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
'1° boucle traitant chaque produit feuille ("Sales") identifié entre B1
et
C1 (à adapter)
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range("B1", "C1")
R = 0
'2° boucle traitant le produit de la 1° boucle
Sheets("Sales").Select
For Each d In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If d >= CDate("01/01/2007") And d <= CDate("31/01/2007") Then
l = d.Row
R = R + Range(Mid(c.Address, 2, 1) & l)
End If
Next
'Recopie du résultat du produit dans la feuille (("TargetsVSSales")
Sheets("TargetsVSSales").Select
'Recherche du nom du produit colonne A (à adapter)
For Each e In Worksheets("TargetsVSSales").Range([A2],
[A65535].End(xlUp))
If e = c Then
'Recopie du résultat dans la bonne cellule
Range(Mid(Mois, 2, 1) & e.Row) = R
Exit For
End If
Next
Next
Je te propose de tester en l'état ce code avec l'exemple que tu m'as
fourni :
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Avant d'entamer des modifications en fonction de tes besoins
Une dernière interrogation dans ces paramètres
Lignes :
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Que reprèsente le dernier chiffre de chaque ligne : 4 et 7 ???
Merci pour la précision
Dans l'attente de tes impressions !!!
Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
En simplifier et par exemple (ne pas tenir compte de cellules)
Sur la feuille "Sales" j'aurais
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Et voilà
J'espère avoir allumé une petite bougie quelque part
Merci
A bientôt
Rex
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
942DA5FC-F1B6-450C-B708-7435AA2D6A45@microsoft.com...
Re bonjours Rex
Je vois que l'on se surpasse en matière de macro
Et avec de beaux résultats !!!!
Mais si tu vois pas d'inconvénient je vais revenir au premier code que
je
t'ai proposé avec la correction adéquate pour recopier uniquement la
somme
dans la 2° cellule de la colonne K
Voici ce nouveau code :
Sheets("Sales").Select
R = 0
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
R = R + Range("BP" & l)
End If
Next
Sheets("TargetsVSSales").Range("K2") = R
Voilà donc pour la première partie
Celà te convient-il ???
Concernant la 2° partie
Je ne comprends pas que d'un côté on prenne en compte toutes les
lignes de
la colonne A situées entre 2 dates d'un côté pour faire la somme des
ventes
correspondantes situées colonne BP et faire une différence en fonction
des
nom de colonnes P à DO
Le résultat quelque soit ces colonnes sera toujours identiques
considérant
toujours les mêmes lignes (même intervale de dates) et la même colonne
pour
la somme des ventes colonne BP
Il serait bon que tu éclaircisses ma lanterne pour de proposer la
solution
adaptée
Dans l'attente
Et oui
Trois réponses consécutive
J'ai un peu "bidouillé" ton code
et ceci fonctionne
MAIS
il ne me compte plus qu'une valeur et plus toutes les valeurs du
même
mois
J'ai changé les dates et ajouté les lignes de fin pour faire ce que
je
proposais
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sheets("TargetsVSSales").Select
Range("K25").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/05/2007") And c <= CDate("31/05/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TargetsVSSales").Select
Range("AA2").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Sheets("TargetsVSSales").Select
Range("AA1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[+500]C:R[+1]C)"
Range("AA1").Copy
Sheets("TargetsVSSales").Range("K25").Pastespecial
Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A bientôt
Rex
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de
news:
88F38631-D184-4FE7-9256-1649894E102C@microsoft.com...
Salut Rex
J'avoue n'avoir pas tout compris dans ta demande surtout la
dernière
partie
En ce qui concerne
Récupérer et additioner (par exemple) toutes les ventes de la
colonnes
BP
de
la feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est
entre
le
1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K
(les
ventes
du mois de janvier)
Je te propose ce code qui fonctionne :
Sheets("TagetsVSSales").Select
Range("K2").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
Une ereur de ma part
J'avais oublié de renommer une de tes Sales en TargetsVSSales puis que je
n'ai qu'une feuille nommée TargetsVSSales
Maintenant elle ne bloque plus
MAIS
Quand elle termine, elle n'a rien inscrit
Et la ligne 1 et sélectionné
Qu'est-ce que je fais de mal?
A bientôt
Rex
"rthompson" a écrit dans le message de
news:Bonjour
Une petite question
Au début de ta macro tu fais un
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Pour le moment il se plante à cet endroit
Que cherche-t-il?
dois-je créer un colonne mois en plus de la date?
Et puis bien sur, je dois créer une colonne pour les résultats
Pour le moment je travail sur un fichier vierge avec une seul feuille
A bientôt
Rex
"FFO" a écrit dans le message de news:Bonjours Rex
Fort des derniers élément que tu m'as donnés
Je te propose ce code qui devrait faire pour l'ensemble de tes attentes
'Demande dans une boîte de dialogue du mois à traiter
Mois = InputBox("saisissez le Mois", "Mois traité")
'Recherche de la bonne colonne à alimenter feuille ("TargetsVSSales")
Sheets("TargetsVSSales").Select
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
'1° boucle traitant chaque produit feuille ("Sales") identifié entre B1
et
C1 (à adapter)
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range("B1", "C1")
R = 0
'2° boucle traitant le produit de la 1° boucle
Sheets("Sales").Select
For Each d In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If d >= CDate("01/01/2007") And d <= CDate("31/01/2007") Then
l = d.Row
R = R + Range(Mid(c.Address, 2, 1) & l)
End If
Next
'Recopie du résultat du produit dans la feuille (("TargetsVSSales")
Sheets("TargetsVSSales").Select
'Recherche du nom du produit colonne A (à adapter)
For Each e In Worksheets("TargetsVSSales").Range([A2],
[A65535].End(xlUp))
If e = c Then
'Recopie du résultat dans la bonne cellule
Range(Mid(Mois, 2, 1) & e.Row) = R
Exit For
End If
Next
Next
Je te propose de tester en l'état ce code avec l'exemple que tu m'as
fourni :
1 Date Produit un Produit deux2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Avant d'entamer des modifications en fonction de tes besoins
Une dernière interrogation dans ces paramètres
Lignes :
2 Produit un 8 (5+2+1) 43 Produit deux 15 (2+4+9) 7
Que reprèsente le dernier chiffre de chaque ligne : 4 et 7 ???
Merci pour la précision
Dans l'attente de tes impressions !!!Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
En simplifier et par exemple (ne pas tenir compte de cellules)
Sur la feuille "Sales" j'aurais
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Et voilà
J'espère avoir allumé une petite bougie quelque part
Merci
A bientôt
Rex
"FFO" a écrit dans le message de news:Re bonjours Rex
Je vois que l'on se surpasse en matière de macro
Et avec de beaux résultats !!!!
Mais si tu vois pas d'inconvénient je vais revenir au premier code que
je
t'ai proposé avec la correction adéquate pour recopier uniquement la
somme
dans la 2° cellule de la colonne K
Voici ce nouveau code :
Sheets("Sales").Select
R = 0
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
R = R + Range("BP" & l)
End If
Next
Sheets("TargetsVSSales").Range("K2") = R
Voilà donc pour la première partie
Celà te convient-il ???
Concernant la 2° partie
Je ne comprends pas que d'un côté on prenne en compte toutes les
lignes de
la colonne A situées entre 2 dates d'un côté pour faire la somme des
ventescorrespondantes situées colonne BP et faire une différence en fonction
des
nom de colonnes P à DO
Le résultat quelque soit ces colonnes sera toujours identiques
considérant
toujours les mêmes lignes (même intervale de dates) et la même colonne
pourla somme des ventes colonne BP
Il serait bon que tu éclaircisses ma lanterne pour de proposer la
solution
adaptée
Dans l'attenteEt oui
Trois réponses consécutive
J'ai un peu "bidouillé" ton code
et ceci fonctionne
MAIS
il ne me compte plus qu'une valeur et plus toutes les valeurs du
même
moisJ'ai changé les dates et ajouté les lignes de fin pour faire ce que
je
proposais
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sheets("TargetsVSSales").Select
Range("K25").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/05/2007") And c <= CDate("31/05/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TargetsVSSales").Select
Range("AA2").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Sheets("TargetsVSSales").Select
Range("AA1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[+500]C:R[+1]C)"
Range("AA1").Copy
Sheets("TargetsVSSales").Range("K25").Pastespecial
Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A bientôt
Rex
"FFO" a écrit dans le message de
news:Salut Rex
J'avoue n'avoir pas tout compris dans ta demande surtout la
dernière
partie
En ce qui concerne
Récupérer et additioner (par exemple) toutes les ventes de la
colonnes
BPdela feuille "Sales"
dont la date de la colonne A de cette même feuille "Sales" est
entre
le1/1/2007 et le 31/1/2007
Et les mettre sur une feuille "TagetsVSSales" dans la colonne K
(les
ventesdu mois de janvier)
Je te propose ce code qui fonctionne :
Sheets("TagetsVSSales").Select
Range("K2").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
Bonjour
Oui j'ai mis l'intégrale
et il me demande de donner le mois
Et pour me simplifier les test j'ai mis sur la même feuille en G1, H1, I1,
J1 les mois janvier, février, mars, avril
Tout vas bien il ne bloque pas mais toute la ligne un est sélectionnée
PS
J'ai même violament secoué ma souris pour lui faire cracher le morceau sans
succès
Regarde ceci http://cjoint.com/?fhlFpxr7l0
A bientôt
Rex
"FFO" a écrit dans le message de news:Et ce qui précède est resté coincé dans ta souris !!!! :
'Demande dans une boîte de dialogue du mois à traiter
Mois = InputBox("saisissez le Mois", "Mois traité")
'Recherche de la bonne colonne à alimenter feuille ("TargetsVSSales")
Sheets("TargetsVSSales").Select
Mois est le paramètre que saisie l'utilisateur dans une boîte de dialogue
pour identifier celui que l'on traite dans la ligne que tu as oubliée :
Mois = InputBox("saisissez le Mois", "Mois traité")
ce qui permet en fin de code de mettre le résultat dans la bonne cellule
de
la bonne colonne feuille "TargetsVSSales"
Est ce plus claire ainsi !!!
N'hèsite pas à prendre l'intégralité de mon code de :
'Demande dans une boîte de dialogue du mois à traiter
à
Next
Next
et ainsi d'avoir toutes les chances de ne pas avoir de bug
Donne moi tes impressions !!!Bonjour
Une petite question
Au début de ta macro tu fais un
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Pour le moment il se plante à cet endroit
Que cherche-t-il?
dois-je créer un colonne mois en plus de la date?
Et puis bien sur, je dois créer une colonne pour les résultats
Pour le moment je travail sur un fichier vierge avec une seul feuille
A bientôt
Rex
"FFO" a écrit dans le message de news:Bonjours Rex
Fort des derniers élément que tu m'as donnés
Je te propose ce code qui devrait faire pour l'ensemble de tes attentes
'Demande dans une boîte de dialogue du mois à traiter
Mois = InputBox("saisissez le Mois", "Mois traité")
'Recherche de la bonne colonne à alimenter feuille ("TargetsVSSales")
Sheets("TargetsVSSales").Select
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
_
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
'1° boucle traitant chaque produit feuille ("Sales") identifié entre
B1
et
C1 (à adapter)
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range("B1", "C1")
R = 0
'2° boucle traitant le produit de la 1° boucle
Sheets("Sales").Select
For Each d In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If d >= CDate("01/01/2007") And d <= CDate("31/01/2007") Then
l = d.Row
R = R + Range(Mid(c.Address, 2, 1) & l)
End If
Next
'Recopie du résultat du produit dans la feuille (("TargetsVSSales")
Sheets("TargetsVSSales").Select
'Recherche du nom du produit colonne A (à adapter)
For Each e In Worksheets("TargetsVSSales").Range([A2],
[A65535].End(xlUp))
If e = c Then
'Recopie du résultat dans la bonne cellule
Range(Mid(Mois, 2, 1) & e.Row) = R
Exit For
End If
Next
Next
Je te propose de tester en l'état ce code avec l'exemple que tu m'as
fourni :
1 Date Produit un Produit deux2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Avant d'entamer des modifications en fonction de tes besoins
Une dernière interrogation dans ces paramètres
Lignes :
2 Produit un 8 (5+2+1) 43 Produit deux 15 (2+4+9) 7
Que reprèsente le dernier chiffre de chaque ligne : 4 et 7 ???
Merci pour la précision
Dans l'attente de tes impressions !!!Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
En simplifier et par exemple (ne pas tenir compte de cellules)
Sur la feuille "Sales" j'aurais
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier
Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Et voilà
J'espère avoir allumé une petite bougie quelque part
Merci
A bientôt
Rex
"FFO" a écrit dans le message de news:Re bonjours Rex
Je vois que l'on se surpasse en matière de macro
Et avec de beaux résultats !!!!
Mais si tu vois pas d'inconvénient je vais revenir au premier code
que
je
t'ai proposé avec la correction adéquate pour recopier uniquement la
somme
dans la 2° cellule de la colonne K
Voici ce nouveau code :
Sheets("Sales").Select
R = 0
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
R = R + Range("BP" & l)
End If
Next
Sheets("TargetsVSSales").Range("K2") = R
Voilà donc pour la première partie
Celà te convient-il ???
Concernant la 2° partie
Je ne comprends pas que d'un côté on prenne en compte toutes les
lignes
de
la colonne A situées entre 2 dates d'un côté pour faire la somme des
ventescorrespondantes situées colonne BP et faire une différence en
fonction
des
nom de colonnes P à DO
Le résultat quelque soit ces colonnes sera toujours identiques
considérant
toujours les mêmes lignes (même intervale de dates) et la même
colonne
pourla somme des ventes colonne BP
Il serait bon que tu éclaircisses ma lanterne pour de proposer la
solution
adaptée
Dans l'attenteEt oui
Trois réponses consécutive
J'ai un peu "bidouillé" ton code
et ceci fonctionne
MAIS
il ne me compte plus qu'une valeur et plus toutes les valeurs du
même
moisJ'ai changé les dates et ajouté les lignes de fin pour faire ce
que
je
proposais
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sheets("TargetsVSSales").Select
Range("K25").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/05/2007") And c <= CDate("31/05/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TargetsVSSales").Select
Range("AA2").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Sheets("TargetsVSSales").Select
Range("AA1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[+500]C:R[+1]C)"
Range("AA1").Copy
Sheets("TargetsVSSales").Range("K25").Pastespecial
Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A bientôt
Bonjour
Oui j'ai mis l'intégrale
et il me demande de donner le mois
Et pour me simplifier les test j'ai mis sur la même feuille en G1, H1, I1,
J1 les mois janvier, février, mars, avril
Tout vas bien il ne bloque pas mais toute la ligne un est sélectionnée
PS
J'ai même violament secoué ma souris pour lui faire cracher le morceau sans
succès
Regarde ceci http://cjoint.com/?fhlFpxr7l0
A bientôt
Rex
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
E7C9F9BE-B44C-4D8B-B430-8F0C96B1D52B@microsoft.com...
Et ce qui précède est resté coincé dans ta souris !!!! :
'Demande dans une boîte de dialogue du mois à traiter
Mois = InputBox("saisissez le Mois", "Mois traité")
'Recherche de la bonne colonne à alimenter feuille ("TargetsVSSales")
Sheets("TargetsVSSales").Select
Mois est le paramètre que saisie l'utilisateur dans une boîte de dialogue
pour identifier celui que l'on traite dans la ligne que tu as oubliée :
Mois = InputBox("saisissez le Mois", "Mois traité")
ce qui permet en fin de code de mettre le résultat dans la bonne cellule
de
la bonne colonne feuille "TargetsVSSales"
Est ce plus claire ainsi !!!
N'hèsite pas à prendre l'intégralité de mon code de :
'Demande dans une boîte de dialogue du mois à traiter
à
Next
Next
et ainsi d'avoir toutes les chances de ne pas avoir de bug
Donne moi tes impressions !!!
Bonjour
Une petite question
Au début de ta macro tu fais un
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Pour le moment il se plante à cet endroit
Que cherche-t-il?
dois-je créer un colonne mois en plus de la date?
Et puis bien sur, je dois créer une colonne pour les résultats
Pour le moment je travail sur un fichier vierge avec une seul feuille
A bientôt
Rex
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
91A00A5C-D18D-4FE8-A1A8-2893F31A95B8@microsoft.com...
Bonjours Rex
Fort des derniers élément que tu m'as donnés
Je te propose ce code qui devrait faire pour l'ensemble de tes attentes
'Demande dans une boîte de dialogue du mois à traiter
Mois = InputBox("saisissez le Mois", "Mois traité")
'Recherche de la bonne colonne à alimenter feuille ("TargetsVSSales")
Sheets("TargetsVSSales").Select
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
_
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
'1° boucle traitant chaque produit feuille ("Sales") identifié entre
B1
et
C1 (à adapter)
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range("B1", "C1")
R = 0
'2° boucle traitant le produit de la 1° boucle
Sheets("Sales").Select
For Each d In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If d >= CDate("01/01/2007") And d <= CDate("31/01/2007") Then
l = d.Row
R = R + Range(Mid(c.Address, 2, 1) & l)
End If
Next
'Recopie du résultat du produit dans la feuille (("TargetsVSSales")
Sheets("TargetsVSSales").Select
'Recherche du nom du produit colonne A (à adapter)
For Each e In Worksheets("TargetsVSSales").Range([A2],
[A65535].End(xlUp))
If e = c Then
'Recopie du résultat dans la bonne cellule
Range(Mid(Mois, 2, 1) & e.Row) = R
Exit For
End If
Next
Next
Je te propose de tester en l'état ce code avec l'exemple que tu m'as
fourni :
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Avant d'entamer des modifications en fonction de tes besoins
Une dernière interrogation dans ces paramètres
Lignes :
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Que reprèsente le dernier chiffre de chaque ligne : 4 et 7 ???
Merci pour la précision
Dans l'attente de tes impressions !!!
Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
En simplifier et par exemple (ne pas tenir compte de cellules)
Sur la feuille "Sales" j'aurais
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier
Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Et voilà
J'espère avoir allumé une petite bougie quelque part
Merci
A bientôt
Rex
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
942DA5FC-F1B6-450C-B708-7435AA2D6A45@microsoft.com...
Re bonjours Rex
Je vois que l'on se surpasse en matière de macro
Et avec de beaux résultats !!!!
Mais si tu vois pas d'inconvénient je vais revenir au premier code
que
je
t'ai proposé avec la correction adéquate pour recopier uniquement la
somme
dans la 2° cellule de la colonne K
Voici ce nouveau code :
Sheets("Sales").Select
R = 0
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
R = R + Range("BP" & l)
End If
Next
Sheets("TargetsVSSales").Range("K2") = R
Voilà donc pour la première partie
Celà te convient-il ???
Concernant la 2° partie
Je ne comprends pas que d'un côté on prenne en compte toutes les
lignes
de
la colonne A situées entre 2 dates d'un côté pour faire la somme des
ventes
correspondantes situées colonne BP et faire une différence en
fonction
des
nom de colonnes P à DO
Le résultat quelque soit ces colonnes sera toujours identiques
considérant
toujours les mêmes lignes (même intervale de dates) et la même
colonne
pour
la somme des ventes colonne BP
Il serait bon que tu éclaircisses ma lanterne pour de proposer la
solution
adaptée
Dans l'attente
Et oui
Trois réponses consécutive
J'ai un peu "bidouillé" ton code
et ceci fonctionne
MAIS
il ne me compte plus qu'une valeur et plus toutes les valeurs du
même
mois
J'ai changé les dates et ajouté les lignes de fin pour faire ce
que
je
proposais
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sheets("TargetsVSSales").Select
Range("K25").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/05/2007") And c <= CDate("31/05/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TargetsVSSales").Select
Range("AA2").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Sheets("TargetsVSSales").Select
Range("AA1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[+500]C:R[+1]C)"
Range("AA1").Copy
Sheets("TargetsVSSales").Range("K25").Pastespecial
Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A bientôt
Bonjour
Oui j'ai mis l'intégrale
et il me demande de donner le mois
Et pour me simplifier les test j'ai mis sur la même feuille en G1, H1, I1,
J1 les mois janvier, février, mars, avril
Tout vas bien il ne bloque pas mais toute la ligne un est sélectionnée
PS
J'ai même violament secoué ma souris pour lui faire cracher le morceau sans
succès
Regarde ceci http://cjoint.com/?fhlFpxr7l0
A bientôt
Rex
"FFO" a écrit dans le message de news:Et ce qui précède est resté coincé dans ta souris !!!! :
'Demande dans une boîte de dialogue du mois à traiter
Mois = InputBox("saisissez le Mois", "Mois traité")
'Recherche de la bonne colonne à alimenter feuille ("TargetsVSSales")
Sheets("TargetsVSSales").Select
Mois est le paramètre que saisie l'utilisateur dans une boîte de dialogue
pour identifier celui que l'on traite dans la ligne que tu as oubliée :
Mois = InputBox("saisissez le Mois", "Mois traité")
ce qui permet en fin de code de mettre le résultat dans la bonne cellule
de
la bonne colonne feuille "TargetsVSSales"
Est ce plus claire ainsi !!!
N'hèsite pas à prendre l'intégralité de mon code de :
'Demande dans une boîte de dialogue du mois à traiter
à
Next
Next
et ainsi d'avoir toutes les chances de ne pas avoir de bug
Donne moi tes impressions !!!Bonjour
Une petite question
Au début de ta macro tu fais un
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Pour le moment il se plante à cet endroit
Que cherche-t-il?
dois-je créer un colonne mois en plus de la date?
Et puis bien sur, je dois créer une colonne pour les résultats
Pour le moment je travail sur un fichier vierge avec une seul feuille
A bientôt
Rex
"FFO" a écrit dans le message de news:Bonjours Rex
Fort des derniers élément que tu m'as donnés
Je te propose ce code qui devrait faire pour l'ensemble de tes attentes
'Demande dans une boîte de dialogue du mois à traiter
Mois = InputBox("saisissez le Mois", "Mois traité")
'Recherche de la bonne colonne à alimenter feuille ("TargetsVSSales")
Sheets("TargetsVSSales").Select
Rows("1:1").Select
Selection.Find(What:=Mois, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
_
MatchCase:úlse, SearchFormat:úlse).Activate
'Adresse de la cellule portant le Mois à traiter
Mois = ActiveCell.Address
'1° boucle traitant chaque produit feuille ("Sales") identifié entre
B1
et
C1 (à adapter)
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range("B1", "C1")
R = 0
'2° boucle traitant le produit de la 1° boucle
Sheets("Sales").Select
For Each d In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If d >= CDate("01/01/2007") And d <= CDate("31/01/2007") Then
l = d.Row
R = R + Range(Mid(c.Address, 2, 1) & l)
End If
Next
'Recopie du résultat du produit dans la feuille (("TargetsVSSales")
Sheets("TargetsVSSales").Select
'Recherche du nom du produit colonne A (à adapter)
For Each e In Worksheets("TargetsVSSales").Range([A2],
[A65535].End(xlUp))
If e = c Then
'Recopie du résultat dans la bonne cellule
Range(Mid(Mois, 2, 1) & e.Row) = R
Exit For
End If
Next
Next
Je te propose de tester en l'état ce code avec l'exemple que tu m'as
fourni :
1 Date Produit un Produit deux2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Avant d'entamer des modifications en fonction de tes besoins
Une dernière interrogation dans ces paramètres
Lignes :
2 Produit un 8 (5+2+1) 43 Produit deux 15 (2+4+9) 7
Que reprèsente le dernier chiffre de chaque ligne : 4 et 7 ???
Merci pour la précision
Dans l'attente de tes impressions !!!Bon ben je vas essssayai de mettre le feu à ta lanterne :-))))
En simplifier et par exemple (ne pas tenir compte de cellules)
Sur la feuille "Sales" j'aurais
No ligne A B C
1 Date Produit un Produit deux
2 1/1/2007 5 2
3 2/1/2007 2 4
4 3/1/2007 1 9
5 5/2/2007 4 7
Et sur ma feuille "TargetsVSSales" je voudrais trouver
No ligne A B C
1 Produit Janvier
Février
2 Produit un 8 (5+2+1) 4
3 Produit deux 15 (2+4+9) 7
Et voilà
J'espère avoir allumé une petite bougie quelque part
Merci
A bientôt
Rex
"FFO" a écrit dans le message de news:Re bonjours Rex
Je vois que l'on se surpasse en matière de macro
Et avec de beaux résultats !!!!
Mais si tu vois pas d'inconvénient je vais revenir au premier code
que
je
t'ai proposé avec la correction adéquate pour recopier uniquement la
somme
dans la 2° cellule de la colonne K
Voici ce nouveau code :
Sheets("Sales").Select
R = 0
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
If c >= CDate("01/01/2007") And c <= CDate("31/01/2007") Then
l = c.Row
R = R + Range("BP" & l)
End If
Next
Sheets("TargetsVSSales").Range("K2") = R
Voilà donc pour la première partie
Celà te convient-il ???
Concernant la 2° partie
Je ne comprends pas que d'un côté on prenne en compte toutes les
lignes
de
la colonne A situées entre 2 dates d'un côté pour faire la somme des
ventescorrespondantes situées colonne BP et faire une différence en
fonction
des
nom de colonnes P à DO
Le résultat quelque soit ces colonnes sera toujours identiques
considérant
toujours les mêmes lignes (même intervale de dates) et la même
colonne
pourla somme des ventes colonne BP
Il serait bon que tu éclaircisses ma lanterne pour de proposer la
solution
adaptée
Dans l'attenteEt oui
Trois réponses consécutive
J'ai un peu "bidouillé" ton code
et ceci fonctionne
MAIS
il ne me compte plus qu'une valeur et plus toutes les valeurs du
même
moisJ'ai changé les dates et ajouté les lignes de fin pour faire ce
que
je
proposais
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sheets("TargetsVSSales").Select
Range("K25").Select
Sheets("Sales").Select
For Each c In Worksheets("Sales").Range([A1], [A65535].End(xlUp))
Sheets("Sales").Select
If c >= CDate("01/05/2007") And c <= CDate("31/05/2007") Then
l = c.Row
Range("BP" & l).Copy
Sheets("TargetsVSSales").Select
Range("AA2").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Sheets("TargetsVSSales").Select
Range("AA1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[+500]C:R[+1]C)"
Range("AA1").Copy
Sheets("TargetsVSSales").Range("K25").Pastespecial
Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A bientôt