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

VBA Word Discussion :

Croix si double-clic


Sujet :

VBA Word

  1. #1
    Candidat au Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2020
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Croix si double-clic
    Bonjour,

    J'ai fait un tableau sous word. Je souhaite, sans passer par les cases formulaire, qu'une croix ("x" majuscule) s'écrive au double-clic, et s'efface en cas de nouveau double-clic. Est-ce possible ?

    En cherchant, j'ai trouvé une macro qui fonctionne sous Excel, mais pas sous word :

    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 Not Intersect(Range("C7:F111"), Target) Is Nothing Then
            If UCase(Target) = "X" Then Target = "" Else Target = "X"
            Cancel = True
          End If
        End Sub
    D'avance merci pour vos lumières,
    Bien cordialement,
    GD

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par delboe Voir le message
    Bonjour,

    Il vous faut passer par un module de classe pour disposer de l'événement DoubleClic.

    Soit un module de classe baptisé MajTableau :
    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
     
    Option Explicit
     
    Public WithEvents oApp As Application
    Public WithEvents MyDoc As Document
     
     
     
    Private Sub oApp_WindowBeforeDoubleClick(ByVal Sel As Selection, Cancel As Boolean)
     
        If DocEnCours = MyDoc Then
     
                With oApp
                     Call MettreUneCroix
                End With
                Cancel = False
        End If
     
    End Sub
    Dans un module standard :
    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
     
    Option Explicit
     
    Public DocEnCours As Document
     
     
    Sub MettreUneCroix()
     
        With Selection
             .Expand unit:=wdLine
             If InStr(1, Selection.Range, "X", vbTextCompare) > 0 Then
                .Range.Text = ""
             Else
                .Range.Text = "X"
             End If
        End With
     
    End Sub
    Dans le module ThisDocument :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Option Explicit
     
    Dim oAppClass As New MajTableau
     
     
    Private Sub Document_Open()
     
        Set oAppClass.oApp = Application
        Set oAppClass.MyDoc = ThisDocument
     
        Set DocEnCours = ThisDocument
     
    End Sub

  3. #3
    Candidat au Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2020
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Merci pour cette réponse rapide
    Bonjour,

    Merci pour ces trois options. Néanmoins, j'ai essayé d'intégrer le code dans visual basics, mais je ne dois pas m'y prendre correctement. Pourriez-vous m'aiguiller ? Je ne suis pas expérimenté en la matière.

    Merci.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par delboe Voir le message
    Ce ne sont pas des options. Voir le fichier joint.

  5. #5
    Candidat au Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2020
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Formidable !
    Merci beaucoup ! Cela fonctionne parfaitement. Comment puis-je l'exporter dans un document spécifique, ou dans l'ensemble de mes documents ?

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par delboe Voir le message
    Il faut reproduire le module de classe et le module standard dans vos tous vos documents et mettre à jour vos modules ThisDocument.
    Si le VBA est inconnu pour vous, il vous faut étudier les tutos VBA Word : https://word.developpez.com/cours/

  7. #7
    Invité
    Invité(e)
    Par défaut Précision sur l'emplacement du module de classe.
    Citation Envoyé par delboe Voir le message
    Si ce double-clic ne doit fonctionner que sur votre poste de travail, il suffirait de placer tout ce code dans le fichier Normal.dotm présent dans votre répertoire des modèles, normalement à cet emplacement : C:\Users\Votre_User\AppData\Roaming\Microsoft\Templates.

    Cependant :
    • Il est peut être inapproprié de généraliser un évènement qui relève seulement du contexte de votre document.
    • Si vos fichiers sont exportés sur d'autres postes, cet événement n'existera pas.

  8. #8
    Candidat au Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2020
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Merci à vous
    Merci, je comprends bien. Néanmoins, si je souhaite intégrer à ce fichier, et le proposer à des collègues, il faut que je comprenne quelles sont les démarches à faire dans le VBA pour y arriver. Je vais essayé et reviendrai ici pour expliquer ce que j'ai fait, si d'aventure cela peut servir à d'autres que moi.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par delboe Voir le message
    Le plus simple est d'exporter vos codes (hormis ThisDocument). Il vous suffira ensuite de les réimporter dans les autres fichiers.

    Si ce nombre de fichiers est important, il faudrait étudier l'ajout de ces modules par macro. Voir pour cela, le tuto de silkyroad : https://silkyroad.developpez.com/VBA/VisualBasicEditor/

  10. #10
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 35
    Points : 28
    Points
    28
    Par défaut Fichier Joint Absent
    Citation Envoyé par Invité Voir le message
    Ce ne sont pas des options. Voir le fichier joint.
    Bonjour, comment avoir accès au fichier joint ?
    Cordialement

  11. #11
    Membre confirmé
    Homme Profil pro
    Auto entrepreneur
    Inscrit en
    Décembre 2021
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Auto entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2021
    Messages : 346
    Points : 546
    Points
    546
    Par défaut
    Citation Envoyé par Trarc Voir le message
    Bonjour, comment avoir accès au fichier joint ?
    Bonjour,

    Double clic.zip

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

Discussions similaires

  1. Coordonnées d'un double clic dans un tableau croisé dynamique
    Par tantrika dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/05/2012, 16h24
  2. [XL-2007] Détection d'un double-clic dans un tableau croisé dynamique
    Par damsmut dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/03/2012, 13h47
  3. ListBox, Cases à cocher et Double-Clic
    Par Loïc dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 10/02/2005, 10h18
  4. Ouvrir un fichier sur un double-clic dans une TListBox
    Par SegmentationFault dans le forum Composants VCL
    Réponses: 4
    Dernier message: 09/08/2004, 17h22
  5. [débutant] Listview et double-clic
    Par Runlevel dans le forum C++Builder
    Réponses: 12
    Dernier message: 29/06/2004, 19h44

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