WedgeAnt
Messages postés13Date d'inscriptionlundi 7 août 2006StatutMembreDernière intervention27 mai 2008
-
7 août 2006 à 14:46
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 2011
-
8 août 2006 à 21:20
Bonjour
Je suis en train de programmer une feuille Excel avec des macros en VB et je souhaiterais pouvoir définir un raccourci clavier pour une fonction bien précise, et ceci sans avoir à passer par l'interface graphique d'Excel. Je voudrais pouvoir définir le raccourci directement dans le code source de la macro.
J'ai cherché dans la doc, mais je ne suis pas parvenu à trouver la réponse à ce que je cherche.
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 7 août 2006 à 15:56
Moi ca fonctionne !! (avec 2 ou 3 modifs) :
Public Sub Fill_Date()
Dim DateJour As Date
DateJour = Date
Call Select_Next_Empty_Cell(DateJour) '*** et supprime le ThisWorkbook
Selection.Value = Hour(Time)
Call Select_Next_Empty_Cell(DateJour)
Selection.Value = Minute(Time)
End Sub
* Alors corrige ces deux Call !
* Tes procédures Sub Select_Next_Empty_Cell(ByVal DateJour As Date)
& Public Sub Fill_Date()
doivent etre placés dans un Module.
@++
Mortalino
Le mystérieux chevalier, "Provençal, le Gaulois"
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 7 août 2006 à 15:15
Salut,
dans l'évènement ThisWorkBook_Open(), place ceci :
Application.MacroOptions Macro:" Macro1 ", HasShortcutKey:True, ShortcutKey:= " z "
Remplace Macro1 par le nom de la macro (ou fonction) à affecter, sachant que je ne l'ai testé qu'avec une procédure Sub.
Remplace "z" par la lettre de raccourci. Dans mon exemple avec z, c'est Ctrl + z qu'il faut faire.
@++
Mortalino
Le mystérieux chevalier, "Provençal, le Gaulois"
Merci de prendre le temps de répondre à ce [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx sondage]
Merci de prendre le temps de lire [reglement.aspx le Règlement CS] =ZSzeb008_ZNxdm414YYFR
WedgeAnt
Messages postés13Date d'inscriptionlundi 7 août 2006StatutMembreDernière intervention27 mai 2008 7 août 2006 à 15:31
Salut
Merci pour cette réponse rapide, ça me semble être la bonne réponse, d'autant plus qu'en regardant la doc de MacroOptions, je tombe exactement sur la description de ce que je veux faire.
Il reste encore un petit souci, après avoir ajouté la ligne correspondante dans l'évènement WorkBook_Open(), j'ai une erreur 1004:
"La méthode 'MacroOptions' de l'objet '_Application' a échoué", et parfois "Erreur définie par l'application ou par l'objet"
WedgeAnt
Messages postés13Date d'inscriptionlundi 7 août 2006StatutMembreDernière intervention27 mai 2008 7 août 2006 à 15:43
Voici le code au complet :
Sub Select_Next_Empty_Cell(ByVal DateJour As Date)
Dim C As Integer
For C = 2 To 10
If IsEmpty(Cells(Day(DateJour) + 2, C)) Then
Cells(Day(DateJour) + 2, C).Select
Exit For
End If
Next C
End Sub
Public Sub Fill_Date()
Dim DateJour As Date
DateJour = Date
ThisWorkbook.Select_Next_Empty_Cell (DateJour)
Selection.Value = Hour(Time)
ThisWorkbook.Select_Next_Empty_Cell (DateJour)
Selection.Value = Minute(Time)
End Sub
Private Sub Workbook_Open()
Dim DateJour As Date
DateJour = Date
Sheets(Month(DateJour) & "." & Year(DateJour)).Select
If IsEmpty(Cells(Day(DateJour) + 2, 2).Value) Then
Cells(Day(DateJour) + 2, 2).Value = Hour(Time)
Cells(Day(DateJour) + 2, 3).Value = Minute(Time)
Cells(Day(DateJour) + 2, 4).Select
Else
ThisWorkbook.Select_Next_Empty_Cell (DateJour)
End If
Application.MacroOptions Macro:="Fill_Date", HasShortcutKey:=True, ShortcutKey:="j"
End Sub
C'est pas bien long, ni bien compliqué ;)
Euh, pour savoir si c'est du VBA ou du VB ... j'en sais trop rien en fait, je dirais VBA puisque le navigateur de macro excel m'indique VBAProject
cat /boot/vmlinuz > /dev/dsp (hear the song of sirens)
WedgeAnt
Messages postés13Date d'inscriptionlundi 7 août 2006StatutMembreDernière intervention27 mai 2008 8 août 2006 à 10:17
Ok
En fait, je programme régulièrement dans plein de langages différents (C/C++, Perl, Java, PHP, Shell linux etc ...), mais je ne connais ni VB, ni VBA. C'est pour fabriquer une feuille de pointage automatique pour mon taf que j'ai fait une feuille excel, et en voulant ajouter plein de fonctionnalités, il a bien fallu que je mette aux macros.
Ca m'enchantais moyennement au départ, mais ça se passe plutôt bien, donc bon ...
Et désolé si ma syntaxe comporte des erreurs, je n'ai pas de bouquin sous la main, à part la doc fournie sous Excel