IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Requête Insert dans Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 26
    Par défaut Requête Insert dans Excel
    Bonjour,

    J'utilise une connexion vers un autre classeur Excel grâce à ADODB comme dans le tutoriel trouvé sur ce site:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
     
    Sub RequeteClasseurFerme()
        Dim Cn As ADODB.Connection
        Dim Fichier As String
        Dim NomFeuille As String, texte_SQL As String
        Dim Rst As ADODB.Recordset
     
        'Définit le classeur fermé servant de base de données
        Fichier = "C:\monClasseurBase.xls"
        'Nom de la feuille dans le classeur fermé
        NomFeuille = "Feuil1"
     
        Set Cn = New ADODB.Connection
     
        '--- Connection ---
        With Cn
            .Provider = "Microsoft.Jet.OLEDB.4.0"
            .ConnectionString = "Data Source=" & Fichier & _
                ";Extended Properties=Excel 8.0;"
            .Open
        End With
        '-----------------
     
        'Définit la requête.
        '/!\ Attention à ne pas oublier le symbole $ après le nom de la feuille.
        texte_SQL = "SELECT * FROM [" & NomFeuille & "$]"
     
        Set Rst = New ADODB.Recordset
        Set Rst = Cn.Execute(texte_SQL)
     
        'Ecrit le résultat de la requête dans la cellule A2
        Range("A2").CopyFromRecordset Rst
     
        '--- Fermeture connexion ---
        Cn.Close
        Set Cn = Nothing
     
    End Sub
    Pour ça pas de problème, par contre la requête SELECT que l'on fait m'interpelle un peu. Voila comment je la comprends:

    SELECT * FROM [" & NomFeuille & "$]
    Prend tout depuis [le nom de la feuille$]

    Du coup est-ce que c'est possible de sélectionner uniquement une plage de donnée? Dans le genre:

    Prend tout à parti de la 8e ligne depuis [le nom de la feuille$]

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Je ne pense pas que tu puisses prendre à partir de la ligne 8, mais tu peux ajouter une clause WHERE et y inclure tes conditions, du genre >0 ou <>"" ou autre selon les données des colonnes que tu vises et le résultat escompté.

  3. #3
    Membre chevronné
    Inscrit en
    Janvier 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 483
    Par défaut
    Bonjour
    peut être que c'est possible, essaie cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      'définir la plage
    Dim Plage As Range
     Set Plage = Range("A4:H10") ' à modifier
     texte_SQL = "SELECT * FROM [" & feuil1 & "$" & Plage.Address(0, 0) & "]"
     Set Rst = New ADODB.Recordset
     Set Rst = Cn.Execute(texte_SQL)
    Cordialement

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 26
    Par défaut
    Salut,

    Merci pour vos réponses.

    C'est en effet possible de faire un SELECT * FROM [Sheet1$A8:Z65000] mais du coup ça m'avance peu..

    Je voulais faire ça pour éviter la troncature mais le pilote à l'air de faire ce qu'il veut.. Même en écrivant manuellement 256 caractère en A1 il tronque quand même les données

Discussions similaires

  1. [AC-2007] requête lue dans excel
    Par bethesda dans le forum Modélisation
    Réponses: 6
    Dernier message: 15/11/2010, 17h37
  2. interrogation DB2 et insertion dans Excel
    Par cduchesn dans le forum DB2
    Réponses: 7
    Dernier message: 02/06/2010, 15h29
  3. [AC-2007] Requête INSERT dans VBA
    Par curt dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 18/05/2009, 00h15
  4. Requête INSERT dans procédure stockée
    Par ordiminnie dans le forum Développement
    Réponses: 7
    Dernier message: 30/10/2008, 22h17
  5. EXporter une requête Access dans Excel
    Par hellbilly dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 23/07/2006, 15h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo