Macro pr initialiser CommandButton avec contenu cellules (libellé,couleur et police)

Christian0258

XLDnaute Accro
Bonjour à tout le forum,

Je souhaiterais votre aide pour écrire les codes afin d'initialiser des "CommandButton" en fonction des celulles.
Il faudrait ainsi initialiser le contenu de la cellule, sa couleur de fond et sa police.

Je vous remercie, par avance, pour le temps que vous voudrez bien vouloir m'accorder.

Bien à vous,
Christian
 

Pièces jointes

  • InitialiserCommandButtonAvecContenuCellule.zip
    76 KB · Affichages: 23

job75

XLDnaute Barbatruc
Re : Macro pr initialiser CommandButton avec contenu cellules (libellé,couleur et pol

Bonjour Christian,

Avec 29 boutons tu vas tout droit vers l'usine à gaz pour pas un rond.

La bonne méthode : un double-clic sur une cellule du planning ouvrira un USF avec ListBox ou ComboBox donnant le choix des horaires ou codes.

Dis-moi, tu n'a pas donné suite à mes posts #11 et #12 de ce fil :

https://www.excel-downloads.com/thr...-les-envoyer-sur-une-feuille-conges-i.223088/

A+
 

Christian0258

XLDnaute Accro
Re : Macro pr initialiser CommandButton avec contenu cellules (libellé,couleur et pol

Re, le forum, job75,

Ok, j'ai compris 29 boutons l'usine à gaz.

Ok aussi pour la bonne méthode avec ListBox ou ComboBox donnant le choix des horaires ou codes, mais peux-tu me faire un début de piste pour que je puisse ainsi continuer ?.

Et pour les "nons réponses" à l'ancien fil, tout simplement pas vu...je suis allé voir..,c'est tout simplement le top, j'ai enregistré ce fichier pour travailler dessus après...

Super boulot...
Merci à toi,
à te lire
Christian
 

job75

XLDnaute Barbatruc
Re : Macro pr initialiser CommandButton avec contenu cellules (libellé,couleur et pol

Re,

Même pas besoin d'un UserForm, une ComboBox sur la feuille suffit.

Les 2 macros dans le code de la feuille :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row < 12 Or Target.Column < 4 Then Exit Sub
Cancel = True
With ComboBox1
  .Top = Target.Top
  .Left = Target(1, 2).Left
  .Visible = True
  .Activate
  .SelStart = 0
  .SelLength = Len(.Text)
  .DropDown
End With
End Sub

Private Sub ComboBox1_LostFocus()
With ComboBox1
  [Codes].Cells(.ListIndex + 1).Copy .TopLeftCell(1, 0)
  If .ListIndex = -1 Then .TopLeftCell(1, 0) = "": .Text = ""
  If Len([Codes].Cells(.ListIndex + 1)) > 4 Then _
    .TopLeftCell(1, 0).HorizontalAlignment = xlGeneral
  .Visible = False
End With
End Sub
Les cellules de la plage nommée "Codes", ainsi que celle au-dessus (A1) sont copiées.

J'ai doté ces cellules de bordures bleues.

Fichier joint [Edit] j'ai donné un nom mieux adapté.

A+
 

Pièces jointes

  • Planning avec ComboBox(1).xlsm
    73.9 KB · Affichages: 34
Dernière édition:

Christian0258

XLDnaute Accro
Re : Macro pr initialiser CommandButton avec contenu cellules (libellé,couleur et pol

Re, le forum, job75,

Encore un super boulot, job75, un grand merci.
En revanche tu dis que la cellule A1, est aussi copiée, je ne la vois pas si je laisse A1 vide....
Et comment mettre le résultat final avec "Renvoyer à la ligne automatiquement" plutôt qu'horizontal (afin d'en voir un max dans la cellule dans la cas d'un horaire)...

Bien à toi.
Salut l'artiste.

Christian
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Macro pr initialiser CommandButton avec contenu cellules (libellé,couleur et pol

Bonjour Christian, le forum,

Avec cette solution (2) l'entrée des données est plus simple :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row < 12 Or Target.Column < 4 Then Exit Sub
Cancel = True
With ComboBox1
  .Top = Target.Top
  .Left = Target(1, 2).Left
  .Visible = True
  .Activate
  .SelStart = 0
  .SelLength = Len(.Text)
  .DropDown
End With
End Sub

Private Sub ComboBox1_Change()
With ComboBox1
  [Codes].Cells(.ListIndex + 1).Copy .TopLeftCell(1, 0)
  If .ListIndex = -1 Then .Text = ""
  If Len([Codes].Cells(.ListIndex + 1)) > 4 Then _
    .TopLeftCell(1, 0).HorizontalAlignment = xlGeneral
End With
ActiveCell.Activate
End Sub

Private Sub ComboBox1_LostFocus()
ComboBox1.Visible = False
End Sub
Pour répondre à tes questions :

- j'ai effacé Coul!A1, cela simplifie le code, mais bien mettre des bordures sur cette cellule.

- j'ai mis un retour à la ligne sur les cellules de la plage Coul!A1:A29.

A+
 

Pièces jointes

  • Planning avec ComboBox(2).xlsm
    74.9 KB · Affichages: 29

Christian0258

XLDnaute Accro
Re : Macro pr initialiser CommandButton avec contenu cellules (libellé,couleur et pol

Re, bonjour le forum, job75,

Dis-moi, lorsque je choisis et valide (expl) RH, lorsque je pointe sur une autre cellule par défaut c'est RH qui est "surbrillé" mais je ne peux pas le valider il faut faire un autre choix et revenir sur RH...?

Peux-tu me dire,

Merci pour tout ce beau boulot.

Bien à toi,
Christian
 

job75

XLDnaute Barbatruc
Re : Macro pr initialiser CommandButton avec contenu cellules (libellé,couleur et pol

Re,

En effet, alors pour entrer la même valeur, faire un double-clic dans la ComboBox :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row < 12 Or Target.Column < 4 Then Exit Sub
Cancel = True
With ComboBox1
  .Top = Target.Top
  .Left = Target(1, 2).Left
  .Visible = True
  .Activate
  .SelStart = 0
  .SelLength = Len(.Text)
  .DropDown
End With
End Sub

Private Sub ComboBox1_Change()
With ComboBox1
  [Codes].Cells(.ListIndex + 1).Copy .TopLeftCell(1, 0)
  If .ListIndex = -1 Then .Text = ""
  If Len([Codes].Cells(.ListIndex + 1)) > 4 Then _
    .TopLeftCell(1, 0).HorizontalAlignment = xlGeneral
End With
ActiveCell.Activate
End Sub

Private Sub ComboBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
ComboBox1_Change
End Sub

Private Sub ComboBox1_LostFocus()
ComboBox1.Visible = False
End Sub
Fichier (3).

A+
 

Pièces jointes

  • Planning avec ComboBox(3).xlsm
    75.3 KB · Affichages: 26

Christian0258

XLDnaute Accro
Re : Macro pr initialiser CommandButton avec contenu cellules (libellé,couleur et pol

Re, le forum, job75,

C'est parfait, chapeau.

Une dernière question:
dans le post2 de ce fil, concernant ton super travail sur les congés...comment l'adapter sur le planning un feuille annuel sur lequel tu viens de travailler post8 ,

Merci infiniment, pour tout.

Bien à toi,
Christian
 

job75

XLDnaute Barbatruc
Re : Macro pr initialiser CommandButton avec contenu cellules (libellé,couleur et pol

Re,

S'il y a une feuille de planning par mois, il faut bien sûr mettre une ComboBox dans chaque feuille.

Et copier le code du post #8 dans chaque feuille.

Adapte au besoin ta plage "Codes".

A+
 

Christian0258

XLDnaute Accro
Re : Macro pr initialiser CommandButton avec contenu cellules (libellé,couleur et pol

Re, le forum, job75,

Ok et merci pour ces explications et précisions.

Mais je me suis mal exprimé :
ma question
-dans le post2, tu m'as rappelé que je n'avais pas répondu à un fil précédent sur des Congés... comment adapter ce travail, sur les congés d'un planning sur 12 feuilles (ou +), sur le planning ComboBox3 de ce fil...

Merci beaucoup,
Bien amicalement,
Christian
 

Christian0258

XLDnaute Accro
Re : Macro pr initialiser CommandButton avec contenu cellules (libellé,couleur et pol

Re, le forum, job75

Tout à fait bien exprimé, job75,
c'est moi qui ne suis pas clair...lol

Je vais aller sur le bon fil (celui qui traite des congés, dont tu parles post2) pour poser ma question évoquée post11

Merci pour tout.
Bien à toi,
Christian
 

job75

XLDnaute Barbatruc
Re : Macro pr initialiser CommandButton avec contenu cellules (libellé,couleur et pol

Re,

Pour en terminer avec ce fil, la macro MouseDown va bien mieux que la DblClick :

Code:
Private Sub ComboBox1_MouseDown(ByVal Button%, ByVal Shift%, ByVal X!, ByVal Y!)
Dim t
t = Now
While Now < t + 1 / 864000: DoEvents: Wend
If Y < ComboBox1.Height Then ComboBox1_Change
End Sub
Fichier (4).

Edit : ça n'allait pas, mais avec la boucle et DoEvents, ça a l'air de marcher.

A+
 

Pièces jointes

  • Planning avec ComboBox(4).xlsm
    76 KB · Affichages: 34
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 099
Messages
2 085 282
Membres
102 848
dernier inscrit
boum