XL 2016 Empêcher ouverture classeur dans un autre logiciel que Excel

audureaumarc

XLDnaute Nouveau
Bonjour, j’aimerais diffuser en ligne un tableur avec macros. Toutefois, lorsque celui-ci est ouvert par un autre tableur qu’Excel, style Libre Office ou Open Office, les macros ne sont pas reconnus et font bugger le lancement.

Y’a-t’il une possibilité d’empêcher le lancement de mon tableur par un autre logiciel qu’Excel ? J’aimerais pouvoir le forcer idéalement.

Sinon, existe-t’il des assistants convertisseurs de VBA vers les languages des autres tableurs open-source les plus connus ? Jamais mis les mains dans le cambouis de ces alternatives encore

Merci de m’avoir lu
 

audureaumarc

XLDnaute Nouveau
Parcequ’il y’aura un relais en dehors de ce cercle également (fuites), et que les LibreOffice et compagnie mettent en avant des points confidentiels que je préfère garder cachés (hors farfouinage - au moins, pas de mise en alerte flagrante). Si ton paramètre suggéré d’acceptation de code VBA n’est pas configuré, alors la première chose qui survient à l’ouverture est un message d’erreur avec le code VBA en premier plan.
 

Staple1600

XLDnaute Barbatruc
Re

Tu dis toi même
Les usagers n’auraient pas intéret à craquer quoique ce soit car pas de bénéfice.
Donc ceci ne devrait avoir lieu alors?
(hors farfouinage - au moins, pas de mise en alerte flagrante).
De toute façon, à partir du moment où ton classeur aura quitté ton disque dur, tu ne maîtrises plus sa destinée.
(copie sur clé USB, utilisation de logiciels tiers pour ce que tu appelles farfouinage etc...)
 

eriiic

XLDnaute Barbatruc
Bonjour à tous,

pour ménager la chèvre et le choux :)
VB:
Private Sub Workbook_Open()
    If Application.Name <> "Microsoft Excel" Then MsgBox "Pour une meilleure expérience nous vous conseillons" & vbLf & "d'ouvrir ce fichier sur Microsoft Excel"
End Sub
Maintenant à toi de voir si tu préfères masquer toutes les feuilles sauf une...
eric
 

audureaumarc

XLDnaute Nouveau
Bonsoir et merci pour le temps consacré tous les deux...

Testé sous LibreOffice v6.1.4 et pas de MsgBox non plus. Me concernant, d’autres codes VBA simples (lancement de pages web au démmarrage) ne fonctionnent pas non plus sous LO, malgré l’activation VBA en paramètres sous LO comme suggéré au tout début par Staple

PS: cette solution “poire coupée en deux” m’allait très bien autrement, faute de mieux. Pas grave si désactivable !
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

Tu confirmes mon test* de de 01h18 par le tien de 01h52...
(cf mon précédent message)

Avant de le désactiver, il faudrait déjà que cela s'active à l'ouverture ;)

NB: Ta question m'aura permis de rendre compte qu'il était temps de mettre à mon jour mon Libre Office.
Je suis en train d'installer la 6.15 et je referai le test
 

Staple1600

XLDnaute Barbatruc
Re

Donc, avec Libre Office mis à jour, le MsgBox s'affiche
(et pour cela il faudra aussi qu'il s'affiche dans Excel ;))
01LibreOffice.jpg

J'ai modifier à chouia (tout petit chouia) la macro d'eriiiic.
VB:
Private Sub Workbook_Open()
MsgBox "Pour une meilleure expérience nous vous conseillons" & vbLf & "d'ouvrir ce fichier sur Microsoft Excel", vbExclamation, "Avertissement"
End Sub
NB: Apparemment Libre Office ne reconnait pas Application.Name
 
Dernière édition:

eriiic

XLDnaute Barbatruc
Bonjour,

il ne faut plus que je réponde aussi tard... :rolleyes:
Sinon, que ce soit visible qq soit la version autre qu'excel, mettre le message sur une feuille 'info' et le classique :
VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    For Each sh In Worksheets
        If sh.Name <> "Info" Then sh.Visible = xlSheetVeryHidden
    Next sh
End Sub

Private Sub Workbook_Open()
    On Error GoTo fin
    If Application.Name = "Microsoft Excel" Then
        Application.ScreenUpdating = False
        For Each sh In Worksheets
            sh.Visible = xlSheetVisible
        Next sh
        Sheets("Info").Visible = xlSheetVeryHidden
    End If
fin:
End Sub
eric
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, Bonjour eriiiic

La nuit a fini par faire Librement son Office ;)
(j'ai fait un petit dodo, j'en ferais un plus grand passé mitan)

Reste que tout comme dans Excel, on peut dans Libre Office, choisir d'ouvrir sans Activer les macros.
(etc...)
 

eriiic

XLDnaute Barbatruc
Oui bien sûr, on sait ce qu'il en est des protections dans excel.
Tu n'as pas vraiment regardé ;-)
Là une seule feuille avec le message est affichée à l'ouverture, pour les anciennes versions de Libre Office qui n'exécutent pas VBA. Idem si les macros ne sont activées sur Excel
eric
 

Staple1600

XLDnaute Barbatruc
Re

Et puis, si l'user connait bien son Libre Office, librement il cochera/décochera les cases idoines ;)
01_LO2..jpg

EDITION: Si j'ai regardé et testé ton code dans Libre Office.
Je disais juste que l'utilisateur non lambda saura ouvrir ce classeur sans aucune restriction.

[futile aparté]
PS: Moi , par exemple, j'ouvre mes classeurs uniquement avec Libre Office chaque 1er mars pendant 42 minutes et 58 secondes.
Et durant ce laps de temps, Excel est pour moi la face cachée des Tableurs ;)
[/futile aparté]
 
Dernière édition:

audureaumarc

XLDnaute Nouveau
Bonjour et bon dimanche d’avance ! Personnellement, je sens que ça ne va pas être mon jour. Désinstallé ancienne version de LO pour installer la dernière, puis Windows Server chaffouin me fait une erreur inconnue au bataillon, ne reconnaissant plus les exécutables .msi haha

ABBBB339-30D7-4609-9BFC-D152016F1888.jpeg


Je suis parti pour lutter contre le mystère des bits, avant de goûter à vos trouvailles :/
 
Dernière édition:

Statistiques des forums

Discussions
312 104
Messages
2 085 347
Membres
102 868
dernier inscrit
JJV