Liaison avec classeur protégé - Impossible n'est pas XLD !!! :p

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

GeoTrouvePas

XLDnaute Impliqué
Bonjour tous le monde,

Sous ce titre un peu accrocheur et provocateur, ce cache un réel problème qui me turlupine depuis les premières heures de l'aube. Les habitués auront surement déjà deviné une partie de ma demande dont voici le détail :

J'importe et j'exporte des données de mon classeur principal vers des classeurs externes. Afin d'assurer la confidentialité des données (très importante), ces classeurs sont verrouillés en lecture et en modification.

Pour cela, j'utilisais jusqu'à présent ce bon vieux "Workbooks.Open".
Mon soucis est que je voudrais masquer l'utilisation de ces fichiers externes.

J'ai farfouillé de partout sur le net et, visiblement, les deux seuls moyens sont les liaisons ADO et OLE. Malheureusement, aucune d'elles ne gèrent les classeurs protégés.

Je vous sollicite donc afin de savoir si vous ne connaîtriez pas une méthode pour que l'ouverture / écriture / fermeture sur mes fichiers externes (qui commencent à devenir très longues) soient le plus discrètes possibles ?

Merci d'avance pour vos réponses et même merci à ceux qui auront simplement lu ce post 😀

Bonne journée
 
Re : Liaison avec classeur protégé - Impossible n'est pas XLD !!! 😛

Bonjour GeoTrouvePas,


Une solution serait d'utiliser ce bon vieux "Workbooks.Open" dans une autre application Excel qui elle serait masquée.

Un exemple dans le code qui suit :
VB:
Sub Test()
Dim xlApp As Excel.Application
Dim classeurExterne As Excel.Workbook

    'créer une nouvelle application excel
    Set xlApp = CreateObject("Excel.Application")
    'la masquer (s'assurer qu'elle n'est pas visible)
    xlApp.Visible = False
    
    'dans cette application Excel (cachée), ouvrir le classeur Externe
    Set classeurExterne = xlApp.Workbooks.Open("C:\titi.xls")
    
    
    '*****************************************************************
    'A partir d'ici, tu peux travailler sur le classeur externe.
    'Il tourne sur une autre application Excel que celle d'où est lancée la macro
    'Cette application es*t invisible pour l'utilisateur
    
    'par exemple aller écrire dans la cellule B3 de la première feuille
    classeurExterne.Sheets(1).Range("B3").Value = "test"
    '*****************************************************************
        
    'fermer le classeur externe et quitter/fermer l'application Excel
    classeurExterne.Close True      'le "True" signifie qu'on enregistre les changements
    xlApp.Quit
End Sub
a+
 
Dernière édition:
Re : Liaison avec classeur protégé - Impossible n'est pas XLD !!! 😛

Impeccable !

Merci beaucoup pour cette manip. Il me semblait bien qu'il était possible de masquer un fichier ou une instance mais impossible de retrouver comment faire.

J'ai bien tenté un vague "Workbook("Classeur1").Visible = True" mais ça passe pas.

Ah bon sang tu as pas idée comme ça me fait plaisir d'avoir enfin une solution propre et efficace.

Merci beaucoup pour ton aide et bonne journée.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour