Exportation données

XkevinX

XLDnaute Junior
Bonjour le Forum,

J'ai une petite question.

Alors voilà, j'essaye d'exporter des données depuis un classeur fermé.
J'ai lu divers posts sur le forum et sur d'autres mais il y a une chose que je ne trouve pas.

J'utilise la méthode ADO.

Comment spécifier une plage de cellules qui va de A3 à dernière cellule non vide colonne A dans la requête SQL ?

J'ai essayé comme ceci:

Code:
 Arret = Range("A3") to Range("A" & .Range("A65356").End(xlUp).Row)
.CommandText = "SELECT * FROM [" & Feuille & Arret & "]"

Il faudrait un For comme je vois pas comment l'insérer.

Mais j'ai une erreur sur Arret. (erreur de syntaxe).

Voilà Merci.
 
Dernière édition:

XkevinX

XLDnaute Junior
Re : Exportation données

Re,

Je précise mon post; il est assez imprécis.

Je souhaite récupérer le contenu de certaines colonnes d'un classeur fermé.
Le souci, c'est que suivant la feuille choisie, le nombre de valeurs de ces colonnes varie.

J'ai ce code actuellement :

Code:
Dim Source As ADODB.Connection
    Dim Rst As ADODB.Recordset
    Dim ADOCommand As ADODB.Command
    Dim Fichier As String, Feuille As String
    
    'Adresse de la cellule contenant la donnée à récupérer
    'Arret = Range("A3") to Range("A" & .Range("A65356").End(xlUp).Row)
     Arret = "A3:A19"


      
    Feuille = CbxLigne.Value
    Fichier = "C:\Documents and Settings\stagiaire\Bureau\Distances.xls"
             
    Set Source = New ADODB.Connection
    Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
                
    Set ADOCommand = New ADODB.Command
    With ADOCommand
        .ActiveConnection = Source
        .CommandText = "SELECT * FROM [" & Feuille & Arret & "]"
    End With
    
                  
    Set Rst = New ADODB.Recordset
    Rst.Open ADOCommand, , adOpenKeyset, adLockOptimistic
                  
    Set Rst = Source.Execute("[" & Feuille & Arret & "]")
     
    Range("A3").CopyFromRecordset Rst
          
            
    Rst.Close
    Source.Close
    Set Source = Nothing
    Set Rst = Nothing
    Set ADOCommand = Nothing

La CbxLigne propose des valeurs qui sont Exactement les mêmes que les noms des feuilles du classeur fermé.

J'ai l'erreur : "Microsoft n'a pas pu trouver l'objet FeuilleArret" (Feuille et Arret pouvant varier suivant la macro).

Déjà, cela ne fonctionne pas pour une plage fixe alors une plage variable .....
Avec le test d'une plage variable avec Range("A" & .Range("A65356").End(xlUp).Row), j'ai l'erreur fichier en mode exclusif ou pas les droits.

J'ai besoin d'aide.

Merci.
 

Discussions similaires

Statistiques des forums

Discussions
312 677
Messages
2 090 824
Membres
104 677
dernier inscrit
soufiane12