Bonjour Joc62 du Québec, ;)
merci pour toutes tes infos, dont le $ Canadien. :)
tu as écrit : « mais les fonctions de macro me sont totalement inconnues,
alors j'ai peur que se soit un peu trop long à assimiler et appliquer ».
bon, alors à tout hasard, je vais quand même te faire un tutoriel, afin que
tu puisses appliquer ma solution à ton fichier réel ; avantage :
tu pourras mieux savourer ton sirop d'érable. :D mais fais quand même
attention aux ours : vu qu'ils aiment le miel, j'suis sûr qu'ils aiment aussi
ton sirop d'érable ! ils pourraient venir pour essayer de te le chiper !
(oui, si l'ours est un geek, tu peux lui prêter ton PC ; il pourra montrer
aux caribous comment il utilise Excel et VBA)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
il y a 5 étapes ; quand tu en auras l'habitude, le tout est très facile
et rapide à faire ; ça sera pour toi comme pour les pros. ;)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
étape 1 : l'extension du nom de ton fichier réel est .xlsx ; les fichiers .xlsx ne
peuvent pas contenir de code VBA ; donc ils ne peuvent pas contenir de macros ;
c'est pourquoi il faut d'abord le convertir en fichier .xlsm (m est pour macros) ;
voici comment le faire :
ouvre ton fichier .xlsx ; appuie sur la touche F12 ➯ fenêtre "Enregistrer sous" ;
en bas, sous « Nom de fichier : », il y a « Type : » ; dans la liste, sélectionne
« Classeur Excel (prenant en charge les macros) » ; clique sur le bouton
« Enregistrer » ; ça y'est, c'est ça qui a converti ton fichier en .xlsm ; tu vois,
c'est tout simple. (pour info, le fichier .xlsx est toujours sur ton disque dur ;
plus tard, tu pourras le supprimer pour garder uniquement le fichier .xlsm)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
étape 2 : fais Alt F11 ➯ fenêtre "Microsoft Visual Basic" ; fais Alt i m ➯ ça insère
un nouveau module (appelé Module1) ; à droite, ça a affiché la page blanche de
Module1 ; c'est là qu'on écrit le code VBA ; mais toi, tu as juste à y coller (par un
copier / coller) ce texte de 16 lignes de mon code VBA :
Option Explicit
'TCC = Total des Cellules Colorées, peu importe
'la couleur de remplissage (= couleur du fond)
Private Function TCC(plg As Range) As Currency
Dim cel As Range
For Each cel In plg
If cel.Interior.Color <> 16777215 Then TCC = TCC + cel
Next cel
End Function
Sub GetTCC()
[D25] = TCC([C3:G6]): [D26] = TCC([C8:G18])
End Sub
je pense que tu sais faire un copier / coller. ;) donc pas besoin d'expliquer ça ;
tu vois, là aussi, c'est tout simple. ;)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
étape 3 : si dans ton fichier réel les données sont aux mêmes emplacements,
alors dans cette étape, c'est encore plus simple : tu n'as rien du tout à faire :
tu peux passer directement à l'étape 4.
si dans ton fichier réel les données sont à d'autres emplacements, alors il faut
modifier cette avant-dernière ligne du code VBA :
[D25] = TCC([C3:G6]): [D26] = TCC([C8:G18])
et uniquement ce qui va être indiqué en gras.
a) par exemple : si la cellule pour le total des dépôts est G50 et si la cellule
pour le total des retraits est G51 (au lieu de D25 et D26), alors met :
[G50] = TCC([C3:G6]): [G51] = TCC([C8:G18])
b) par exemple : si la plage de cellules pour tous les dépôts est F8:J17 et
si la plage de cellules pour tous les retraits est F19:J40, alors met :
[D25] = TCC([F8:J17]): [D26] = TCC([F19:J40])
mais comme dans ce cas les totaux seront plus bas, il faut par exemple :
[D47] = TCC([F8:J17]): [D48] = TCC([F19:J40])
ATTENTION :
SI par exemple dans un mois tu vas modifier la structure de ta feuille de calcul
(en y ajoutant des lignes ou des colonnes, ou en supprimant des lignes ou des
colonnes), y'aura PAS d'adaptation AUTOMATIQUE du code VBA ; tu devras
DE NOUVEAU MODIFIER cette avant-dernière ligne de code VBA, comme
tu viens de le faire, pour adapter les coordonnées de cellules et plages.
(mais en principe, et à priori, la structure de ta feuille de calcul est déjà ok
et définitive : tu n'auras plus besoin de changer la structure ni le code)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
étape 4 : fais de nouveau Alt F11 ➯ ça retourne sur la fenêtre d'Excel ; fais Ctrl s
pour sauvegarder ton fichier : ça enregistre ton classeur Excel, dont le code VBA
que tu as copié / collé (et que tu as peut-être modifié selon mes indications).
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
normalement, ça devrait être fini, mais il faut aussi mettre le raccourci clavier
qui avait été utilisé pour lancer la macro GetTCC ; je parle du Ctrl e.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
étape 5 : fais Alt F8 ➯ fenêtre "Macro" ; c'est pour afficher la liste des macros,
mais dans ce fichier, il y a une seule macro : GetTCC ; cette macro est déjà
sélectionnée (ligne sur fond bleu) ; à droite, clique sur le bouton « Options... »
➯ fenêtre "Options de macro" ; c'est là : dans la petite case blanche, met
la lettre que tu veux utiliser pour le raccourci clavier ; donc ici e ; tu auras :
« Nom de la macro : GetTCC » et « Touche de raccourci : Ctrl+ e »
en bas, clique sur le bouton "OK" ➯ ça retourne à la fenêtre "Macro" ; tu peux
cliquer à droite sur le bouton "Exécuter" OU : tu peux fermer la fenêtre (clic
sur la croix de fermeture du coin haut droit) puis faire Ctrl e.
attention : même si tu n'exécutes pas la macro, fais Ctrl s pour sauvegarder
le fichier (dont le raccourci clavier e que tu viens de mettre).
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
voilà, le tutoriel est terminé ; tu peux demander à l'ours de faire Ctrl e. :D
n'oublie pas que la mise à jour des totaux n'est pas automatique ; alors
dis à l'ours qu'il doit faire Ctrl e après avoir changé les couleurs de fond.
au cas où tu n'auras pas eu le temps ou l'envie de suivre mon tutoriel,
tant pis ; ça servira quand même pour les autres lecteurs de ce post.
rhodo