Visual Basic |
Bienvenue invité ( Connexion | Inscription )
Visual Basic |
31 Oct 2015, 11:43
Message
#1
|
|
Nouveau Membre Groupe : Membres Messages : 18 Inscrit : 15 Mar 2014 Membre no 189 751 |
Bonjour à tous,
Je suis à la fac et j'ai un cours d'informatique cette année, dans lequel on va devoir faire un projet avec VBA. J'ai Office 2016 et je n'arrive pas à utiliser VBA comme sur Windows. Dans Excel, je vais dans développeur, puis Visual Basic, mais je ne peux rien écrire. En plus de ça, les codes VBA sont tous écrits en colonne (une lettre par ligne) et impossible à modifier quand je prends des projets déjà faits. Quelqu'un pourrait-il m'éclairer ? Merci |
|
|
3 Jul 2016, 10:42
Message
#2
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 306 Inscrit : 27 Jul 2008 Lieu : Besançon Membre no 118 630 |
J'ai placé un classeur .xlam contenant mes fonctions dans le dossier où Excel place par défaut les macros personnelles. Dans ce classeur j'ai une procédure (code ci-dessous) qui m'ouvre mon classeur de Macro Procédures (celles qu'on appelle via un bouton ou un raccourci clavier).
Code Option Explicit ' Force à déclarer les variables ' Les dossiers Excel Démarre et le dossier des macros Personnelles n'acceptent pas les Alias et mes boutons de Macros ' mémorisent le Path de la Macro. Et ces dossiers ne sont pas les mêmes pour Excel 2011 et Excel 2016 ' Donc je lance un fichier Macro se trouvant à un endroit commun Sub Auto_Open() Dim FileToLaunch As String FileToLaunch = "" On Error GoTo ErrorHandler1 ' FileToLaunch = MacScript("return (path to startup disk) as string") ' Avec le séparateur de fin, ":" ou "/" ' FileToLaunch = MacScript("return (characters 1 thru -2 of ((path to startup disk) as string)) as string") ' Juste le nom du disque ' MsgBox "Disque de démarrage : '" & FileToLaunch & "'" If Val(Application.Version) < 15 Then ' FileToLaunch = "Applications:DiversLogs:OfficeMacrosPersos:" FileToLaunch = "DossSystAide:OfficeMacrosPersos:" ' FileToLaunch & ":" & ' Pour disque démarrage devant Else ' Inutile de mettre le disque de démarrage devant, ci-dessus ou ci-dessus on est sur le disque de démarrage ' FileToLaunch = "/Applications/DiversLogs/OfficeMacrosPersos/" FileToLaunch = "/DossSystAide/OfficeMacrosPersos/" ' FileToLaunch & "/" & ' Pour disque démarrage devant End If FileToLaunch = FileToLaunch & "MacroProcVisualBasic.xlsm" ' FileToLaunch = FileToLaunch & "TestLancOnLaunch.xlsm" ' MsgBox "On va ouvrir : '" + FileToLaunch + "'" Workbooks.Open (FileToLaunch) If False Then ErrorHandler1: Beep MsgBox "Impossible d'ouvrir : '" + FileToLaunch + "'" End If End Sub J'ai donc placé mon classeur de macros procédures "MacroProcVisualBasic.xlsm" dans un dossier "OfficeMacrosPersos " lui même dans un dossier "DossSystAide" à la racine de mon disque de démarrage. Peut importe où on la place, il faut qu'elle soit dans le même dossier sur les deux Macs (et évidement il faut modifier les deux paths du code donné ci-dessus en conséquence). Le path Office 2016 est en ShellPath (séparateur /) et le Path Office 2011 est en AbsolutePath (séparateur : ). Comme ça, tous mes classeurs où j'ai des boutons qui appellent mes macros communes qui sont dans "MacroProcVisualBasic.xlsm" fonctionnent quelque soit l'endroit d'où je les lance (mon nouveau Mac avec Office 2016 ou l'ancien Mac avec Office 2011). -------------------- |
|
|
Nous sommes le : 31st May 2024 - 07:16 |