Problème macro de mise à jour (logiciel de planning)

Annasteph

XLDnaute Nouveau
Bonjour à tous

Je débute sur VBA (depuis deux jours exactement...) et forcément j'ai déjà un problème....

Le fichier concerné est un planning de gestion de personnel récupéré sur internet que j'utilise au quotidien et que je souhaiterais améliorer.

Voici mon problème:

Il y a des boutons sur chaque feuille qui permettent lorsque l'on clique dessus de remplir automatiquement le planning (boutons présents sur 12 feuillets correspondant aux douze mois...).
Seulement le nombre de bouton est limité à 23. Il m'en faudrait naturellement plus vu que l'on n'en a jamais assez.

Je me mets donc au travail

Je copie un des boutons que je colle à la suite des autres. (pour commencer sur l’onglet janvier) Je lui affecte la macro suivante que j'ai insérée dans le module nommé "planning" existant en copiant une macro déjà existante:

Sub bouton_24() 'cellule verte
If Intersect(ActiveCell, Range("planning")) Is Nothing Then Exit Sub
ActiveSheet.Unprotect (pwd)
ActiveCell = Sheets("Accueil").Range("B31").Value
ActiveCell.Interior.Color = RGB(0, 255, 0)
ActiveCell.Font.Color = RGB(0, 0, 0)
ActiveCell.Offset(0, 1).Select
ActiveSheet.Protect (pwd)
End Sub

Je prends soins de mettre le numéro 24, de changer la cellule ou il va chercher le texte à copier (sheet accueil.range B31)

Et cela fonctionne ….il m’insère bien les données que je désire lorsque je clique dessus

Mais….cela se complique

Sur le feuillet accueil où sont situés l'ensemble des codes et où chaque bouton va chercher les données qu'ils doivent copier, il y a une macro qui permet lorsque l’on change de codes de modifier l'ensemble des textes inscrits dans chaque bouton et dans chaque feuillet (sur le bouton lui même)...je ne suis pas très clair, désolé

Ce bouton se nomme "appliquer les nouveaux codes" :

La macro affectée est la suivante :

Sub maj_boutons()
'Applique les codes de la page d'accueil sur la légende des boutons (bouton01 à bouton23)
Dim n As Byte, i As Byte
For n = 3 To 14
Sheets(n).Select
ActiveSheet.Unprotect (pwd)
For i = 1 To 23
ActiveSheet.Shapes("bouton" & Format(i, "00")).Select
Selection.Characters.Text = Sheets("Accueil").Cells(7 + i, 2).Value '1ère cellule : B8
Next i
ActiveSheet.Protect (pwd)
Next n
Sheets("Accueil").Select
End Sub

Je crois comprendre que le n correspond aux feuillets et le i aux codes disponibles. Je vois qu’il va chercher le premier texte dans la cellule B8 et je ne vois grand chose d’autre….

Tout bêtement, je change alors For i : 1 To 23 en 1 To 24

Et forcément, cela ne marche pas….cela bloque la macro et ne met pas à jour mes différents boutons sur les différentes feuilles. IL s’arrête au 23ème bouton du premier feuillet concerné (janvier) et ne va pas jusqu’au bouton créé….

Je pense que cela vient de cette commande :

ActiveSheet.Shapes("bouton" & Format(i, "00")).Select –Difficile de comprendre le ("bouton" & Format(i, "00")) ? Les boutons ont-ils une référence ?

Je joins le fichier si une âme charitable peut m’éclaircir (j'ai du ne laisser que le mois de janvier pour des raisons de taille de fcihier).

Merci pour votre aide

PS : J’ai créé le 24ème bouton seulement sur l’onglet janvier et il se nomme 24 (un peu excentré à droite des autres).
La liste des codes se trouve sur l’onglet « accueil » et le mot de passe est FATAL….Merci
 

Pièces jointes

  • Essai planning 2.xls
    253.5 KB · Affichages: 61
  • Essai planning 2.xls
    253.5 KB · Affichages: 73
  • Essai planning 2.xls
    253.5 KB · Affichages: 63

BrunoM45

XLDnaute Barbatruc
Re : Problème macro de mise à jour (logiciel de planning)

Bonsoir Annasteph et bienvenue sur ce forum ;)

Pas mal, tu as bien compris le principe (en 2 jours) ;)

Ce qu'il faut, c'est nommer tes nouveaux boutons en bouton24, bouton25, etc...
Pour cela, tu sélectionnes le bouton en question et dans la zone nom tu saisi celui-ci (voir copie d'écran)

ATTENTION !
Ta boucle For n = 3 to 14 veut dire que tu as 2 feuilles avant celle de Janvier

A+
 

Pièces jointes

  • ScreenShot145.jpg
    ScreenShot145.jpg
    45.7 KB · Affichages: 217
Dernière édition:

Papou-net

XLDnaute Barbatruc
Re : Problème macro de mise à jour (logiciel de planning)

Bonsoir annasteph, et bienvenue,

Bruno, que je salue au passage, t'a déjà aiguillé sur une piste.

Pour ma part, je me suis attaché à simplifier ton code concernant les boutons. Comme tu pourras le constater, la mise-à-jour se fait par l'appel de chaque bouton d'une procédure commune nommée MaJActiveCell.

Le code s'en trouve bien simplifié. L'idéal serait de regrouper tes boutons au sein d'un module de classe mais, comme tu débutes, j'en reste à une solution plus compréhensible à ton niveau (ce qui n'est pas péjoratif, crois-le bien).

Espérant avoir pu t'aider.

Bon courage dans ta progression.

Cordialement.
 

Pièces jointes

  • Copie de Essai planning 2.xls
    227 KB · Affichages: 74

Annasteph

XLDnaute Nouveau
Re : Problème macro de mise à jour (logiciel de planning)

Géant...

Merci Bruno, cela à l'air si simple quand on vous lis........et merci à Papou de t'être pencher sur mon problème. Je reviendrai sûrement à la charge dans pas longtemps.....

A très bientôt et merci encore

Cordialement
 

Discussions similaires

Réponses
3
Affichages
532
Réponses
14
Affichages
493
Réponses
4
Affichages
565

Statistiques des forums

Discussions
298 001
Messages
1 965 036
Membres
200 811
dernier inscrit
Stellamrjacque