XL 2010 couleur d un bouton en fonction de l'existence d une feuille

submarine22

XLDnaute Junior
bonsoir à toutes et à tous quelqu'un connaitrait t il un code pour que mon bouton change de couleur si un onglet existe
exemple si l onglet "01 janvier 2022" existe alors mon bouton passe au vert.
Merci par avance
bonne soirée à toutes et tous
 

submarine22

XLDnaute Junior
Merci beaucoup Eric c'est un bon début effectivement et cela correspond à ce que je recherche.
bon week-end à toi et tout le forum
rebonsoir Eric je viens de tester cela ne marche pas tout à fait comme je le voudrais en fait il faudrait que dès que l on vois le mot janvier accompagné de son jour ex 01 janvier dans le noms de l onglet qu'importe l année ou l heure , il passe au vert sinon il reste gris j'ai tester cela mais ca ne fonctionne pas

Private Sub UserForm_Initialize()

If Me.Name = "01 janvier*" Then

Me.CommandButton1.BackColor = &HFF00&

Else

If Me.Name = "01janvier*" Then

Me.CommandButton1.BackColor = &HC0C0C0

End If

End If

End Sub

si tu as une petite idée, merci par avance
bonne soirée
@+ Submarine22
 

Eric C

XLDnaute Barbatruc
Bonjour le forum
Bonjour submarine22

J'ai un petite idée. A voir si elle te convient (Il n'y a pas réellement d'évènement approprié pour cela) via le fichier joint.

Bonne après-midi à toutes & à tous

Cela fait toujours plaisir de savoir que la contribution a aidé (ou pas).

N'hésitez pas à marquer le sujet comme résolu le cas échéant ou à liker.


@+ Eric c
 

Pièces jointes

  • Submarine V2.xlsm
    26.2 KB · Affichages: 7

ChTi160

XLDnaute Barbatruc
Bonsoir submarine22
Bonsoir Eric
Une autre approche !
J'ai formaté la cellule en date format "dd mmmm"
Puis On y entre ensuite une date. Ex ; 12/01/2022
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Address <> "$A$1" Then Exit Sub
 Sheets(1).Name = Format([A1], "dd mmmm") 'On formate le Nom de la Feuille
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Feuil1.Name Like "* janvier*" Then
           Me.CommandButton1.BackColor = vbGreen
    Else
           Me.CommandButton1.BackColor = &HC0C0C0
    End If
End Sub
Bonne fin de Soirée
Jean marie
 

submarine22

XLDnaute Junior
Bonsoir submarine22
Bonsoir Eric
Une autre approche !
J'ai formaté la cellule en date format "dd mmmm"
Puis On y entre ensuite une date. Ex ; 12/01/2022
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Address <> "$A$1" Then Exit Sub
 Sheets(1).Name = Format([A1], "dd mmmm") 'On formate le Nom de la Feuille
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Feuil1.Name Like "* janvier*" Then
           Me.CommandButton1.BackColor = vbGreen
    Else
           Me.CommandButton1.BackColor = &HC0C0C0
    End If
End Sub
Bonne fin de Soirée
Jean marie
bonsoir jean marie et merci beaucoup pour cette autre version
bonne soirée à toi
Submarine22
 

submarine22

XLDnaute Junior
Bonjour le forum
Bonjour submarine22

J'ai un petite idée. A voir si elle te convient (Il n'y a pas réellement d'évènement approprié pour cela) via le fichier joint.

Bonne après-midi à toutes & à tous

Cela fait toujours plaisir de savoir que la contribution a aidé (ou pas).

N'hésitez pas à marquer le sujet comme résolu le cas échéant ou à liker.


@+ Eric c
Bonsoir Eric et bonsoir à tous
alors ton code marche super bien, mais la difficulté que je rends compte c'est que je crée des feuilles au fur et à mesure et donc dans le code le "feuil1" reste systématiquement et donc pose soucis, un bout du code:

Private Sub UserForm_Initialize() 'à l'initlaisation de l'UserForm

MsgBox ("Bonjour, les dates grises n'ont pas de formations Attribuées!")


If Feuil1.Name Like "01 janvier*" Then 'feuille qui existe mais qui correspond à la feuille 76 donc le Feuil1 pose soucis
Me.CommandButton1.BackColor = vbGreen
Else
Me.CommandButton1.BackColor = &HC0C0C0
End If

If Feuil1.Name Like "02 janvier*" Then ' feuille qui n'existe pas encore mais probablement à l' avenir
Me.CommandButton2.BackColor = vbGreen
Else
Me.CommandButton2.BackColor = &HC0C0C0
End If

End Sub
ma question se porte donc sur le "feuil1" est-il possible de le remplacer par autre chose??
Franchement si vous avez une idée je prends.
Merci encore pour votre Patiente
@+
Submarine22
 

ChTi160

XLDnaute Barbatruc
Bonjour Submarine22
tu dis :
alors ton code marche super bien, mais la difficulté que je rends compte c'est que je crée des feuilles au fur et à mesure et donc dans le code le "feuil1" reste systématiquement et donc pose soucis,
pourrais-tu expliquer ce que tu veux faire avec le code ?
si tu as 15 feuilles du 01 janvier au 15 janvier que veux-tu prendre en compte ?
car par exemple :
VB:
If Feuil1.Name Like "* janvier*"
Prend en compte toutes ces feuilles dont le Nom Contient "janvier"
si tu mets "01 janvier" la macro ne prendra en compte que cette seule Feuille !
Pour :
ma question se porte donc sur le "feuil1" est-il possible de le remplacer par autre chose??
Explications, Exemples

Bonne Journée
jean marie
 
Dernière édition:

submarine22

XLDnaute Junior
Bonjour Submarine22
tu dis :

pourrais-tu expliquer ce que tu veux faire avec le code ?
si tu as 15 feuilles du 01 janvier au 15 janvier que veux-tu prendre en compte ?
car par exemple :
VB:
If Feuil1.Name Like "* janvier*"
Prend en compte toutes ces feuilles dont le Nom Contient "janvier"
si tu mets "01 janvier" la macro ne prendra en compte que cette seule Feuille !
Pour :

Explications, Exemples

Bonne Journée
jean marie
Bonjour Jean Marie
alors je vais essayer de me faire comprendre ce qui ne va pas être facile😂😂.
je joint une partie de mon fichier car l'ensemble est trop lourd.
j ai un userform qui me permet de créer des feuilles qui correspondes a des fiche d inscription pour des dates de formations et ces dates feront référence à un autre userform calendrier et donc lorsque cette nouvelle date est crée le bouton correspondant dans le userform calendrier doit passer au vert afin que les personnes saches que cette date est disponible. et la je bloque car dans le code d eric ou le tient, il faut que cela fasse référence au numéro de feuille et non le non d'onglet. j'espère avoir été asser clair.
Merci par avance et bonne fin de semaine.
 

Pièces jointes

  • infoform test.zip
    533.6 KB · Affichages: 5

ChTi160

XLDnaute Barbatruc
Bonjour marine
qu'entends-tu par "numéro de la feuille"
Je publie depuis mon téléphone.
Donc pas vu le fichier, je viens de regarder
Ou doit on rechercher ce "Numéro de Feuille"
Parles-tu du Jour (ex : 01) de la date "Nom de Feuille" (Ex : 01 Janvier 2022) ?
Bonne journée
Jean marie
 
Dernière édition:

submarine22

XLDnaute Junior
Bonjour marine
qu'entends-tu par "numéro de la feuille"
Je publie depuis mon téléphone.
Donc pas vu le fichier, je viens de regarder
Ou doit on rechercher ce "Numéro de Feuille"
Parles-tu du Jour (ex : 01) de la date "Nom de Feuille" (Ex : 01 Janvier 2022) ?
Bonne journée
Jean marie
dans le code il y a ce 1 (par exemple) que je te souligne et met en gras (If Feuil1.Name Like "02 janvier*" Then) j'ai essayer de le supprimer mais cela ne change rien, pour être un peu plus précis, dans le microsoft excel Objet, devant le nom de l'onglet s'affiche la racine de la feuille ex : Feuil76 (02 janvier 2022) et du coup si j inscrit (If Feuil76.Name Like "02 janvier*" Then) la le code fonctionne.
donc est il possible de s'affranchir de ce "feuil76" ou quelque soit sont numéro pour que cela fonctionne ?
Merci encore de ta patiente
 

ChTi160

XLDnaute Barbatruc
Re
je me demande si tu n'aurais pas intrêt a passer par Une Base de Données qui reprendrait l'ensemble de tes données et Une Seule Feuille "FORMATION "INCENDIE / P.S.E" qui serait alimentée en fonction d'un Choix!
Car cela peut faire beaucoup de feuille (ex 1 formation par Jour = 365 feuilles)
je regarde ton post#13
je reviens ce soir Lol
Jean marie
 

submarine22

XLDnaute Junior
dans le code il y a ce 1 (par exemple) que je te souligne et met en gras (If Feuil1.Name Like "02 janvier*" Then) j'ai essayer de le supprimer mais cela ne change rien, pour être un peu plus précis, dans le microsoft excel Objet, devant le nom de l'onglet s'affiche la racine de la feuille ex : Feuil76 (02 janvier 2022) et du coup si j inscrit (If Feuil76.Name Like "02 janvier*" Then) la le code fonctionne.
donc est il possible de s'affranchir de ce "feuil76" ou quelque soit sont numéro pour que cela fonctionne ?
Merci encore de ta patiente

Re
je me demande si tu n'aurais pas intrêt a passer par Une Base de Données qui reprendrait l'ensemble de tes données et Une Seule Feuille "FORMATION "INCENDIE / P.S.E" qui serait alimentée en fonction d'un Choix!
Car cela peut faire beaucoup de feuille (ex 1 formation par Jour = 365 feuilles)
je regarde ton post#13
Jean marie
Re
j y avais penser mais je ne vois pas comment intégrer une nouvelle date qui j aurais a devoir créer de dernière minute tout en conservant le format d'inscription pour pouvoir l imprimer ensuite
Fabrice
 

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16