IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Visual Basic
Options
max9851
posté 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 smile.gif
Go to the top of the page
 
+Quote Post
Aliboron
posté 31 Oct 2015, 13:34
Message #2


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 4 197
Inscrit : 1 Jan 2008
Lieu : Toulouse.cong
Membre no 103 942



Excel 2016 n'est certainement pas la bonne application pour travailler en VBA. L'éditeur est plus que lamentable et les fonctionnalités très limitées. Franchement, pour ça il vaut nettement mieux installer une version Windows dans une machine virtuelle Parallels Desktop (ou similaire) ou, sinon, utiliser Excel 2011 qui a au moins un éditeur décent.

Selon ce que tu auras à faire, il est fort possible que l'utilisation d'une version Windows soit indispensable (poser la question au prof) car, souvent, les développeurs sous Windows ignorent totalement les versions Mac, les différences à prendre en compte dans l'écriture, et utilisent allègrement des fonctionnalités "Windows only".

En tout état de cause, il y a un site très intéressant pour tout ce qui concerne les spécificités du travail sur les versions Mac, c'est celui de Ron de Bruin (très intéressant aussi pour tout ce qui est sous Windows, bien entendu).


--------------------
Bernard

MacMini, iMac et tout un tas d'accessoires -- FAQ Office Macintosh
Go to the top of the page
 
+Quote Post
max9851
posté 31 Oct 2015, 13:50
Message #3


Nouveau Membre


Groupe : Membres
Messages : 18
Inscrit : 15 Mar 2014
Membre no 189 751



Merci pour la réponse !
Par contre je comprends toujours pas pourquoi je ne peux rien taper sur VBA blink.gif
Go to the top of the page
 
+Quote Post
Aliboron
posté 31 Oct 2015, 16:04
Message #4


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 4 197
Inscrit : 1 Jan 2008
Lieu : Toulouse.cong
Membre no 103 942



Citation (max9851 @ 31 Oct 2015, 13:50) *
Par contre je comprends toujours pas pourquoi je ne peux rien taper sur VBA blink.gif

Y'a rien de particulier à comprendre. C'est juste les joies de cette nouvelle version d'Excel… en attendant que les futures mises à jour viennent remettre ça d'aplomb (?)


--------------------
Bernard

MacMini, iMac et tout un tas d'accessoires -- FAQ Office Macintosh
Go to the top of the page
 
+Quote Post
max9851
posté 24 Nov 2015, 22:20
Message #5


Nouveau Membre


Groupe : Membres
Messages : 18
Inscrit : 15 Mar 2014
Membre no 189 751



Merci pour la réponse, par contre c'est normal que j'ai le même problème sous Windows ? j'ai récupéré un projet vba et je peux pas lire le code.

Merci
Go to the top of the page
 
+Quote Post
Aliboron
posté 25 Nov 2015, 01:04
Message #6


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 4 197
Inscrit : 1 Jan 2008
Lieu : Toulouse.cong
Membre no 103 942



Citation (max9851 @ 24 Nov 2015, 22:20) *
j'ai récupéré un projet vba et je peux pas lire le code.

Le module est peut-être protégé...


--------------------
Bernard

MacMini, iMac et tout un tas d'accessoires -- FAQ Office Macintosh
Go to the top of the page
 
+Quote Post
max9851
posté 25 Nov 2015, 20:33
Message #7


Nouveau Membre


Groupe : Membres
Messages : 18
Inscrit : 15 Mar 2014
Membre no 189 751



Impossible d'y accéder du coup ?
je trouve ça bizarre, il me semble pas qu'il ait été bloqué, on me l'a donné pour avoir un modèle pour le projet que j'ai à faire..

Merci

Même pour mon projet, fait sous Windows en cours, j'ai ça

Ce message a été modifié par max9851 - 25 Nov 2015, 20:34.
Fichier(s) joint(s)
Fichier joint  Capture_d_____cran_2015_11_25____20.25.34.png ( 23.95 Ko ) Nombre de téléchargements : 16
 
Go to the top of the page
 
+Quote Post
Tom25
posté 18 Jun 2016, 18:05
Message #8


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 306
Inscrit : 27 Jul 2008
Lieu : Besançon
Membre no 118 630



J'ai récupéré un fichier macro .xlam (avant en .xla) de mon Office 2011. Ca fonctionne sur Office 2016, mais j'ai eu du mal à trouver où foutre ce foutu fichier. J'ai fais "enrigistrer une macro" dans le classeur personnel de macro, comme ça j'ai pu trouver le dossier "~:Library:Containers:com.microsoft.Excel:Data:Library:Application Support:User:" et j'y ai mis ma macro "MacroVisualBasic.xlam".

Par contre, si je modifie le code, impossible d'enregistrer les modifications. Je suis con ou c'est un bug ? (ou les deux biggrin.gif )

Deux solutions, soit je la modifie depuis l'autre Mac sous Office 2011, soit je recrée un fichier Macro, j'y recopie toutes mes macros, je fais mes modif, et je ré-enregistre en .xlam . sad.gif


--------------------
Go to the top of the page
 
+Quote Post
No6
posté 18 Jun 2016, 18:59
Message #9


Oui ?
*****

Groupe : Membres
Messages : 3 889
Inscrit : 24 Jun 2003
Lieu : BZH
Membre no 8 224



On peut aussi faire des macros VBA dans Libre Office.

Si l'idée est de s'initier au VBA, c'est completement indiqué.

Et encore une fois, j'ai du mal à comprendre comment un prof peut faire la promotion d'un logiciel propriétaire et payant mad.gif


--------------------
"Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas sûr que vous réalisiez que ce que vous avez entendu n'est pas ce que je pense."
(Alan Greenspan)
Go to the top of the page
 
+Quote Post
Aliboron
posté 19 Jun 2016, 00:10
Message #10


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 4 197
Inscrit : 1 Jan 2008
Lieu : Toulouse.cong
Membre no 103 942



Citation (Tom25 @ 18 Jun 2016, 19:05) *
.../... j'ai eu du mal à trouver où foutre ce foutu fichier. J'ai fais "enrigistrer une macro" dans le classeur personnel de macro, comme ça j'ai pu trouver le dossier "~:Library:Containers:com.microsoft.Excel:Data:Library:Application Support:User:" et j'y ai mis ma macro "MacroVisualBasic.xlam".

Oui, ces emplacements (Containers, Group Containers) ainsi que certaines restrictions sont imposés par Apple aux développeurs pour pouvoir figurer dans l'App Store.

Citation (Tom25 @ 18 Jun 2016, 19:05) *
Par contre, si je modifie le code, impossible d'enregistrer les modifications. Je suis con ou c'est un bug ? (ou les deux biggrin.gif )

Curieux, de nouveau. Je ne rencontre pas de souci de ce point de vue, apparemment : il m'est demandé si je veux remplacer le classeur qui porte le même nom au même emplacement, mais c'est tout. Peut-être une nouvelle contrainte liée à El Capitan (je suis toujours sous Yosemite) ? Peut-être un bug dans la version que tu utilises (en tant que "Insider Fast", j'ai actuellement la version 15.24 (160624) mais je n'ai pas souvenir de changements sur ce genre de choses, du moins récemment) ?

Au passage, un peu de lecture à propos de ces particularités d'emplacements sur le site de Ron de Bruin.


--------------------
Bernard

MacMini, iMac et tout un tas d'accessoires -- FAQ Office Macintosh
Go to the top of the page
 
+Quote Post
Tom25
posté 19 Jun 2016, 09:49
Message #11


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 306
Inscrit : 27 Jul 2008
Lieu : Besançon
Membre no 118 630



Je parle de modifier mon fichier .xlam Aliboron. Tu parles aussi d'un .xlam ou autre ? Car pour les autres ça marche, il me demande si je veux enregistrer de manière classique.J'ai la version 15.23 sortie il y a 2 ou 3 jours je crois.

Et je ne savais pas que Libre Office faisait tourner des macros ? Et encore moins des VisualBasic !

Ce message a été modifié par Tom25 - 19 Jun 2016, 09:51.


--------------------
Go to the top of the page
 
+Quote Post
Aliboron
posté 19 Jun 2016, 13:17
Message #12


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 4 197
Inscrit : 1 Jan 2008
Lieu : Toulouse.cong
Membre no 103 942



Citation (Tom25 @ 19 Jun 2016, 10:49) *
Je parle de modifier mon fichier .xlam Aliboron. Tu parles aussi d'un .xlam ou autre ? Car pour les autres ça marche, il me demande si je veux enregistrer de manière classique. J'ai la version 15.23 sortie il y a 2 ou 3 jours je crois.

Il s'agit bien d'un .xlam. Mais en y revenant aujourd'hui, je vois ce que tu veux dire. Hier, j'avais laissé le classeur initial ouvert (donc pas seulement le projet VBA, mais aussi la feuille de calcul). Du coup, pas de souci pour l'enregistrer. Mais aujourd'hui, je constate ce que tu décris, puisqu'on n'a plus accès à la feuille de calcul (et donc plus au dialogue d'enregistrement). Même en passant par "Fenêtre" > "Afficher..." Faut que j'enquête ! wink.gif


Citation (Tom25 @ 19 Jun 2016, 10:49) *
Et je ne savais pas que Libre Office faisait tourner des macros ? Et encore moins des VisualBasic !

Pour ce qui est du VBA, il ne faut rien exagérer. Disons que ça permet vaguement de récupérer les macros VBA si elles ne sont pas trop élaborées (et on a un avertissement qui indique que toute modification ne pourra être enregistrée qu'au format OpenDocument). Mais, quand on connaît déjà les soucis de compatibilité Windows/Mac OS X en matière de VBA, on comprend bien que ça risque vite de coincer avec LibreOffice.

LibreOffice a son propre langage de macros (LibreOffice Basic) mais permet aussi d'utiliser d'autres langages (Python, par exemple).


--------------------
Bernard

MacMini, iMac et tout un tas d'accessoires -- FAQ Office Macintosh
Go to the top of the page
 
+Quote Post
Aliboron
posté 19 Jun 2016, 13:35
Message #13


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 4 197
Inscrit : 1 Jan 2008
Lieu : Toulouse.cong
Membre no 103 942



Citation (Aliboron @ 19 Jun 2016, 14:17) *
.../... Faut que j'enquête !

Bon, visiblement, les .xlam étant par principe destinés à être en lecture seule, ce ne devrait pas fondamentalement être un problème. Mais quand même, quand on est en phase de développement ou de correction, ça peut être pratique. Grâce à Jon Peltier, voilà une solution simple de contournement. En collant ce petit bout de code dans le module, on peut déclencher l'enregistrement :
Code
Sub SaveMe()
    ThisWorkbook.Save
End Sub


Problème : cette macro est du coup également enregistrée dans le module, ce qui peut présenter des inconvénients (elle reste disponible pour un utilisateur éventuellement moins expérimenté). Contournement du contournement, en collant cette ligne dans la fenêtre "Exécution" on peut déclencher un enregistrement sans souci :
Code
   Workbooks("ClasseurMacro.xlam").Save


Voilà, voilà... smile.gif

Ce message a été modifié par Aliboron - 19 Jun 2016, 13:43.


--------------------
Bernard

MacMini, iMac et tout un tas d'accessoires -- FAQ Office Macintosh
Go to the top of the page
 
+Quote Post
Tom25
posté 19 Jun 2016, 18:11
Message #14


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 306
Inscrit : 27 Jul 2008
Lieu : Besançon
Membre no 118 630



Merci de tes infos précieuses.

Citation (Aliboron @ 19 Jun 2016, 14:35) *
Code
Sub SaveMe()
    ThisWorkbook.Save
End Sub

Donc je vais dans menu Outils -> Macro -> Macros… et je colle "SaveMe" et je clique "exécuter". C'est ça ?

Ou alors, quand je lis ci-dessous, je colle ça "Workbooks("ClasseurMacro.xlam").Save" directement dans la fenêtre obtenu via menu Outils -> Macro -> Macros… et je n'ai pas besoin de coller le code que tu donnes dans le module ?
Citation (Aliboron @ 19 Jun 2016, 14:35) *
en collant cette ligne dans la fenêtre "Exécution" on peut déclencher un enregistrement sans souci :
Code
   Workbooks("ClasseurMacro.xlam").Save


Voilà, voilà... smile.gif

Merci encore.

Je vais faire 2 ou 3 tests, j'ai une sauvegarde de mon .xlam .


Edit : Bon ben j'ai collé ta Procédure dans mon Module "ClasseurMacro.xlam" puis j'ai ouvert Outils -> Macro -> Macros… et j'ai collé "SaveMe".
Ca a sauvegardé.
Je ne comprends pas ce que tu appelles la fenêtre "Exécution" ?

Ce message a été modifié par Tom25 - 19 Jun 2016, 18:18.


--------------------
Go to the top of the page
 
+Quote Post
Aliboron
posté 19 Jun 2016, 23:15
Message #15


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 4 197
Inscrit : 1 Jan 2008
Lieu : Toulouse.cong
Membre no 103 942



Citation (Tom25 @ 19 Jun 2016, 19:11) *
Donc je vais dans menu Outils -> Macro -> Macros… et je colle "SaveMe" et je clique "exécuter". C'est ça ?

Oui, avec l'inconvénient que, désormais, cette procédure est incluse dans ton .xlam

Citation (Tom25 @ 19 Jun 2016, 19:11) *
Ou alors, quand je lis ci-dessous, je colle ça "Workbooks("ClasseurMacro.xlam").Save" directement dans la fenêtre obtenu via menu Outils -> Macro -> Macros… et je n'ai pas besoin de coller le code que tu donnes dans le module ?

Dans la fenêtre "Exécution", plus exactement, celle qui permet de tester les instructions en les faisant exécuter directement (il suffit de faire un retour chariot en fin de ligne).

Citation (Tom25 @ 19 Jun 2016, 19:11) *
Je ne comprends pas ce que tu appelles la fenêtre "Exécution" ?

Celle qui se trouve au-dessous des boutons de déboggage :
[attachment=53078:Capture_d_____cran.png]


--------------------
Bernard

MacMini, iMac et tout un tas d'accessoires -- FAQ Office Macintosh
Go to the top of the page
 
+Quote Post
Tom25
posté 20 Jun 2016, 08:01
Message #16


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 306
Inscrit : 27 Jul 2008
Lieu : Besançon
Membre no 118 630



Super merci, je me demandais pourquoi ils avaient laissé une zone en bas. Dans L'Éditeur AppleScript, il y a la même zone mais ça affiche le résultat du programme (ou le log des instructions du programme). Là je ne voyais rien défiler mais je n'avais pas cherché.

Merci, c'est impec smile.gif


--------------------
Go to the top of the page
 
+Quote Post
Aliboron
posté 20 Jun 2016, 08:46
Message #17


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 4 197
Inscrit : 1 Jan 2008
Lieu : Toulouse.cong
Membre no 103 942



Citation (Tom25 @ 20 Jun 2016, 09:01) *
je me demandais pourquoi ils avaient laissé une zone en bas.

C'était pourtant déjà l'emplacement par défaut de cette fenêtre "Exécution" dans le précédentes versions de l'éditeur VBA. Bon, ceci dit, elle n'est pas très connue et pas toujours très utilisée. Elle peut pourtant être bien utile pour des tests instantanés en cours de développement. D'un autre côté, il est sûr que la mouture 2016, pour ce qui est de développement, ce n'est pas vraiment un outil bien pratique (c'est le moins qu'on puisse dire).


--------------------
Bernard

MacMini, iMac et tout un tas d'accessoires -- FAQ Office Macintosh
Go to the top of the page
 
+Quote Post
Tom25
posté 28 Jun 2016, 20:03
Message #18


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 306
Inscrit : 27 Jul 2008
Lieu : Besançon
Membre no 118 630



J'ai placé mon fichier Macro.xlam dans le dossier où il enregistre par défaut le classeur de document personnel, soit :
Code
StartupDisk:Users:moi:Library:Containers:com.microsoft.Excel:Data:Library:Application Support:User:MacroVisualBasic.xlam

Ca marche pour les fonctions. Si j'utilise une fonction perso dans une feuille de calcul ça marche même quand j'ouvre le fichier depuis mon autre ordi avec Office 2011.

Par contre, si je crée un bouton et que je lui affecte une macro ça marche sur le même Ordi. Par contre si j'ouvre mon classeur sur l'autre ordi avec Office 2011, là ça ne va pas car il mémorise non pas juste le nom de la macro, mais tout son path "StartupDisk:Users:moi:Library:Containers:com.microsoft.Excel:Data:Library:A
pplication Support:User:MacroVisualBasic.xlam!MaMacro" et comme ce n'est pas le même path sur l'autre ordi avec l'autre Office (même avec le même Office ça ne marcherait pas d'ailleurs, vu que le nom d'utilisateur et le nom du stqrtupdisk peuvent différer.

Comment faire ? ohmy.gif huh.gif


Merci


--------------------
Go to the top of the page
 
+Quote Post
Aliboron
posté 28 Jun 2016, 21:28
Message #19


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 4 197
Inscrit : 1 Jan 2008
Lieu : Toulouse.cong
Membre no 103 942



Citation (Tom25 @ 28 Jun 2016, 21:03) *
Comment faire ? ohmy.gif huh.gif

Il va falloir faire un peu de "Compilation conditionnelle", qui permet d'adapter la macro à la version de Mac OS X. En l'occurrence tu peux te référer à cette page de Ron de Bruin


--------------------
Bernard

MacMini, iMac et tout un tas d'accessoires -- FAQ Office Macintosh
Go to the top of the page
 
+Quote Post
Tom25
posté 29 Jun 2016, 20:33
Message #20


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 306
Inscrit : 27 Jul 2008
Lieu : Besançon
Membre no 118 630



Merci, j'ai regardé un peu. Par contre je ne comprends pas, je ne pourrai pas lancer de Macros puisque le path de ce fichier Macro n'est pas bon sur l'autre Mac.


--------------------
Go to the top of the page
 
+Quote Post
Aliboron
posté 29 Jun 2016, 23:26
Message #21


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 4 197
Inscrit : 1 Jan 2008
Lieu : Toulouse.cong
Membre no 103 942



Citation (Tom25 @ 29 Jun 2016, 21:33) *
je ne comprends pas, je ne pourrai pas lancer de Macros puisque le path de ce fichier Macro n'est pas bon sur l'autre Mac.

Ben, a priori c'est à ça que sert la compilation conditionnelle : tu saisis les deux chemins d'accès possibles et tu affectes à une variable la valeur correspondant à la version de Mac OS X concernée. Ça ne peut pas s'appliquer dans ton cas ?


--------------------
Bernard

MacMini, iMac et tout un tas d'accessoires -- FAQ Office Macintosh
Go to the top of the page
 
+Quote Post
Tom25
posté 3 Jul 2016, 10:42
Message #22


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).


--------------------
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 19th April 2024 - 22:00