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

Access Discussion :

Figer les volets d'un fichier Excel


Sujet :

Access

  1. #1
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 53
    Points : 43
    Points
    43
    Par défaut Figer les volets d'un fichier Excel
    Bonjour,

    J'essaie de manipuler des objets Excel depuis Access et je trouve ca plutot coton.

    Je voudrais faire 2 choses
    - 1: mettre des filtres automatiques sur les 3 premieres colonnes (ca, ca marche)
    - 2: figer les volets sur la case D2 (ca, ca ne marche pas)

    Quelqu'un peut-il me dire ce qui ne va pas dans mon programme (partie en gras)? Je ne sais plus comment faire.

    Merci

    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
    Function AjouterFiltres(ByVal strClasseur As String, ByVal strFeuille As String)
    
    Dim xlApp As Excel.Application
    Dim wbk As Excel.Workbook
    Dim sht As Excel.Worksheet
    
    ' Ouvrir le classeur concerné
    Set xlApp = CreateObject("Excel.Application")
    Set wbk = xlApp.Workbooks.Open(strClasseur)
    
    ' Désactiver les messages de confirmation d'Excel
    'xlApp.DisplayAlerts = False
    
    Set sht = wbk.Worksheets(strFeuille)
    
    'Ajout de filtres Automatiques
    sht.Columns("A:C").AutoFilter
    
    'Figer les volets
    sht.Range("D2").Select
    sht.FreezePanes = True
    
    Set sht = Nothing
    wbk.Close True
    
    Set wbk = Nothing
    
    ' Réactiver les msg de confimation d'Excel
    'xlApp.DisplayAlerts = True
    
    ' Quitter Excel
    xlApp.Quit
    Set xlApp = Nothing
        
    End Function

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    FreezePanes s'applique à une fenêtre ..:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    'Figer les volets
    sht.Range("D2").Select 
    xlAPP.ActiveWindow.FreezePanes = True

  3. #3
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 53
    Points : 43
    Points
    43
    Par défaut
    Merci pour l'info.
    Hélas, j'ai toujours un message d'erreur me disant que la méthode select de la classe Range a échoué (erreur 1004) juste avant l'instruction de freeze.

  4. #4
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 53
    Points : 43
    Points
    43
    Par défaut
    C'est bon, ca marche: J'avais refait un essai sur un fichier ou les filtres etaient deja en place ce qui faisaient raté l'exécution. Désolé.
    Pb résolu, merci.

  5. #5
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 53
    Points : 43
    Points
    43
    Par défaut
    J'ai parlé trop vite. J'ai implémenté ma procédure dans mon véritable programme (exécution journalière) et j'ai de nouveau le message d'erreur.

    Il y a 2 cas:

    Cas1 - Anciens Fichiers (fichiers journaliers, les données de la veille sont supprimées)
    En résumé, je supprime les 2 feuilles du classeur qui ont eu la veille (en theorie) l'ajout des filtres et les volets figés.
    Dans ce cas, j'ai le msg d'erreur pour les 2 feuilles.

    Cas2 - Nouveau Fichier (fichier mensuel)
    La, ca marche pour la première feuille et j'ai le msg d'erreur pour la 2de.

    Toutes les suggestions sont les bienvenues

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    il faut activer la feuille avant..:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    'Figer les volets
    sht.Activate 'Active feuille
    sht.Range("D2").Select 
    xlAPP.ActiveWindow..FreezePanes = False
    DoEvents
    xlAPP.ActiveWindow.FreezePanes = True

  7. #7
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 53
    Points : 43
    Points
    43
    Par défaut
    Merci bcp.
    Entre temps j'ai rajouté un petit sht.select avant sht.Range("D2").Select et ca à l'air de fonctionner.
    Je garde ta solution au chaud au cas ou. Je pense qu'elle va me servir pour d'autres prog que j'ai à faire. Donc merci encore, pb résolu (pour de bon j'espere).

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

Discussions similaires

  1. [XL-2013] Impossible de figer les volets dans un classeur excel
    Par mikagi dans le forum Excel
    Réponses: 2
    Dernier message: 02/04/2015, 18h43
  2. [Excel] Figer les volets sur 3 "dimensions"
    Par ancel17 dans le forum Excel
    Réponses: 5
    Dernier message: 11/12/2013, 11h25
  3. figer les volets excel
    Par roico dans le forum VBA Access
    Réponses: 1
    Dernier message: 16/05/2007, 15h14
  4. [VB6]"Figer les volets" dans une feuille Excel
    Par maillardd dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 01/02/2006, 15h41
  5. [VBA] Figer les volets automatiquement
    Par titflocon dans le forum Access
    Réponses: 5
    Dernier message: 21/12/2005, 13h46

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