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 :

Manipulation De fichier Excel Fermé


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Par défaut Manipulation De fichier Excel Fermé
    Bonjour a tous,

    J'ai lu le tuto de silkyroad sur la manipulation de fichier Excel Fermé. Tout marche correctement j'arrive à accéder a mon fichier sans encombre mais j'ai un léger soucis.

    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
    40
    41
    42
        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 = "T:\Team\Robin\Excel Test\Emerging.xlsx"
        'Nom de la feuille dans le classeur fermé
        NomFeuille = "Name"
        
        Set Cn = New ADODB.Connection
        
        '--- Connection ---
        With Cn
            .Provider = "Microsoft.ACE.OLEDB.12.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)
        
        '--- Boucle sur les entêtes pour récupérer les noms ---
        For i = 0 To Rst.Fields.Count - 1
            Cells(1, i + 1) = Rst.Fields(i).Name
        Next i
        
        'Ecrit le résultat de la requête dans la cellule A2
        'Range("A1").CopyFromRecordset Rst
        
        '--- Fermeture connexion ---
        Cn.Close
        Set Cn = Nothing
    
    End Sub
    Rst.Fields.Count me renvoie 255 alors que j'ai 4000 colonnes. Y a-t-il un maximum ?

    Une autre petite question est il possible de connaitre le nombre de lignes pour une colonne donné ?

    Merci a tous

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par rampage92 Voir le message
    Une autre petite question est il possible de connaitre le nombre de lignes pour une colonne donné ?
    Tu passes par une méthode qui considère le fichier Excel comme une base de données.
    Il n'y a donc pas de "colonnes/lignes" mais des "champs/enregistrements".
    Pour une base de données, toutes les "colonnes" ont la même taille puisqu'un nouvel enregistrement concerne tous les champs de la base.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Tu utilises le bon drever mais pas la bonne extension.

    Un fichier excel 8 (xls et pas xlsx) ne peut pas dépasser 255 colonne !

    https://www.developpez.net/forums/d1.../#post10372486

  4. #4
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Par défaut
    Merci pour votre aide. Cependant je n'ai pas bien compris... Est donc possible de resoudre mon probleme sachant que j'ai plus de 4000 colonnes dans mon fichier ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Click sur le lien.

  6. #6
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Par défaut
    j'ai cliqué sur le lien. j'ai essayé de modifier mon code de la maniere suivante :

    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
    40
    41
    42
    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 = "T:\Team\Robin\Excel Test\Emerging.xlsx"
        'Nom de la feuille dans le classeur fermé
        NomFeuille = "Name"
        
        Set Cn = New ADODB.Connection
        
        '--- Connection ---
        With Cn
            .Provider = "Microsoft.ACE.OLEDB.12.0"
            .ConnectionString = "Data Source=" & Fichier & _
                ";Extended Properties=""Excel 12.0;HDR=YES;"""
            .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)
        
        '--- Boucle sur les entêtes pour récupérer les noms ---
        For i = 0 To Rst.Fields.Count - 1
            Cells(1, i + 1) = Rst.Fields(i).Name
        Next i
        
        'Ecrit le résultat de la requête dans la cellule A2
        'Range("A1").CopyFromRecordset Rst
        
        '--- Fermeture connexion ---
        Cn.Close
        Set Cn = Nothing
    
    End Sub
    Après cette modification je n'ai toujours que 255 colonnes. Y a-t-il quelque chose que j'ai omis de regarder dans le lien ? Est possible de travailler avec 4000 colonnes ?

    MErci

  7. #7
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par rampage92 Voir le message
    Est possible de travailler avec 4000 colonnes ?
    Oui : en ouvrant le fichier de façon classique avec un Open.

  8. #8
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Par défaut
    Merci a vous deux explications très claires

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    oui je confirme 255 colonne, désolé je n'avais jamais été confronté au problème!

    je ne l'imaginais pas !

    en plus je suis en 365 pro 64!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment manipuler plusieurs fichiers Excel
    Par Olivier0 dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 16/08/2007, 08h38
  2. probleme de manipulation de fichier excell
    Par obydissonn dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/03/2007, 13h21
  3. [VBA-E]Importer des données de fichiers excel fermés
    Par bart64 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/04/2006, 11h35
  4. Manipuler un fichier excel avec python
    Par dipajero dans le forum Général Python
    Réponses: 4
    Dernier message: 09/02/2006, 23h14

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