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 :

Bascule avec Worksheet_SelectionChange [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 656
    Par défaut Bascule avec Worksheet_SelectionChange
    Bonjour,

    Est-il possible de créer une "bascule" dans le cas suivant ?
    Si je clique sur A9, >> ActiveWindow.ScrollRow = 17, sinon >> ActiveWindow.ScrollRow = 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
        Select Case Target.Address(0, 0)
     
            Case Is = "A9"  'Down
                ActiveWindow.ScrollRow = 17
    Je pensais utiliser l'opérateur NOT comme dans le cas suivant mais pas sûr que cela soit possible.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Shapes("Image").Visible = Not ActiveSheet.Shapes("Image").Visible
    En vous remerciant par avance pour vos lumières,
    Cordialement,
    jp

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 171
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Utilisez un contrôle ActiveX ToggleButton dont la propriété Value a deux valeurs possibles True ou False
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub ToggleButton_Click()
      If ToggleButton.Value Then
         ' Code si True
       Else
         ' Code si False
      End If
    End Sub
    Il y a évidemment plus court, si l'on joue avec la valeur booléenne

    Affichera 17 ou 1 en fonction de la propriété Value de ToggleButton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub ToggleButton_Click()
      Const WindowsValue As Long = 16
      MsgBox WindowsValue * Abs(ToggleButton.Value) + 1
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 656
    Par défaut
    Bonjour et merci !

    Je voulais éviter de passer par un (Toggle)Button mais je retiens cette proposition.

    Avec 16, Pourquoi pas Integer plutôt que Long ?

    Const WindowsValue As Long = 16
    Cordialement,
    jp

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 171
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je voulais éviter de passer par un (Toggle)Button mais je retiens cette proposition.
    Il suffit de placer le bouton en tête de la feuille et bloquer les lignes concernées en figeant les volets.

    Avec 16, Pourquoi pas Integer plutôt que Long ?
    En règle générale j'essaye d'anticiper les problèmes et donc comme 17 représente la 17ème ligne et qu'il y a plus de 32767 lignes dans une feuille excel, je suis certain que de ce côté là, je serai tranquille.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 656
    Par défaut
    Merci !

    (PS : A propos du nombre, je me demande parfois à quoi peuvent servir 1.048.576 lignes dans une feuille (sans parler des colonnes) ... Pour une saisie brute, ça doit passer mais quid avec des formules ?! Il doit falloir beaucoup de ressources !!)

  6. #6
    Rédacteur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2013
    Messages
    1 025
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 1 025
    Par défaut
    Citation Envoyé par jpma75 Voir le message
    A propos du nombre, je me demande parfois à quoi peuvent servir 1.048.576 lignes dans une feuille...
    Bonjour.
    Sans entrer dans le débat ''Utilisez Access pour gérer vos bases de données'' , vous trouverez peut-être un début de réponse dans le tome 6 de ma signature, qui tient compte aussi du problème des ressources nécessaires.
    Cordialement.

  7. #7
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 656
    Par défaut
    Bonsoir,

    (...) Alors imaginez sur les 1 048 576 lignes d'une feuille de calcul : c'est mission impossible (...).
    Ça me rassure

    Merci beaucoup pour ces liens sur lesquels je reviendrai dès que possible.

    Cordialement,
    JP

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

Discussions similaires

  1. [XL-2013] Événements successifs avec Worksheet_SelectionChange
    Par bobob2 dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 11/10/2015, 19h52
  2. Réponses: 12
    Dernier message: 10/08/2007, 10h03
  3. problème avec Worksheet_SelectionChange
    Par clarisse dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/08/2007, 14h37
  4. Réponses: 11
    Dernier message: 17/10/2006, 17h55
  5. Réponses: 4
    Dernier message: 04/09/2006, 12h41

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