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 :

Double click dans cellules d'une colonne [XL-365]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2005
    Messages : 218
    Par défaut Double click dans cellules d'une colonne
    Bonjour à tous
    J'ai besoin de faire l'équivalent d'un double-clic sur les cellules d'une colonne.
    J'ai bien trouvé des informations sur Application.DoubleClick mais rien ne se passe.
    Est-il possible de réaliser cela sur une colonne avec des milliers de cellules ?
    Merci par avance pour votre aide

  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 173
    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 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    J'ai bien trouvé des informations sur Application.DoubleClick mais rien ne se passe.
    Sans visualiser le code que vous avez utilisé il est difficile de vous aider sauf regarder dans une boule de cristal, lire dans les cartes, etc.

    Avez-vous lu les tutoriels qui traitent de ce sujet ?
    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 confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2005
    Messages : 218
    Par défaut
    Oui, c'est vrai, désolé.
    J'ai fait le test juste sur une cellule dans un premier temps
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Double_Click()
    Worksheets("01_UCCX Analysis-Detailed Call ").Activate
    ActiveSheet.Range("C3").Select
    Application.DoubleClick
    End Sub
    Ce que je souhaiterai, c'est faire ce double-click pour l'ensemble des cellules de la colonne C
    Merci pour votre aide (et encore désolé)

  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 173
    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 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je ne sais pas quelle documentation vous avez trouvé mais ce n'est absolument pas correct.

    Pour intercepter un double clic, un clic droit, un changement de sélection de cellule, etc, il faut utiliser une procédure événementielle qui se trouve soit dans le module de la feuille où doit avoir lieu l'événement, soit dans le module du classeur.

    Je vous conseille avant tout de consulter les tutoriels que je vous ai référencé.

    Petit exemple du contrôle d'un double clic dans une cellule de la colonne 4 de la feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      If Target.Column = 4 Then
         MsgBox "Vous avez cliqué dans la bonne colonne"
         Cancel = True
      End If
    End Sub
    Ne contrôler que le numéro de colonne, n'est pas une bonne idée. Il faut idéalement intercepter une plage précise comme par exemple $D2:$D500 et dans ce cas on utilisera la méthode Intersect

    Exemple de l'interception du double-clic dans la zone des données (DataBodyRange) de la colonne nommée Statut du tableau structuré présent dans la feuille où se trouve le code ci-dessous
    Si c'est la bonne colonne on écrit X sinon on l'efface
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      Dim Response As Byte
      Dim oList As ListObject
      '
      Set oList = Target.ListObject
      If Not oList Is Nothing Then
        If Not Intersect(Target, oList.ListColumns("Statut").DataBodyRange) Is Nothing Then
           Target.Value = IIf(Target.Value = "X", "", "X")
           Cancel = True
        End If
      End If
      Set oList = Nothing
    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

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2005
    Messages : 218
    Par défaut
    Bonjour Philippe
    Merci pour les exemples. Je ne cherche pas à intercepter un double clic, un clic droit, un changement de sélection de cellule. Je cherche à exécuter un double-click sur un ensemble de cellules pour ne pas à le faire manuellement...
    Est-ce possible ?
    Merci

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

    le double-click sur une cellule, nativement, provoque l'entrée en mode édition de cette dernière, il serait pertinent de nous expliquer le but de cette opération ?

    Que cherches-tu à obtenir au final, via ces double-click en cascade sur un lot de cellules ?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2005
    Messages : 218
    Par défaut
    Je recois des valeurs au format 9/7/20 8:50:15 PM qui changent pour 09/07/2020 20:50:15 après un double-click.
    C'est le second format dont j'ai besoin pour exploiter les données.
    Mais pour cela je dois effectuer ce double-click dans chaque cellule

  8. #8
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    Essaies :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub test()
      Worksheets("01_UCCX Analysis-Detailed Call").UsedRange.Replace "/", "/"
    End Sub

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2005
    Messages : 218
    Par défaut
    Bonjour Patrice740
    Merci mais cela ne fonctionne pas
    Erreur:
    Nom : VBA_Error.png
Affichages : 2777
Taille : 5,7 Ko

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    "Simuler le double-clic" sur un ensemble de valeurs revient, pour ce que tu souhaites réaliser, à transférer les valeurs de la plage... à la plage.
    En forçant le format avant, ça pourrait donner ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      MyRange.NumberFormat = "dd/mm/yy hh:mm:ss"
      MyRange.Value = MyRange.Value

    je suis parti de l'idée que tu avais du texte et non des valeurs temporelles formatées avec AM/PM. Cela peut se vérifier via le format de cellule. Si tu as un format personnalisé AM/PM, il suffirait de modifier le format, soit dans Excel soit par macro (voir la première ligne du code que j'ai donné)
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  11. #11
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Citation Envoyé par lafafmentvotre Voir le message
    Bonjour Patrice740
    Merci mais cela ne fonctionne pas
    As-tu placé le code dans un module standard du classeur contenant la feuille concernée ? lafafmentvotre.xlsm

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2005
    Messages : 218
    Par défaut
    Bonjour Patrice740
    Mille mercis
    Je viens de tester avec l'exemple sur d'autres fichiers et cela fonctionne parfaitement.
    Merci pour tout

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

Discussions similaires

  1. [XL-2013] Macro pour insertion commentaire dans cellules d'une colonne
    Par delmicman dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/03/2016, 14h51
  2. Ajouter * dans toutes les cellules d'une colonne
    Par islyoung2 dans le forum Excel
    Réponses: 4
    Dernier message: 04/02/2009, 11h13
  3. Intercepter un double click dans une CListBox
    Par kurtisnotdead dans le forum MFC
    Réponses: 3
    Dernier message: 12/02/2008, 17h44
  4. Désactiver le "double-click" dans une appli
    Par Tchaill39 dans le forum Delphi
    Réponses: 30
    Dernier message: 05/04/2007, 16h51
  5. [vb.net] double click dans une datagrid
    Par bguihal dans le forum VB.NET
    Réponses: 6
    Dernier message: 15/12/2005, 17h18

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