Bonjour à toutes et à tous
J'ai récupéré il y a peu de temps une macro de michel XLD qui m'est bien utile pour copier une plage d'un classeur fermé vers un autre classeur. Néanmoins, j'aurais souhaité ajouter la condition suivante: Si le classeur source est en lecture seule, un message d'info apparaît et la macro s'arrête.
Merci par avance pour vos propositions
Ci-joint le code de Michel xld
J'ai récupéré il y a peu de temps une macro de michel XLD qui m'est bien utile pour copier une plage d'un classeur fermé vers un autre classeur. Néanmoins, j'aurais souhaité ajouter la condition suivante: Si le classeur source est en lecture seule, un message d'info apparaît et la macro s'arrête.
Merci par avance pour vos propositions
Ci-joint le code de Michel xld
Code:
Private Sub CommandButton7_Click()
Dim Source As Object, Requete As Object
Dim Onglet As String, Plage As String, fichier As String
Dim Texte_SQL As String
'détermination de la plage à extraire
fichier = Application.GetOpenFilename
On Error GoTo GestionErreur
'If fichier <> False Then
Onglet = "listedossiers"
Plage = "M1:O1000"
'connexion ADO
Set Source = CreateObject("ADODB.Connection")
Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"data source=" & fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
'exerce la requete ADO sur les données à recopier
Texte_SQL = "SELECT * FROM [" & Onglet & "$" & Plage & "]"
Set Requete = CreateObject("ADODB.Recordset")
Set Requete = Source.Execute(Texte_SQL)
'restitue sur ton classeur
Range("M1").CopyFromRecordset Requete
'libère les pointeurs
Set Requete = Nothing
Set Source = Nothing
'End If
Exit Sub
GestionErreur:
MsgBox "IMPOSSIBLE D'OUVRIR LE FICHIER ", vbCritical, "Erreur"
End Sub