Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Monthview control 6.0 (SP6)

17 réponses
Avatar
Chris Col
Bonjour à tous,
Quelqu'un aurait-il un exemple d'utilisation directe de Monthview control
dans une feuille ce calcul (Excel 2010) sans passer par l'insertion dans un
UserForm ?

Il est en effet possible d'insérer directement ce contrôle sur la feuille
par :
Développeur, Insérer, Autres contrôles.
- Si je positionne le calendrier au milieu de la page par exemple, dés que
je quitte le mode création
un second calendrier apparait en haut à gauche de la page et c'est ce
dernier qui est actif.
Le premier inséré reste visible et inutile.
- Si j'enregistre la macro d'insertion cela donne :

Sub Macro1()
ActiveSheet.OLEObjects.Add(ClassType:="MSComCtl2.MonthView.2",
Link:=False _
, DisplayAsIcon:=False, Left:=465, Top:=90.75, Width:=166.5,
Height:= _
156).Select
End Sub

Comment la modifier pour fixer la cellule liée et rendre le contrôle
immédiatement
utilisable car Excel reste en mode création.

Ce n'est pas un réel besoin, c'est juste pour comprendre et apprendre.
Merci d'avance.

Cc.

7 réponses

1 2
Avatar
michdenis
212 représente le Id du bouton "mode création" de la barre du menu Standard de la fenêtre de l'éditeur de code.

On l'obtient par la commande suivante :
Le 13 c'est la position 13 dans la barre Standard
Je n'ai pas vérifié si ce id était le même pour toutes les versions
Tester seulement sur la version Excel 2007.
'---------------------------
sub test()
With ThisWorkbook.VBProject.VBE.CommandBars("Standard")
Sonnom = .Controls(13).Caption
sonid = .Controls(13).ID
MsgBox Sonnom & " , " & sonid
End With
End Sub
'---------------------------

--
MichD
--------------------------------------------


"isabelle" a écrit dans le message de groupe de discussion : i7327l$81n$
salut Denis,

Sub Mode_Création()
With ThisWorkbook.VBProject.VBE.CommandBars
With .FindControl(ID:!2)
.Enabled = True
.Execute '<---------------------la macro s'arrête ici
End With
.FindControl(ID:!2).Execute
End With
End Sub

c'est quoi le id 212 ?

isabelle



Le 2010-09-18 14:40, michdenis a écrit :
Sub Mode_Création()
With ThisWorkbook.VBProject.VBE.CommandBars
With .FindControl(ID:!2)
.Enabled = True
.Execute
End With
.FindControl(ID:!2).Execute
End With
End Sub
Avatar
isabelle
ok, il est à la même position sur xp,
j'ai mis une note dans la macro de mon message précédent, l'as-tu vue ?

isabelle

Le 2010-09-18 15:07, michdenis a écrit :
212 représente le Id du bouton "mode création" de la barre du menu Standard de la fenêtre de l'éditeur de code.

On l'obtient par la commande suivante :
Le 13 c'est la position 13 dans la barre Standard
Je n'ai pas vérifié si ce id était le même pour toutes les versions
Tester seulement sur la version Excel 2007.
'---------------------------
sub test()
With ThisWorkbook.VBProject.VBE.CommandBars("Standard")
Sonnom = .Controls(13).Caption
sonid = .Controls(13).ID
MsgBox Sonnom& " , "& sonid
End With
End Sub
'---------------------------

Avatar
Chris Col
la référence Microsoft Visual Basic for Applications Extensibility 5.3.
est bien activée.

Heureusement que le même exercice avec un UserForm ne pose aucun problème.
Mais c'est dommage puisque il est permis d'insérer ce contrôle directement
sur la feuille de ne pas réussir à le déployer correctement et simplement.
Merci à tous les deux de partager vos lumières.

Cordialement Cc.
Avatar
michdenis
| as-tu activer la référence Microsoft Visual Basic for Applications Extensibility 5.3. ?

Si c'est à quoi tu fais référence, je n'en vois pas l'utilité.

--
MichD
--------------------------------------------


"isabelle" a écrit dans le message de groupe de discussion : i7333e$agj$
ok, il est à la même position sur xp,
j'ai mis une note dans la macro de mon message précédent, l'as-tu vue ?

isabelle

Le 2010-09-18 15:07, michdenis a écrit :
212 représente le Id du bouton "mode création" de la barre du menu Standard de la fenêtre de l'éditeur de code.

On l'obtient par la commande suivante :
Le 13 c'est la position 13 dans la barre Standard
Je n'ai pas vérifié si ce id était le même pour toutes les versions
Tester seulement sur la version Excel 2007.
'---------------------------
sub test()
With ThisWorkbook.VBProject.VBE.CommandBars("Standard")
Sonnom = .Controls(13).Caption
sonid = .Controls(13).ID
MsgBox Sonnom& " , "& sonid
End With
End Sub
'---------------------------

Avatar
michdenis
Ce bout de macro fonctionne très bien sur 2003-2007-2010

Je ne vois pas pourquoi elle ne fonctionnerais pas bien sur Excel 2002.

--
MichD
--------------------------------------------


"isabelle" a écrit dans le message de groupe de discussion : i7333e$agj$
ok, il est à la même position sur xp,
j'ai mis une note dans la macro de mon message précédent, l'as-tu vue ?

isabelle

Le 2010-09-18 15:07, michdenis a écrit :
212 représente le Id du bouton "mode création" de la barre du menu Standard de la fenêtre de l'éditeur de code.

On l'obtient par la commande suivante :
Le 13 c'est la position 13 dans la barre Standard
Je n'ai pas vérifié si ce id était le même pour toutes les versions
Tester seulement sur la version Excel 2007.
'---------------------------
sub test()
With ThisWorkbook.VBProject.VBE.CommandBars("Standard")
Sonnom = .Controls(13).Caption
sonid = .Controls(13).ID
MsgBox Sonnom& " , "& sonid
End With
End Sub
'---------------------------

Avatar
isabelle
salut Denis,

j'ai relancé le pc et refait un test avec,

Sub Mode_Création()
With ThisWorkbook.VBProject.VBE.CommandBars
With .FindControl(ID:!2)
.Enabled = True
.Execute
End With
.FindControl(ID:!2).Execute
End With
MsgBox "test"
End Sub

et tout va bien, le message "test" apparait et et pas de message d'erreur.

isabelle

Le 2010-09-18 15:48, michdenis a écrit :
Ce bout de macro fonctionne très bien sur 2003-2007-2010

Je ne vois pas pourquoi elle ne fonctionnerais pas bien sur Excel 2002.

Avatar
michdenis
Merci pour le test.

--
MichD
--------------------------------------------


"isabelle" a écrit dans le message de groupe de discussion : i7383d$oj3$
salut Denis,

j'ai relancé le pc et refait un test avec,

Sub Mode_Création()
With ThisWorkbook.VBProject.VBE.CommandBars
With .FindControl(ID:!2)
.Enabled = True
.Execute
End With
.FindControl(ID:!2).Execute
End With
MsgBox "test"
End Sub

et tout va bien, le message "test" apparait et et pas de message d'erreur.

isabelle

Le 2010-09-18 15:48, michdenis a écrit :
Ce bout de macro fonctionne très bien sur 2003-2007-2010

Je ne vois pas pourquoi elle ne fonctionnerais pas bien sur Excel 2002.

1 2