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 :

Connection ADODB fichier Zip


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2012
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 21
    Par défaut Connection ADODB fichier Zip
    Bonjour à tous,

    Voici ma problématique : j'importe des données de classeurs fermés et cela fonctionne sans problème.
    Seulement, parfois mes classeurs fermés sont en fait "zippés".
    Est-il possible d'accéder aux données d'un classeur fermé "zippé" avec une connection ADODB?

    Ci-dessous mon code de récupération des données de classeurs fermés "non zippés". Il y a trois macros différentes, afin de pouvoir relancer des importations de données d'autres feuilles en fonction de conditions.
    Certaines de mes variables sont définies en public au début de mon module.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Public Sub ConnetionClasseurFerme()
     
    SynthesisBoo = False
    Set Cn = New ADODB.Connection
    'Connetion
    With Cn
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .ConnectionString = "Data Source=" & Fichier & _
            ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1'"
        .Open
    End With
     
    End Sub
    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
     
    Public Sub RequeteClasseurFerme()
    Dim Rst As ADODB.Recordset
    Dim texte_SQL As String
     
    'Définit la requête
    texte_SQL = "SELECT * FROM [" & NomFeuille & "$]"
    Set Rst = New ADODB.Recordset
    Set Rst = Cn.Execute(texte_SQL)
     
    'Création de la feuille Data2
        Sheets.Add
        ActiveSheet.Name = "Data2"
        ActiveSheet.Range("A1").CopyFromRecordset Rst
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Public Sub FermetureClasseurFerme()
    '--- Fermeture connexion ---
    Cn.Close
    Set Cn = Nothing
     
    End Sub
    Je serais reconnaissant à toute personne pouvant m'aider sur ce problème!

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour Arnaud,

    Si ton fichier est zippé, tu peux toujours utiliser cette fonction de dézippage

    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
    Sub DezipFichier()
      UnzipAll "D:\Users\BrunoM45\Documents\Mes Docs EXCEL\Fichier.zip", "D:\Users\BrunoM45\Documents\Mes Docs EXCEL\"
    End Sub
     
    Function UnzipAll(ZipFile As String, Optional sDest As String = "") As String
      On Error GoTo Error_UnzipAll
     
      Dim oshell As Object
      Dim oSrcFolder As Object
      Dim oDestFolder As Object
      Dim Itm As Object
     
      Set oshell = CreateObject("Shell.Application")
      Set oSrcFolder = oshell.Namespace(CVar(ZipFile))
      Set oDestFolder = oshell.Namespace(CVar(sDest))
     
      For Each Itm In oSrcFolder.items
        oDestFolder.CopyHere Itm
      Next Itm
      UnzipAll = "OK"
     
    Exit_UnzipAll:
      Set Itm = Nothing
      Set oSrcFolder = Nothing
      Set oDestFolder = Nothing
      Set oshell = Nothing
      Exit Function
     
    Error_UnzipAll:
      UnzipAll = Err.Number & " – " & Err.Description
      Resume Exit_UnzipAll
    End Function
    A+

  3. #3
    Membre averti
    Inscrit en
    Février 2012
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 21
    Par défaut
    Merci BrunoM45, je vais tester ta proposition.
    Dès que j'en sais un peu plus, je vous tiens au courant!

Discussions similaires

  1. ADODB connection sur fichier déjà ouvert
    Par Slooby dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/03/2015, 11h35
  2. [XL-2013] Connection ADODB sur un fichier en lecture seule
    Par i0raek dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/01/2015, 10h27
  3. ADODB connection sur fichier déjà ouvert
    Par sylgar dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/10/2013, 17h13
  4. [XL-2007] ADODB : se connecter à un fichier Excel sans l'ouvrir ?
    Par Monkey_D.Luffy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/10/2010, 09h50
  5. [Fichier Zip] Comment zipper un fichier
    Par caro_a dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 27/05/2004, 09h40

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