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 :

Positionner une cellule en haut à gauche de l'écran


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
    Janvier 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 13
    Par défaut Positionner une cellule en haut à gauche de l'écran
    Bonjour,
    J'ai un soucis de programmation vba excel. Je ne trouve pas la façon d'écrire le code. Je voudrais que lorsque je passe de la feuille1 à la feuille2, la cellule sélectionné de la feuille1 (la feuille que je quitte) soit A1.
    J'ai essayé ce code sur cet évènement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
        Range("A1").Select   'Selectionne A1 sur la feuille choisi et non celle que l'on quitte
        Sheets(Sh.Name).Range("A1").Select    'et ici ça bugue
    End Sub
    Mais tout cela ne marche pas
    Comment dois je faire si c'est possible?

  2. #2
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Il faudrait réussir à récupérer la feuille que tu quittes mais ...
    Quel est l'intérêt de faire cela ?

    Si tu te balades sur ce Forum tu y liras certainement que l'utilisation de Select est en général à proscrire (pour des raisons diverses et variées, de performances je crois...).
    Il y a en général un moyen de faire autrement.

  3. #3
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Comme Caro, je ne vois pas très bien à quoi cela peut servir. Il serait par exemple moins étonnant de chercher à sélectionner une plage quand on sélectionne une feuille, mais quand on la quitte...

    Mais bon pour répondre à la question, par jeu, dans le module ThisWorkbook
    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
    Dim bDesactivationFeuille1 As Boolean
     
    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
     
    If bDesactivationFeuille1 Then
        Application.EnableEvents = False
        Application.ThisWorkbook.Worksheets("Feuil1").Activate
        Application.ThisWorkbook.Worksheets("Feuil1").Range("A1").Select
        Sh.Activate
        bDesactivationFeuille1 = False
        Application.EnableEvents = True
    End If
     
     
    End Sub
     
    Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
        If Sh Is Application.ThisWorkbook.Worksheets("Feuil1") Then bDesactivationFeuille1 = True
    End Sub
    Cordialement,

    PGZ

  4. #4
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 13
    Par défaut reponse
    Pour répondre à l'utilité de ce que je recherche. Mon classeur contient une dizaine de feuille ayant la même structure. Chaque feuille est une base de donnée où j'applique un filtre automatique. Lorsque je mets un critère sur un filtre celui ci est reproduit sur chaque filtre de chaque feuille. Si la cellule active est en bas d'un tableau (ex : Ligne 1800) et que j'applique un filtre (résultat du filtre, il reste 3 lignes par ex) et bien on ne peut pas voir à l'écran ces 3 lignes, il faut remonter la barre de défilement vertical pour lire ces 3 lignes. (Donc 10 feuilles, c'est 10 feuilles à remonter en A1)
    Autre point, si je clique dans une colonne, j'affiche un commentaire photo. Pour que le commentaire disparait de l'écran je dois quitter la cellule. Si je reste sur ces cellules et que j'effectue un tri, le commentaire reste même si la cellule ne fait pas parti du tri restant.
    Donc voilà, je me suis dit. Mets cette cellule active en "A1", puisque je n'ai rien dans cette cellule, comme ça mes commentaires sont tous fermé, et mon tableau commencera toujours à la ligne 1
    voilà pourquoi, je veux faire cela. Il ya peut être d'autre solution. Mais pour l'instant je cherche

  5. #5
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 13
    Par défaut solution
    En lisant vos réponses et en réfléchissant, j'ai changé mon fusil d'épaule. Au lieu de faire ce que je voulais en quittant la feuille, je le fais au moment où je l'active. Ce qui est beaucoup plus simple avec l'évènement Workbook_SheetActivate

    voici le code pour ceux qui me liront. C'est toujours utile.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
        ActiveWindow.ScrollRow = 6
        ActiveWindow.ScrollColumn = 1
        Range("A1").Select
    End Sub
    Voilà, merci à tous pour votre aide

  6. #6
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Tu ne préfères pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
        Sh.Range("A1").Select
    End Sub
    ?

    PGZ

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Citation Envoyé par philpas3
    voici le code pour ceux qui me liront. C'est toujours utile.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
        ActiveWindow.ScrollRow = 6
        ActiveWindow.ScrollColumn = 1
        Range("A1").Select
    End Sub
    A quoi te servent les deux lignes
    ActiveWindow.ScrollRow = 6
    ActiveWindow.ScrollColumn = 1
    si c'est pour sélectionner ensuite la cellule A1 ?
    "ActiveWindow.ScrollRow = 6" place la ligne 6 en haut de la page
    "ActiveWindow.ScrollColumn = 1" place la colonne 1 à gauche de la page
    Donc, soit tu souhaites que la cellule A1 soit en haut et à gauche de la page, soit tu souhaites que ce soit la cellule A6... Mais pas les deux

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

Discussions similaires

  1. Positionner un userform en haut à gauche de la feuille
    Par stimp4ck dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/03/2008, 14h20
  2. Récupérer les coordonnées (haut gauche) d'une cellule ou d'un div
    Par pcayrol dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 28/06/2007, 14h49
  3. Contenu d'une cellule en haut
    Par PuppeT mAsTer dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 13/06/2006, 16h39
  4. [positionnement]image au bas d'une cellule
    Par bakonu dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 15/10/2005, 12h25
  5. Positionner des cellules dans une page
    Par BBe8127 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/10/2005, 10h25

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