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 :

Désactivation verrouillage numérique


Sujet :

Macros et VBA Excel

  1. #21
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour

    Citation Envoyé par unparia Voir le message
    Précise en détail tout de ce qu'est très exactement ce "menu déroulant".
    Je vais faire le zouf (?), le devin (?) ou le génie (?) du jour.

    Son "menu déroulant" c'est une plage de feuille de calcul dans laquelle il promène le "curseur"
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  2. #22
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour cmarcotte

    Bonjour Joe.levrai

    Il souhaite simplement "déplier" automatiquement une liste de validation disposée dans cette cellule

    à trop vouloir mâcher le travail des utilisateurs, on finit parfois par en perdre ses cheveux
    C'est facile, non seulement à mettre en oeuvre, mais également à faire mieux encore dans ce sens. Et sans sendkeys (à toujours éviter comme la peste) ni lourdeur additionnelle - et dépendance ! - de langages script, etc ...
    Je viens de le faire à l'instant, mais il importe que jpma75 fasse l'effort, s'il veut en profiter, de se montrer très précis (donnant donnant****** ou rien du tout est devenu ma devise de ces jours-ci).

    EDIT : ****** pour jpma75 :
    Voilà ce qu'il y a à la clef du "donnant donnant" :
    lorsque l'utilisateur se rend dans la/les cellule(s) concernée(s) :
    - s'ouvre sous lui une liste déroulante remplie des choix possibles
    - si la cellule ne contient rien ou une valeur non admise : aucune présélection dans la liste et l'utilisateur devra y faire un choix valide
    - si la cellule contient déjà une valeur valide, elle apparaîtra déjà sélectionnée dans la liste. L'utilisateur pourra alors : soit la conserver, soit en changer
    - au sortir de cette liste :
    ------ la cellule aura la valeur qui y a été sélectionnée ou conservera sa valeur ancienne si aucune sélection
    ------ la liste disparaîtra alors de la vue (elle ne réapparaîtra que si l'utilisateur se rend dans une autre cellule également concernée par ce mécanisme)

    LE TOUT : en un nombre ridicule de lignes de code et uniquement du VBA. Aucune dépendance de quelque sorte que ce soit.

    Intéressant n'est-il-pas (à la british) ?
    Mais voilà : tu n'auras cela qu'à la condition indiquée plus haut : un effort pour te montrer clair, précis et complet (comme demandé). Ou tu n'auras rien (c'est cela, mon "donnant donnant").
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  3. #23
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Bonjour Jacques,


    Mais voilà : tu n'auras cela qu'à la condition indiquée plus haut : un effort pour te montrer clair, précis et complet (comme demandé). Ou tu n'auras rien (c'est cela, mon "donnant donnant").
    Tout à fait d'accord, c'est la moindre des choses

    Ryu
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  4. #24
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour Ryu
    Hé oui ! Le paradoxe est là : lorsque le demandeur ne fait pas l'effort qu'il attend par contre des répondeurs ! Cela commence réellement à m'insupporter.

    Si la chose t'intéresse : dis-le et je te l'envoie volontiers par MP, avant de l'effacer (comme d'hab ) sur ma machine.
    Amitiés
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  5. #25
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Re Jacques,
    tu le sais bien autant que Marc (que je salue) tout m'intéresse, ma curiosité et ma soif d'apprendre n'a pas de frontière et de limite (juste celle du temps, qui fait défaut , mais on fait avec).
    C'est avec plaisir, je veux bien que tu me l’envoies.
    Merci
    Ryu
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  6. #26
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Tu l'auras juste après ma sieste, Ryu. Mais ne la mets pas sur le forum avant un bon mois, sauf si jpma75 a entre temps réagi en faisant l'effort demandé.

    EDIT : finalement envoyé avant ma sieste.
    Amitiés
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

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

    Informations forums :
    Inscription : Janvier 2013
    Messages : 593
    Points : 153
    Points
    153
    Par défaut
    Bonjour,

    kiki29,

    Merci pour ces précisions. J'ai bien noté la nécessité de répéter la ligne mais j'avoue ne pas avoir grillé le dernier neurone qui me reste pour saisir toute la subtilité de la démonstration.

    Docmartin,

    Génial ! Parfait ! Here is the solution !! Pas tout compris, mais c'est adopté, testé, et validé. Merci !

    unparia,

    L'utilisateur ouvre le classeur sur lequel s'affiche un tableau de référence. Ce tableau a pour objet d'être dupliqué mais dans sa version de référence son affichage est restreint ; l'utilisateur peut néanmoins modifier des valeurs de quotas (qui seront reprises dans les duplications) et accéder à des options. L'une d'entre elles, lance la duplication. Dans le nouveau tableau (nouvelle feuille) créé, l'utilisateur doit impérativement saisir une date car celle-ci renommera la feuille active (Sheetname). Il est donc important que, dès l'option de duplication lancée, le menu déroulant s'ouvre pour inviter l'utilisateur à remplir la cellule. L'ouverture du menu se fait par un "Worksheet_selectionChange" (à noter que si l'utilisateur ne saisit rien, je l'y ré-invite par un "Worksheet_Change").
    Dans la cellule où s'affiche le menu déroulant, il y a : "Données/Validation de Données/Autoriser : Liste/Source : =Calendrier".

    Calendrier est une plage nommée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DECALER(menus!$K$5;;;NBVAL(menus!$K$5:$K$21))
    Précision (au cas où), les dates qui sont proposées dans le menu déroulant doivent être différentes de celles qui figurent déjà dans les noms de feuilles existantes ! Donc, je les récupèrent ainsi :

    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
    Sub Rec_Noms_Onglets()
    Dim ws As Worksheet, i As Integer
     
        i = 2
        Application.EnableEvents = False 'attention
        Sheets("menus").Columns(1).ClearContents
        For Each ws In Application.Worksheets
            If ws.Name <> "menus" And ws.Name <> "réf." Then
                Sheets("menus").Range("A" & i) = ws.Name 
    '            Sheets("menus").Range("A1").End(xlUp).Offset(1, 0) = ws.Name
                i = i + 1
            End If
        Next ws
        Application.EnableEvents = True
    End Sub
    ... et dans ma plage "Calendrier" je gère les doublons par rapport à ce que m'a renvoyé la procédure "Sub Rec_Noms_Onglets()".

    Donc rien d'extraordinaire dans ce menu déroulant, mais comme tu voulais le détail...
    Cdt

  8. #28
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Je ne vois là ni où est le menu déroulant, ni quel objet il est, ni où tu y utilises le sendkeys.
    Peux-tu préciser ?
    Veux-tu dire que ton menu déroulant contient les données d'une plage (serait-ce ta plage nommée "calendrier" dans la feuille "Menus"?) et qu'une saisie doit nécessairement correspondre à une sélection dans ce menu déroulant ?
    Si oui : quelles sont les cellules à contrôler ainsi lors de la saisie ? (celles liées à ton "menu déroulant)
    Ce sont ces réponses-là, que j'attends, pas des précisions sur la manières dont ont été définies les valeurs (apparemment celles de la plage nommée "calendrier") à afficher dans ton "menu déroulant" et parmi lesquelles en sélectionner une).
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  9. #29
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Citation Envoyé par jpma75 Voir le message
    Bonjour,

    l'utilisateur doit impérativement saisir une date car celle-ci renommera la feuille active (Sheetname).
    Dire que VBA fournit deux InputBoxes pour des affaires du genre :

    Inputbox() et application.inputbox()


    le menu déroulant s'ouvre pour
    Il n'y a pas de menu dans VBA. Ce que tu appelles un menu déroulant n'existe pas, sauf si c'est quelque chose que tu as patenté. Pour tous ceux qui répondent ici, un menu déroulant est issu d'un ruban ou d'une barre d'outils. Ce n'est pas une liste déroulante, ni un ListBox ni un combobox, ni une liste de validation ou n'importe quoi d'autre. Quand on utilise sans aucune explication un terme différent pour désigner un objet différent de celui qui est généralement connu de l'ensemble des membres cela ne mène nulle part.

    Dans la cellule où s'affiche le menu déroulant, il y a : "Données/Validation de Données/Autoriser : Liste/Source : =Calendrier".
    Donc ton "menu déroulant" a l'air d'être une liste de validation


    Donc rien d'extraordinaire dans ce menu déroulant, mais comme tu voulais le détail...
    Cdt
    Ça c'est sûr que d'appeler une liste un menu n'a rien d'extraordinaire pour la précision.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  10. #30
    Membre habitué
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 593
    Points : 153
    Points
    153
    Par défaut
    Bonsoir,

    InputBox, oui bien sûr ; je l'utilise quand il faut mais (AMHA) ça va encore plus vite de cliquer sur une date (surtout si le menu de la liste de validation s'ouvre "automatiquement") que de la saisir.
    Et comme je le précisais plus haut, seules certaines dates sont possibles et c'est justement celles qui sont accessibles dans la liste de validation.

    J'ai un doute. Quand j'écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With Range("k2")
                .MergeArea.ClearContents
                .Select
                SendKeys "%{Down}"
    End With
    ... est-ce qu'on peut ne pas imaginer que je parle d'une liste déroulante ?

    Cdt

  11. #31
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    NON

    K2 c'est une cellule. Et comme, sauf horreur de ma part, la limite de caractères dans une cellule c'est 256 et peut-être même 32767, il est possible qu'une cellule contienne plusieurs lignes. Le filtre place également des listes dans des cellules. Certaines opérations de tri également. Et c'est sans compter toutes les boîtes de dialogue intégrées qui sont utilisables en VBA.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  12. #32
    Membre habitué
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 593
    Points : 153
    Points
    153
    Par défaut
    Bien, je note donc qu'un SendKeys "%{Down}" fait bien plus que je ne le pensais mais comme de toute façon il n'a manifestement pas la faveur des contributeurs, je pense que je m'en tiendrai à le limiter à l'ouverture d'une liste déroulante (oups "déroutante" jusqu'à ce que kiki29 via docmarti m'apportent une solution que je n'aurais jamais pu trouver par moi-même).
    Cdt

  13. #33
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    M'est avis que tu devrais jeter un œil par là et oublier ton SendKeys, (et peut-être aussi d'entrer dans la liste).

    Parce qu'Excel a un objet Validation

    (Mais je n'ai rien sous la main qui ait besoin de validation)
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  14. #34
    Membre habitué
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 593
    Points : 153
    Points
    153
    Par défaut
    Bonjour,

    Merci. J'ai jeté un oeil. C'est trop compliqué pour moi. J'y reviendrai peut-être dans quelques mois ou quelques années. Mais merci pour cette piste.

    Cdt

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Désactiver le verrouillage ordinateur
    Par Mut dans le forum Windows XP
    Réponses: 11
    Dernier message: 01/02/2018, 21h12
  2. Réponses: 0
    Dernier message: 28/09/2008, 18h23
  3. Réponses: 2
    Dernier message: 08/03/2007, 14h32
  4. Détecter le verrouillage numérique ?
    Par harold63 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 18/09/2006, 14h54
  5. désactiver le pavé numérique
    Par soad dans le forum C++
    Réponses: 7
    Dernier message: 08/02/2005, 09h32

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