Extraire données d'une plage nommée d'un Classeur Fermé

cestalain

XLDnaute Nouveau
Bonjour à tous,

Malgré de longues recherches sur le forum, je n'arrive pas à solutionner le problème suivant :
J'utilise une fonction VBA paramétrable (trouvée sur le forum) pour récupérer les données d'une feuille d'un Classeur Fermé.
Lorsque je paramètre l'adresse de la plage à copier "A1:K100" cela fonctionne, mais je souhaiterais utiliser le nom de la plage nommée du classeur fermé en paramètre et là je n'y arrive pas ça plante !!!

Je joins mes deux fichiers en exemple.

Merci d'avance pour votre aide
 

Pièces jointes

  • Extraire plage Nommée Classeur Fermé.zip
    35.1 KB · Affichages: 108

cestalain

XLDnaute Nouveau
Re : Extraire données d'une plage nommée d'un Classeur Fermé

Bonsoir Hasco

Merci pour la rapidité de ta réponse. Néanmoins, existe t-il une manière de faire autre que ADO qui me permettrait d'utiliser le nom de plage nommée.
La feuille dans laquelle j' extrait les données peut atteindre un très grand nombre de lignes, ainsi quelle adressage serait le plus approprié ? .

Encore merci de ton aide
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Extraire données d'une plage nommée d'un Classeur Fermé

bonsoir,

-créer un nom de champ avec des lignes vides
-élliminer les lignes vides dans la requête sql

Code:
Sub RecupTableurSQL()
  'Microsoft ActiveX DataObject doit être coché
  répertoire = ThisWorkbook.Path & "\"
  Dim rs As ADODB.Recordset
  Set cnn = New ADODB.Connection
  cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" & épertoire & "ADOsource.xls"
  Set rs = cnn.Execute("SELECT nom,Prenom,Salaire FROM MaBD where nom<>''")
  [A2].CopyFromRecordset rs
End Sub

jb
 

cestalain

XLDnaute Nouveau
Re : Extraire données d'une plage nommée d'un Classeur Fermé

Bonjour BOISGONTIER

Merci pour ton aide. Je souhaitais une réponse qui m'aurais permis d'utiliser la plage nommée dynamique mais cela ne parait pas possible avec ADO.
Peut être que quelqu'un à une idée pour contourner ce problème ???

La qualité et la compétence des gens de ce forum me permette d'espérer !!

Merci d'avance
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Extraire données d'une plage nommée d'un Classeur Fermé

Bonjour,

Testé en Excel 2003 sans nom de champ. Le nom de champ dynamique ne sert à rien.

Code:
Sub RecupClasseurFermé()
 ' Microsoft ActiveX DataObject doit être coché
 Set cnn = New ADODB.Connection
  répertoire = ThisWorkbook.Path
  fichier = "classeurFerme.xls"
  cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & répertoire & "\" & fichier & ";Extended Properties=""Excel 8.0;HDR=Yes;"";"
  Set rs = cnn.Execute("[RecapVente$A1:k1000]")
  [A2].CopyFromRecordset rs
  rs.Close
  cnn.Close
  Set rs = Nothing
  Set cnn = Nothing
End Sub

JB
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 362
Messages
2 087 635
Membres
103 619
dernier inscrit
TRANCART