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

Discussion: Suppression requête par VBA [XL-2019]

  1. #1
    Membre à l'essai
    Homme Profil pro
    Acheteur
    Inscrit en
    juillet 2017
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Acheteur

    Informations forums :
    Inscription : juillet 2017
    Messages : 43
    Points : 17
    Points
    17

    Par défaut Suppression requête par VBA

    Bonjour à tous,

    J'exploite une base de données dans Excel 2019 par une requête SQL afin de travailler dessus.

    J'ai crée une macro pour sauvegarder dans un nouvel onglet à la date du jour les données avant de réactualiser la requête.
    Ce qui donne cette petite macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Mise_à_jour_stock()
    'on actualise la requête à la bonne date
     ActiveWorkbook.Connections("Requête*-*DP_STOCKS").Refresh
    'on sauvegarde le tableau dans un nouvel onglet à la date du jour
     Sheets("SQL").Copy after:=Sheets("SQL")
     Sheets("SQL (2)").Name = Format(Date, "dd-mmm")
     'on retourne au premier onglet
     Sheets("Synthèse").Select
     
    End Sub

    Je ne trouve pas le moyen de supprimer la requête dans le nouvel onglet crée.
    En effet, ce dernier reste.
    Ce qui fait que quand j'actualise la requête SQL, les onglets à la date antérieur s'actualisent aussi avec les données du jour.
    J'ai essayé plusieurs solutions sans que cela ne fonctionne.

    Je pensais que cette solution simple pouvait marcher mais ce n'est pas le cas. Auriez-vous une idée ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Sub Mise_à_jour_stock()
     
     ActiveWorkbook.Connections("Requête*-*DP_STOCKS").Refresh
     
     Sheets("SQL").Copy after:=Sheets("SQL")
     Sheets("SQL (2)").Name = Format(Date, "dd-mmm")
     
     Activesheets.Querytables(1).Delete
     
     Sheets("Synthèse").Select
     
    End Sub
    Par avance merci

    Cordialement

  2. #2
    Membre habitué
    Homme Profil pro
    employé administratif
    Inscrit en
    février 2018
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : employé administratif

    Informations forums :
    Inscription : février 2018
    Messages : 107
    Points : 133
    Points
    133

    Par défaut Bonsoir

    Bonsoir,,

    Assez bizarre comme soucis.

    Peut-être une piste ou même deux:
    Faire un copier coller valeur vers une feuilles, ou envois de la feuille vers un classeur 'archive'


    Sinon pour supprimer toutes les connections au classeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Public Sub DeleteAllConnectionsInWorkbook()
        Dim aConn as Object
        For Each aConn in ActiveWorkbook.Connections
            aConn.Delete
        Next aConn
    End Sub

  3. #3
    Membre à l'essai
    Homme Profil pro
    Acheteur
    Inscrit en
    juillet 2017
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Acheteur

    Informations forums :
    Inscription : juillet 2017
    Messages : 43
    Points : 17
    Points
    17

    Par défaut

    Bonsoir,

    Merci pour votre retour

    Je suis parti sur un ajout à la suite dans une feuille "Archives" et je fais un tableau croisé dynamique pour appeler la date de chaque ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    nbLignes = Sheets("SQL").Cells(Rows.Count, "A").End(xlUp).Row
    Sheets("SQL").Range("A2:J" & nbLignes).Copy Destination:=Sheets(4).Range("D1048576").End(xlUp)(2)

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

Discussions similaires

  1. Mise à jour requête par VBA
    Par Goube dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/05/2018, 15h35
  2. [AC-2010] Modifier un paramètre de type "text" d'une requête par VBA
    Par metalleuse dans le forum VBA Access
    Réponses: 8
    Dernier message: 22/06/2015, 09h47
  3. Pilotage d'une requête par VBA
    Par arnaud03 dans le forum VBA Access
    Réponses: 9
    Dernier message: 17/06/2014, 00h28
  4. Modifier propriété <source base> d'une requête par VBA ou SQL?
    Par 1010titi dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 26/11/2008, 21h16
  5. exécution de requête par VBA
    Par nadia123456 dans le forum VBA Access
    Réponses: 3
    Dernier message: 20/09/2008, 12h31

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