Pblm code VBA ouverture classeur 2007 + MdP avec classeur 2003 + pack compatibilité

Hizaack

XLDnaute Nouveau
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 :


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:

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof