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 :

Ouvrir une Google spreadsheet et faire un copier/coller vers excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Retraité - Bénévole
    Inscrit en
    Octobre 2018
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Retraité - Bénévole
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2018
    Messages : 81
    Par défaut Ouvrir une Google spreadsheet et faire un copier/coller vers excel
    Bonjour à toutes et à tous

    Mes données sont mises à jour dans une Google spreadsheet (https://docs.google.com/spreadsheets...Fbo/edit#gid=0).
    Je les copie/colle dans une feuille "DonneesGoogleSheet" de mon fichier xlsx où je les traite par macro.
    Je souhaiterais écrire une macro pour ouvrir automatiquement cette spreadsheet (1 seule feuille nommée "Form Responses 1"), en copier les données et les coller dans mon fichier xlsx.
    Après quelques tentatives inspirées par ChatGPT, je ne trouve toujours pas.
    Certains d'entre vous auraient -ils eu déjà à traiter cette problématique et pourraient-ils m'orienter vers une solution (s'il en existe une ...!)
    Je joins mon code ci-dessous pour celles et ceux qui auraient la curiosité de regarder :
    Merci beaucoup pour votre lecture et pour votre aide à venir
    Slts

    Ozabois

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    Sub CopierDonneesGoogleSheet()
        Dim wb As Workbook
        Dim ws As Worksheet
        Dim ie As Object ' Contrôle WebBrowser
        Dim doc As Object ' Document HTML
     
        ' Créer une nouvelle instance d'Internet Explorer
        Set ie = CreateObject("InternetExplorer.Application")
        ie.Visible = True
     
        ' Charger la GoogleSheets
        ie.Navigate "https://docs.google.com/spreadsheets/d/1fhlUGaBv85Cg9MglNTfXm8d2Y3ck0crpKm9SS1pLFbo/edit#gid=0"
     
        ' Attendre que la page se charge complètement
        Do While ie.Busy Or ie.ReadyState <> 4
            DoEvents
        Loop
     
        ' Récupérer le document HTML chargé dans le contrôle WebBrowser
        Set doc = ie.Document
     
        ' Récupérer la feuille et la plage de données source
        Dim rangeSource As Object
        Set rangeSource = doc.getElementById("form-response-1").getElementsByTagName("table")(0)
     
        ' Ouvrir le classeur Excel de destination
        Set wb = ThisWorkbook
     
        ' Vérifier si la feuille de destination existe, sinon la créer
        On Error Resume Next
        Set ws = wb.Sheets("DonneesGoogleSheet")
        On Error GoTo 0
     
        If ws Is Nothing Then
            Set ws = wb.Sheets.Add(After:=wb.Sheets(wb.Sheets.Count))
            ws.Name = "DonneesGoogleSheet"
        End If
     
        ' Copier les données de la feuille source vers la feuille de destination
        ws.Activate
        ws.Range("A1").Select
        rangeSource.Copy
        ws.Paste Destination:=ws.Range("A1")
     
        ' Ajuster la mise en forme si nécessaire
        ws.Columns.AutoFit
     
        ' Fermer le contrôle WebBrowser
        ie.Quit
     
        ' Message de confirmation
        MsgBox "Les données ont été copiées avec succès !", vbInformation
    End Sub

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    tu peux récupérer les éléments via power query

    Menu Données >> Obtenir des données >> A partir du web

  3. #3
    Membre confirmé
    Homme Profil pro
    Retraité - Bénévole
    Inscrit en
    Octobre 2018
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Retraité - Bénévole
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2018
    Messages : 81
    Par défaut
    Bonjour Joe,

    Merci beaucoup pour la rapidité de ta réponse et la piste que tu proposes. Je vais regarder.
    En fait, je souhaite passer par une programmation car je ne serai pas l'exploitant de ces données, lesquelles (confidentielles) doivent restées invisibles (donc inaccessibles) aux manipulateurs. Pour faire simple, l'application VBA va chercher les données dont elle a besoin et restitue des résultats.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 524
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 524
    Par défaut
    Salut,

    Power Query toujours, avec tes données dans une feuille masquée.

  5. #5
    Membre confirmé
    Homme Profil pro
    Retraité - Bénévole
    Inscrit en
    Octobre 2018
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Retraité - Bénévole
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2018
    Messages : 81
    Par défaut
    Après quelques tentatives infructueuses avec power query (Menu Données >> Obtenir des données >> A partir du web), je m'interroge sur la nécessité de faire préalablement un "Publish to web" depuis la spreadsheet.
    Après un publish to web (ou accès ouvert à tous ceux qui ont le lien), j'ai testé et ça marche. Ma difficulté vient du fait que l'accès à la spreadsheet n'est pas autorisé pour des questions de confidentialité.

Discussions similaires

  1. [Python 3.X] Comment ouvrir une Google spreadsheet et manipuler des folder dans le Drive.
    Par Tsurubaso dans le forum Général Python
    Réponses: 0
    Dernier message: 10/11/2019, 15h04
  2. Ouvrir une nouvelle page et faire les actions d'après dedans
    Par alaninho dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/03/2015, 17h30
  3. [XL-2007] Copier/coller vers Excel d'une chaine entre parenthèses
    Par alers dans le forum Excel
    Réponses: 5
    Dernier message: 10/06/2013, 12h56
  4. Réponses: 1
    Dernier message: 08/11/2009, 19h52
  5. [VBA-E]Faire un Copier coller d'une ListBox à une autre
    Par anubisigfrid dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/03/2007, 14h40

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