nombre colonnes ADO

erics83

XLDnaute Impliqué
Bonjour,

je cherche à récupérer via ADO (donc dans un classeur fermé), une plage de cellule qui va de A2:ABM400.

le problème étant que je n'arrive à récuper que jusque la colonne IV.....(= format .xls)

le code (merci JB ):
VB:
Sub RecupTableur2()
  ' Microsoft ActiveX DataObject doit être coché
  Set cnn = New ADODB.Connection
  répertoire = ThisWorkbook.Path
  Fichier = "\Essai\Temps.xlsm"
  cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & répertoire & "\" & Fichier & ";Extended Properties='Excel 12.0;HDR=Yes'"
  Set rs = cnn.Execute("[Visu$A1:ABM400]")
  [A1].CopyFromRecordset rs
  rs.Close
  cnn.Close
  Set rs = Nothing
  Set cnn = Nothing
End Sub

merci pour votre aide,
 

job75

XLDnaute Barbatruc
Bonjour erics83, Philippe_JOCHMANS,

Je n'ai pas d'autre solution que de découper la plage à copier en tranches de 255 colonnes :
VB:
Sub RecupTableur2()
' Microsoft ActiveX DataObject doit être coché
Set cnn = New ADODB.Connection
répertoire = ThisWorkbook.Path
Fichier = "\Essai\Temp.xlsm"
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & répertoire & Fichier & ";Extended Properties='Excel 12.0;HDR=Yes'"
Set rs = cnn.Execute("[Visu$A1:IU400]") '255 colonnes
[A1].CopyFromRecordset rs
Set rs = cnn.Execute("[Visu$IV1:SP400]") '255 colonnes
[IV1].CopyFromRecordset rs
Set rs = cnn.Execute("[Visu$SQ1:ABM400]") '231 colonnes
[SQ1].CopyFromRecordset rs
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub
A+
 

erics83

XLDnaute Impliqué
Un mot un seul job75 => super merci !!!

Effectivement c'était la "bonne" solution.....et rapide.....car à force d'essayer, j'étais parti sur une ouverture/fermeture du fichier copier/coller, mais j'avais des problèmes de format.....et c'est vraiment moins rapide que ADO.....

Bien vu le découpage.....! je ré-utiliserai !!! Merci

Merci !
 

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 015
Membres
101 868
dernier inscrit
pierreselo33