Bilan entre deux périodes

  • Initiateur de la discussion Initiateur de la discussion Ugop
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Ugop

XLDnaute Nouveau
Bonjour,
Ma question est: est-il possible de créer un classeur bilan entre 2 periodes?
Je m'explique, dans un dossier Année(ex:2011),il y a 12 classeur excel (Janvier a decembre) comprenant 5feuilles chacun. Dans chaque classeur la 5éme feuille est la feuille bilan du mois.
J'aimerai savoir si il est donc possible de selectionner 2mois et de recuperer la feuille bilan de tous les Mois compris entre les 2Mois qu'on aura choisi ( ex: Juin et Aout => récuperer la feuille5 des classeur juin,juillet et Aout), et de faire la somme de tous les bilan directement.
(sachant que toutes les feuilles bilan sont identiques)

Merci de votre attention 🙂
 
Dernière édition:
Re : Bilan entre deux périodes

Le code doit etre ecris dans un module? Feuil1 ou ThisWorkbook ?
Sinon meme après le "Set" il n'y a eu aucune modification.
Le code s'applique a chaque ouverture ? ou il faut faire une manipulation pour l'executer?

Merci
 
Re : Bilan entre deux périodes

Tel quel, la procédure doit être écrite dans un nouveau module ordinaire. Elle peut être affectée à un bouton de formulaire ou de barre d'outils ou être appelée dans la procédure _Click d'un bouton de commande ou dans n'importe quelle procédure évènement.
 
Re : Bilan entre deux périodes

[highlight=Erreur de compilation] Type défini par l'utilisateur non défini [/code]
IL me semble qu'il faut modifier des critères dans les references du module mais la liste et longue...
Le probleme peut venir d'autre part? ( a part moi ^^ )

Merci encore
 
Re : Bilan entre deux périodes

Je n'avais pas vu. Il n'existe pas de type de donnée Month. Il faut utiliser Date.
Ou alors Long et passer seulement des vrais numéros de mois, mais alors on perd le bénéfice de pouvoir retrouver le nom du mois par Format avec mmm.
C'est moins embêtant de passer à la procédure des dates construites à l'aide de DateSerial avec n'importe quelle année et 1 comme jour.
 
Re : Bilan entre deux périodes

Sub SommBilans()
Dim FCible As Worksheet, FSourc As Worksheet
Set FCible = ThisWorkbook.Worksheets(1)
DateDéb = Feuil1.[DateDéb].Value
DateFin = Feuil1.[DateFin].Value
FCible.[B14:E20].Value = 0
FCible.[B28:E29].Value = 0
FCible.[B37:E42].Value = 0
FCible.[B50:E51].Value = 0
FCible.[B59:E67].Value = 0
FCible.[B75😀75].Value = 0
While Month(DateDéb) <= Month(DateFin) & Month
Workbooks.Open ThisWorkbook.Path & "\" & Format(DateDéb, "mmmm") & ".xls"
Set FSourc = ActiveWorkbook.Worksheets(5)
FSourc.[B14:E20].Copy
FCible.[B14:E20].PasteSpecial Paste:=xlValues, Operation:=xlAdd
FSourc.[B28:E29].Copy
FCible.[B28:E29].PasteSpecial Paste:=xlValues, Operation:=xlAdd
FSourc.[B37:E42].Copy
FCible.[B37:E42].PasteSpecial Paste:=xlValues, Operation:=xlAdd
FSourc.[B50:E51].Copy
FCible.[B50:E51].PasteSpecial Paste:=xlValues, Operation:=xlAdd
FSourc.[B59:E67].Copy
FCible.[B59:E67].PasteSpecial Paste:=xlValues, Operation:=xlAdd
FSourc.[B75😀75].Copy
FCible.[B75😀75].PasteSpecial Paste:=xlValues, Operation:=xlAdd
ActiveWorkbook.Saved = True
ActiveWorkbook.Close
DateDéb = DateSerial(Year(DateDéb), Month(DateDéb) + 1, 1)
Wend
End Sub

En bidouillant j'ai trouvé ca. il marche mais le probleme, c'est qu'il fait une boucle infini quand on arrive a decembre. On peut rajouter une condition comme en C du genre & ou || ? pour dire que quand month(DateDéb) = 1 => arret de la macro

Merci beaucoups
 
Dernière édition:
Re : Bilan entre deux périodes

Non faites plutôt
VB:
While DateDéb <= DateFin
en veillant à ce que les dates soient partout des débuts de mois. Le mois repasse à 1 si on spécifie 13 à DateSerial, mais l'année s'incrémente automatiquement en conséquence.
À+
 
Re : Bilan entre deux périodes

Merci beaucoups pour ton aide

Voici un petit Bilan de mon post pour ceux qui se retrouve dans la même situation que moi.
J'ai un dossier comportant 12 fichier excel.Chacun de ces fichiers corresponds à un mois de l'année ( janvier, fevrier,etc..)
Grace a l'aide de Dranreb, J'ai creer un fichier excel ("Bilan.xls")qui reprend les données des fichier mois.xls en fonction de 2date ( exemple: janviers et mars => je recupere les données de janvier Février et mars), dans mon cas je recuperais juste la feuille5 des fichiers mois.xls
et j'additionne toutes les valeurs dans le Fichier Bilan.
J'ai defini 2 cases ( E3 => DateDéb et E4 => DateFin)
Voici le code du fichier bilan:
Sub SommBilans()
Dim FCible As Worksheet, FSourc As Worksheet
Set FCible = ThisWorkbook.Worksheets(1) "j'initialise le fichier Bilan,feuil1 a FCible"
DateDéb = Feuil1.[DateDéb].Value "je declare les valeurs DateDéb et DateFin que
DateFin = Feuil1.[DateFin].Value j'ai défini dans la feuil1 de mon fichier Bilan"
FCible.[B14:E20].Value = 0
FCible.[B28:E29].Value = 0
FCible.[B37:E42].Value = 0 "j'initialise les valeurs a 0 pour avoir une page vierge"
FCible.[B50:E51].Value = 0
FCible.[B59:E67].Value = 0
FCible.[B75😀75].Value = 0
While Month(DateDéb) <= Month(DateFin)
Workbooks.Open ThisWorkbook.Path & "\" & Format(DateDéb, "mmmm") & ".xls"
Set FSourc = ActiveWorkbook.Worksheets(5) "FSourc = classeur mois.xls feuil5"
FSourc.[B14:E20].Copy
FCible.[B14:E20].PasteSpecial Paste:=xlValues, Operation:=xlAdd
FSourc.[B28:E29].Copy
FCible.[B28:E29].PasteSpecial Paste:=xlValues, Operation:=xlAdd
FSourc.[B37:E42].Copy
FCible.[B37:E42].PasteSpecial Paste:=xlValues, Operation:=xlAdd
FSourc.[B50:E51].Copy
FCible.[B50:E51].PasteSpecial Paste:=xlValues, Operation:=xlAdd
FSourc.[B59:E67].Copy
FCible.[B59:E67].PasteSpecial Paste:=xlValues, Operation:=xlAdd
FSourc.[B75😀75].Copy
FCible.[B75😀75].PasteSpecial Paste:=xlValues, Operation:=xlAdd
ActiveWorkbook.Saved = True "fermeture du classeur mois afin d'éviter d'avoir
ActiveWorkbook.Close 10fichier d'ouvert a la fin de la macro"
DateDéb = DateSerial(Year(DateDéb), Month(DateDéb) + 1, 1)
If Month(DateDéb) = 1 Then Exit Sub
Wend
End Sub


Merci et Bonne continuation. Si tu as quelquechose a rajouter Danreb je ty invite et encore merci pour ton aide.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Règle de 3
Réponses
11
Affichages
831
Réponses
3
Affichages
671
Réponses
2
Affichages
553
Retour