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 :

Comment programmer l'équivalent de "CONTROL HOME" en VBA [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2016
    Messages : 4
    Par défaut Comment programmer l'équivalent de "CONTROL HOME" en VBA
    Bonjour,
    Sur Internet il y a beaucoup de questions sur ce sujet mais je n'en ai trouvé aucune de satisfaisante pour le cas où
    1) les volets sont figés et
    2) les données sont filtrées

    Supposons que les volets soient figés après la 3ième ligne et après la deuxième colonne; Quand les données ne sont pas filtrées, la première cellule est la cellule L4C3.
    Par contre en filtrant les données, en supposant que la première occurrence se situe à la ligne 10, la première cellule va être L10C4

    Le code ci-après fonctionne correctement quand les données ne sont pas filtrées

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub scrollpane()
       With ActiveWindow
          .ScrollRow = 1
          .ScrollColumn = 1
          .ActivePane.VisibleRange.Cells(1).Select
       End With
    End Sub
    Mais il se positionne toujours sur la même cellule quand les données sont filtrées, donc pas sur la première cellule visible de la fenêtre.

    merci pour vos retours.

  2. #2
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 142
    Par défaut
    Bonjour,

    Ta question n'inspire pas beaucoup, alors je te propose ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub ctrl_home()
    Dim lig As Long
        lig = ActiveWindow.SplitRow + 1
        With ActiveSheet
            While .Rows(lig).Hidden
                lig = lig + 1
            Wend
            .Cells(lig, ActiveWindow.SplitColumn + 1).Activate
        End With
    End Sub
    Si tu masques aussi des colonnes, il faut le même traitement pour les colonnes.

  3. #3
    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,

    on ajoutant la propriété SpecialCells ça semble correspondre à ton souhait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With ActiveWindow
        .ScrollRow = 1
        .ScrollColumn = 1
        .ActivePane.VisibleRange.SpecialCells(xlCellTypeVisible).Cells(1, 1).Select
    End With

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2016
    Messages : 4
    Par défaut Merci pour vos réponses ...
    Merci pour vos réponses.

    Les deux procédures fonctionnent parfaitement.

    Bien cordialement

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

Discussions similaires

  1. [XL-2003] comment programmer un graphique en bâton et en camembert sur vba?
    Par hobine dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 21/11/2011, 22h45
  2. [VB.NET] Comment récupérer le nom d'un control avec le focus
    Par jayce007 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 20/01/2005, 00h53
  3. Réponses: 7
    Dernier message: 13/12/2004, 19h23
  4. comment programmer une progressbar
    Par Choucas dans le forum Paradox
    Réponses: 3
    Dernier message: 13/11/2002, 11h07

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