Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Ilan
Bonjour Jean-Pierre Qu'entends-tu par comptabiliser les valeurs ?
Puisqu'il n'existe que 12 mois cree un tableau (indice de 0 a 11)
Exemple : Pour une somme des valeurs par mois Dim ValeurParMois(11) as Double Dim i As integer, Mois As integer i=1 While range("A" & i).Value<>"" Mois=Month(CDate(Range("C" & i).Value)) ValeurParMois(Mois-1)=ValeurParMois(Mois-1)+Range("B" & i).Value i=i+1 Wend (si colonne B contient les valeurs et la colonne C les dates)
Bonjour,
J'ai un problème de fond
J'ai un tableau d'environ 20 000 lignes avec des noms, des valeurs et des dates...
Je souhaite, en outre, comptabiliser les valeurs en les répartissant par mois.
J'ai tester une appli avec FOR TO et des IF, mais la macro est trop longue compte tenu des autres tris, l'exécution dure environ 1/2 heure.
Je n'arrive pas à utiliser SELECT CASE, la ligne en dessous ne fonctionne pas
Case Is > Sheets("Nb").Cells(1, 4) And Sheets("D").Cells(i, 8) < Sheets("Nb").Cells(1, 6) 'JANVIER
Il me reste à utiliser des IF avec un test pour chacun des mois, mais cela implique de réécrire les expressions pour chaque mois.
Je sais pas si j'ai été bien clair
Si vous avez une idée je suis preneur.
Merci d'avance
Jean-Pierre
Bonjour Jean-Pierre
Qu'entends-tu par comptabiliser les valeurs ?
Puisqu'il n'existe que 12 mois cree un tableau (indice de 0 a 11)
Exemple : Pour une somme des valeurs par mois
Dim ValeurParMois(11) as Double
Dim i As integer, Mois As integer
i=1
While range("A" & i).Value<>""
Mois=Month(CDate(Range("C" & i).Value))
ValeurParMois(Mois-1)=ValeurParMois(Mois-1)+Range("B" & i).Value
i=i+1
Wend
(si colonne B contient les valeurs et la colonne C les dates)
Bonjour,
J'ai un problème de fond
J'ai un tableau d'environ 20 000 lignes avec des noms, des valeurs et des
dates...
Je souhaite, en outre, comptabiliser les valeurs en les répartissant par
mois.
J'ai tester une appli avec FOR TO et des IF, mais la macro est trop longue
compte tenu des autres tris, l'exécution dure environ 1/2 heure.
Je n'arrive pas à utiliser SELECT CASE, la ligne en dessous ne fonctionne
pas
Case Is > Sheets("Nb").Cells(1, 4) And Sheets("D").Cells(i, 8) <
Sheets("Nb").Cells(1, 6) 'JANVIER
Il me reste à utiliser des IF avec un test pour chacun des mois, mais cela
implique de réécrire les expressions pour chaque mois.
Bonjour Jean-Pierre Qu'entends-tu par comptabiliser les valeurs ?
Puisqu'il n'existe que 12 mois cree un tableau (indice de 0 a 11)
Exemple : Pour une somme des valeurs par mois Dim ValeurParMois(11) as Double Dim i As integer, Mois As integer i=1 While range("A" & i).Value<>"" Mois=Month(CDate(Range("C" & i).Value)) ValeurParMois(Mois-1)=ValeurParMois(Mois-1)+Range("B" & i).Value i=i+1 Wend (si colonne B contient les valeurs et la colonne C les dates)
Bonjour,
J'ai un problème de fond
J'ai un tableau d'environ 20 000 lignes avec des noms, des valeurs et des dates...
Je souhaite, en outre, comptabiliser les valeurs en les répartissant par mois.
J'ai tester une appli avec FOR TO et des IF, mais la macro est trop longue compte tenu des autres tris, l'exécution dure environ 1/2 heure.
Je n'arrive pas à utiliser SELECT CASE, la ligne en dessous ne fonctionne pas
Case Is > Sheets("Nb").Cells(1, 4) And Sheets("D").Cells(i, 8) < Sheets("Nb").Cells(1, 6) 'JANVIER
Il me reste à utiliser des IF avec un test pour chacun des mois, mais cela implique de réécrire les expressions pour chaque mois.
Je sais pas si j'ai été bien clair
Si vous avez une idée je suis preneur.
Merci d'avance
Jean-Pierre
E KERGRESSE
Salut Jean-Pierre,
Un tableau croisé dynamique ne réglerait-il pas plus simplement ton problème ?
Pour cela, si tes dates ; - ne concernent qu'une seule année, tu rajoutes une colonne Mois dans ton tableau et tu calcules le mois de chaque mouvement avec la formule =Mois(Celluledate) - concernent plusieurs années alors ta nouvelle colonne contient la formule =Annee(CelluleDate) & "-" & Mois(CelluleDate)
NB : CelluleDAte étant la référence à ta cellule contenant la date, au cas où cela ne serait pas suffisamment clair.
Tu construis ensuite ton TCD avec ce champ.
Si tu dois récupérer les totaux mensuels pour la suite de ton programme, tu peux le faire assez facilement en VBA à partir des lignes de titre et des totaux de ton tableau.
Cordialement.
"Jean-Pierre" a écrit dans le message de news: 0mJnd.16310$
Bonjour,
J'ai un problème de fond
J'ai un tableau d'environ 20 000 lignes avec des noms, des valeurs et des dates...
Je souhaite, en outre, comptabiliser les valeurs en les répartissant par mois.
J'ai tester une appli avec FOR TO et des IF, mais la macro est trop longue
compte tenu des autres tris, l'exécution dure environ 1/2 heure.
Je n'arrive pas à utiliser SELECT CASE, la ligne en dessous ne fonctionne pas
Case Is > Sheets("Nb").Cells(1, 4) And Sheets("D").Cells(i, 8) < Sheets("Nb").Cells(1, 6) 'JANVIER
Il me reste à utiliser des IF avec un test pour chacun des mois, mais cela implique de réécrire les expressions pour chaque mois.
Je sais pas si j'ai été bien clair
Si vous avez une idée je suis preneur.
Merci d'avance
Jean-Pierre
Salut Jean-Pierre,
Un tableau croisé dynamique ne réglerait-il pas plus simplement ton problème
?
Pour cela, si tes dates ;
- ne concernent qu'une seule année, tu rajoutes une colonne Mois dans ton
tableau et tu calcules le mois de chaque mouvement avec la formule
=Mois(Celluledate)
- concernent plusieurs années alors ta nouvelle colonne contient la formule
=Annee(CelluleDate) & "-" & Mois(CelluleDate)
NB : CelluleDAte étant la référence à ta cellule contenant la date, au cas
où cela ne serait pas suffisamment clair.
Tu construis ensuite ton TCD avec ce champ.
Si tu dois récupérer les totaux mensuels pour la suite de ton programme, tu
peux le faire assez facilement en VBA à partir des lignes de titre et des
totaux de ton tableau.
Cordialement.
"Jean-Pierre" <ajp.pasquet@tele2.fr> a écrit dans le message de news:
0mJnd.16310$1p.14243@nntpserver.swip.net...
Bonjour,
J'ai un problème de fond
J'ai un tableau d'environ 20 000 lignes avec des noms, des valeurs et des
dates...
Je souhaite, en outre, comptabiliser les valeurs en les répartissant par
mois.
J'ai tester une appli avec FOR TO et des IF, mais la macro est trop
longue
compte tenu des autres tris, l'exécution dure environ 1/2 heure.
Je n'arrive pas à utiliser SELECT CASE, la ligne en dessous ne fonctionne
pas
Case Is > Sheets("Nb").Cells(1, 4) And Sheets("D").Cells(i, 8) <
Sheets("Nb").Cells(1, 6) 'JANVIER
Il me reste à utiliser des IF avec un test pour chacun des mois, mais cela
implique de réécrire les expressions pour chaque mois.
Un tableau croisé dynamique ne réglerait-il pas plus simplement ton problème ?
Pour cela, si tes dates ; - ne concernent qu'une seule année, tu rajoutes une colonne Mois dans ton tableau et tu calcules le mois de chaque mouvement avec la formule =Mois(Celluledate) - concernent plusieurs années alors ta nouvelle colonne contient la formule =Annee(CelluleDate) & "-" & Mois(CelluleDate)
NB : CelluleDAte étant la référence à ta cellule contenant la date, au cas où cela ne serait pas suffisamment clair.
Tu construis ensuite ton TCD avec ce champ.
Si tu dois récupérer les totaux mensuels pour la suite de ton programme, tu peux le faire assez facilement en VBA à partir des lignes de titre et des totaux de ton tableau.
Cordialement.
"Jean-Pierre" a écrit dans le message de news: 0mJnd.16310$
Bonjour,
J'ai un problème de fond
J'ai un tableau d'environ 20 000 lignes avec des noms, des valeurs et des dates...
Je souhaite, en outre, comptabiliser les valeurs en les répartissant par mois.
J'ai tester une appli avec FOR TO et des IF, mais la macro est trop longue
compte tenu des autres tris, l'exécution dure environ 1/2 heure.
Je n'arrive pas à utiliser SELECT CASE, la ligne en dessous ne fonctionne pas
Case Is > Sheets("Nb").Cells(1, 4) And Sheets("D").Cells(i, 8) < Sheets("Nb").Cells(1, 6) 'JANVIER
Il me reste à utiliser des IF avec un test pour chacun des mois, mais cela implique de réécrire les expressions pour chaque mois.
Je sais pas si j'ai été bien clair
Si vous avez une idée je suis preneur.
Merci d'avance
Jean-Pierre
Jean-Pierre
Merci pour ces bonnes idées
Je vais les tester
@+
Jean-Pierre
"Jean-Pierre" a écrit dans le message de news: 0mJnd.16310$
Bonjour,
J'ai un problème de fond
J'ai un tableau d'environ 20 000 lignes avec des noms, des valeurs et des dates...
Je souhaite, en outre, comptabiliser les valeurs en les répartissant par mois.
J'ai tester une appli avec FOR TO et des IF, mais la macro est trop longue compte tenu des autres tris, l'exécution dure environ 1/2 heure.
Je n'arrive pas à utiliser SELECT CASE, la ligne en dessous ne fonctionne pas
Case Is > Sheets("Nb").Cells(1, 4) And Sheets("D").Cells(i, 8) < Sheets("Nb").Cells(1, 6) 'JANVIER
Il me reste à utiliser des IF avec un test pour chacun des mois, mais cela implique de réécrire les expressions pour chaque mois.
Je sais pas si j'ai été bien clair
Si vous avez une idée je suis preneur.
Merci d'avance
Jean-Pierre
Merci pour ces bonnes idées
Je vais les tester
@+
Jean-Pierre
"Jean-Pierre" <ajp.pasquet@tele2.fr> a écrit dans le message de news:
0mJnd.16310$1p.14243@nntpserver.swip.net...
Bonjour,
J'ai un problème de fond
J'ai un tableau d'environ 20 000 lignes avec des noms, des valeurs et des
dates...
Je souhaite, en outre, comptabiliser les valeurs en les répartissant par
mois.
J'ai tester une appli avec FOR TO et des IF, mais la macro est trop
longue compte tenu des autres tris, l'exécution dure environ 1/2 heure.
Je n'arrive pas à utiliser SELECT CASE, la ligne en dessous ne fonctionne
pas
Case Is > Sheets("Nb").Cells(1, 4) And Sheets("D").Cells(i, 8) <
Sheets("Nb").Cells(1, 6) 'JANVIER
Il me reste à utiliser des IF avec un test pour chacun des mois, mais cela
implique de réécrire les expressions pour chaque mois.