Bonjour à tous,
J'ai un problème que je n'arrive pas à résoudre et même à en comprendre la source :
J'ai créé une macro sous 2007 (client1) qui ouvre un classeur enregistré en 2007 mais protégé avec un mot de passe (source1). Le code fonctionne parfaitement de 2007 à 2007.
Le problème se pose quand j'execute ma macro d'ouverture avec un système contenant Office 2003 et le pack de comptabilité avec 2007. Là, le fichier s'ouvre PHYSIQUEMENT et demande le mot de passe (avec la boite de dialogue) alors que tout est transparent quand c'est 2007.
Certaines personnes n'ont à disposition que Excel 2003 et le pack de comtpabilité. Comment puis je résoudre ce problème?
Je vous joint mon code :
Je suis preneur de la moindre idée,
Merci à vous.
J'ai un problème que je n'arrive pas à résoudre et même à en comprendre la source :
J'ai créé une macro sous 2007 (client1) qui ouvre un classeur enregistré en 2007 mais protégé avec un mot de passe (source1). Le code fonctionne parfaitement de 2007 à 2007.
Le problème se pose quand j'execute ma macro d'ouverture avec un système contenant Office 2003 et le pack de comptabilité avec 2007. Là, le fichier s'ouvre PHYSIQUEMENT et demande le mot de passe (avec la boite de dialogue) alors que tout est transparent quand c'est 2007.
Certaines personnes n'ont à disposition que Excel 2003 et le pack de comtpabilité. Comment puis je résoudre ce problème?
Je vous joint mon code :
Code:
'Déclaration des API pour vider le presse papier
Private Declare Function OpenClipboard Lib "user32" _
(ByVal hwnd As Long) As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Option Explicit
Dim xlApp As New Excel.Application ' déclarer Public si dans un module
Dim xlBook As New Excel.Workbook
Dim xlSheet As New Excel.Worksheet
Dim xlSelect As New Excel.Worksheet
Dim myRange As Range
Sub Import()
'Copie des onnées du RO vers le fichier Client
Dim xlCell As Range
'Variables
'Fichiers utilisés
Dim feuilColImport As String
Dim xlSource As String
Dim xlClient As String
Dim sheetSource As String
Dim sheetClient As String
Dim MdPSrc As String
Dim cellule As Range
Dim nbrColoneToSource As Integer
Dim i As Integer
xlSource = ThisWorkbook.Worksheets("ImportColonnes").Cells(2, 2) 'Cells(NumLigne, NumColonne) '"C:\monchemin\source1.xlsx"
MdPSrc = "Lepassword"
xlClient = ThisWorkbook.Name 'ThisWorkbook.Worksheets("ImportColonnes").Cells(5, 2)
sheetSource = "Liste_Import_RO"
sheetClient = "Liste_Client"
feuilColImport = "ImportColonnes"
'Action sur l'environnement
'Application.Visible = False 'Cache l'application
Application.DisplayAlerts = False 'Désactive les messages d'avertissements
Application.CutCopyMode = False 'Desactive les pointillées de selection Excel
On Error Resume Next 'Permet de selectionner le bouton 4 de la boite de dialogue avertissement Clipboard
Application.CommandBars("Clipboard").Controls(4).Execute
'Ouvrir le classeur dont on a besoin avec tout le chemin...
On Error Resume Next
=> Set xlBook = xlApp.Workbooks.Open(Filename:=xlSource, UpdateLinks:=0, ReadOnly:=True, Password:=MdPSrc) 'Ouverture du fichier
If xlBook Is Nothing Then 'On test si le fichier est bien ouvert
MsgBox "Fichier non trouvé ou non ouvert."
Else
'Traitement
End If
'Vidage du presse papier
OpenClipboard 0
EmptyClipboard
CloseClipboard
'Cloture classeur et libération des variables
xlApp.DisplayAlerts = False
xlBook.Close
xlApp.Quit
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
'Annulation Actions sur l'environnement
Application.Visible = True 'Décache l'application
Application.DisplayAlerts = True 'Active les messages d'avertissements
End Sub
Je suis preneur de la moindre idée,
Merci à vous.
Dernière édition: