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 :

Actualiser tableau SQL sur feuille protégée [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire Base de données et Statisticien
    Inscrit en
    Mai 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Gestionnaire Base de données et Statisticien
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2014
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Actualiser tableau SQL sur feuille protégée
    Bonjour à tous,

    J'ai un code vba qui me permet d'actualiser deux tableaux importés d'une source SQL server. Tout marche bien.
    Je dois protéger des feuilles pour des raisons lambda, du coup, dans mon code, je déprotège mes feuilles en début de code, j'actualise mes données et ensuite je protège mes feuilles mais le problème est que je reçois un message d'erreur au cours de mon code comme quoi je dois enlever la protection pour actualiser mes données. Je pense que l'actualisation se fait mais quand elle pas en arrière plan, mon code passe à la suite et protège les feuilles, ce qui affiche l'erreur.

    Comment puis-je faire pour éviter cette erreur? j'ai essayé d'ajouter un minuteur mais sans succès... après je m'y suis peut-être mal pris, mais je pense que le problème est quand l'actualisation passe en arrière plan.

    Ci-dessous mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     'déprotège les feuilles
    Sheets("TARIF VENTE BASE").Unprotect Password:="TA541U"
    Sheets("FAMILLE").Unprotect Password:="TA541U"
    Sheets("LISTE").Unprotect Password:="TA541U"
     
    'maj des vues
    ActiveWorkbook.RefreshAll
    datemaj.Value = "Dernière mis à jour le " & Now()
     
    'protège les feuilles
    Sheets("TARIF VENTE BASE").Protect Password:="TA541U"
    Sheets("FAMILLE").Protect Password:="TA541U"
    Sheets("LISTE").Protect Password:="TA541U"
    Je vous remercie d'avance pour vos réponses.

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour, bonjour !

    La solution est dans l'aide VBA intégrée ‼
    Donc sélectionner dans le code RefreshAll puis cliquer sur
    Suffit juste de lire puis de mettre à jour le code …

    Voilà, voilà !

    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire Base de données et Statisticien
    Inscrit en
    Mai 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Gestionnaire Base de données et Statisticien
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2014
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Merci pour ta réponse.

    Mais même avec l'aide, j'ai du chercher encore sur d'autres forums comment marchais ce "backgroundquery".
    Pour ceux qui auront le même problème que moi, ci-dessous mon code :

    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
    Dim actu As QueryTable
    Dim feuille As Worksheet
     
    'déprotège les feuilles
    Sheets("TARIF VENTE BASE").Unprotect Password:="TA541U"
    Sheets("FAMILLE").Unprotect Password:="TA541U"
    Sheets("LISTE").Unprotect Password:="TA541U"
    Sheets("CREATION ETAT TARIF").Unprotect Password:="TA541U"
     
    'maj des vues
    For Each feuille In ThisWorkbook.Sheets
        For Each actu In ActiveSheet.QueryTables
            actu.BackgroundQuery = False
            ActiveSheet.Refresh
        Next actu
    Next feuille
     
    datemaj.Value = "Dernière mis à jour le " & Now()
     
    'protège les feuilles
    Sheets("TARIF VENTE BASE").Protect Password:="TA541U"
    Sheets("FAMILLE").Protect Password:="TA541U"
    Sheets("LISTE").Protect Password:="TA541U"
    Sheets("CREATION ETAT TARIF").Protect Password:="TA541U"
    End Sub

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

Discussions similaires

  1. [XL-2007] Insertion ligne dans un tableau (ListObject) sur feuille protégée
    Par Damran dans le forum Conception
    Réponses: 4
    Dernier message: 22/08/2012, 16h32
  2. [XL-2007] Macro sur feuille protégée et formulaire
    Par _ryo_ dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/02/2010, 16h12
  3. Fusion cellule sur feuille protégée
    Par hlander dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/02/2009, 13h33
  4. Libérer colonnes sur feuille protégée
    Par karenna dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 31/03/2008, 10h16
  5. filtre automatique sur feuille protégée
    Par pat91 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 23/02/2008, 22h57

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