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 clic met un X dans champs nommés [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Retraité 72 ans
    Inscrit en
    Mai 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité 72 ans

    Informations forums :
    Inscription : Mai 2011
    Messages : 244
    Par défaut Double clic met un X dans champs nommés
    Bonjour à tous,
    En J2 et/ou L2 je voudrais que par un double clic dans ces cellules ça mette un X dans les champs nommés
    SelDestMailCc (J2) et/ou SelDestMailCci (L2)
    et que, si un X figure dans le champ nommé SelDestMailCci il soit effacé dans le champ nommé SelDestMailCc
    Si de nouveau, je double clic en J2 et/ou L2 ça efface tous les X des champs nommés.
    Est-ce possible... ?
    En vous remerciant chaleureusement.

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2010
    Messages : 17
    Par défaut
    Bonjour Jean30

    Je suis pas sur d'avoir compris ta demande, voici un proposition :
    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
    20
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("J2, L2")) Is Nothing Then
      If Target.Address = "$J$2" Then
          If Target.Value <> "" Then
              Range("$J$2") = ""
          Else
              Range("$J$2").Value = "X"
              Range("$L$2").Value = ""
          End If
      Else
        If Target.Value <> "" Then
              Range("$L$2") = ""
          Else
              Range("$L$2").Value = "X"
              Range("$J$2").Value = ""
        End If
      End If
    End If
    Cancel = True
    End Sub

  3. #3
    Membre éclairé
    Homme Profil pro
    Retraité 72 ans
    Inscrit en
    Mai 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité 72 ans

    Informations forums :
    Inscription : Mai 2011
    Messages : 244
    Par défaut
    Bonjour Drisc007 et merci de me répondre,
    J'ai testé ton code qui me met bien un X en J2 ou L2 ou le supprime, mais il ne reporte aucun X dans les champs nommés dynamiques
    J'ai mis un fichier si ça peut te permettre une meilleure compréhension.
    En te remerciant.

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2010
    Messages : 17
    Par défaut
    En effet c'est plus facilement compréhensible, voici :
    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
    20
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("J2, L2")) Is Nothing Then
      If Target.Address = "$J$2" Then
          If Target.Value <> "" Then
              Range("SelDestMailCc") = ""
          Else
              Range("SelDestMailCc").Value = "X"
              Range("SelDestMailCci").Value = ""
          End If
      Else
        If Target.Value <> "" Then
              Range("SelDestMailCci") = ""
          Else
              Range("SelDestMailCci").Value = "X"
              Range("SelDestMailCc").Value = ""
        End If
      End If
    End If
    Cancel = True
    End Sub

  5. #5
    Membre éclairé
    Homme Profil pro
    Retraité 72 ans
    Inscrit en
    Mai 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité 72 ans

    Informations forums :
    Inscription : Mai 2011
    Messages : 244
    Par défaut
    Re Drisc007,
    Ton code fonctionne très bien, mais je viens de voir un truc en plus, désolé de ne pas y avoir pensé avant.
    Peut-on ajouter au code une sélection individuelle des adresses selon le même principe ?
    En te remerciant beaucoup.

  6. #6
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2010
    Messages : 17
    Par défaut
    Oui bien sur que c'est possible :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("SelDestMailCc, SelDestMailCci")) Is Nothing Then
        If Not Intersect(Target, Range("J2, L2")) Is Nothing Then
            If Target.Address = "$J$2" Then
                If Target.Value <> "" Then
                    Range("SelDestMailCc") = ""
                Else
                    Range("SelDestMailCc").Value = "X"
                    Range("SelDestMailCci").Value = ""
                End If
            Else
                If Target.Value <> "" Then
                    Range("SelDestMailCci") = ""
                Else
                    Range("SelDestMailCci").Value = "X"
                    Range("SelDestMailCc").Value = ""
                End If
            End If
        Else
            If Target.Column = 10 Then
                If Target.Value <> "" Then
                    Target.Value = ""
                Else
                    Target.Value = "X"
                    Target.Offset(0, 2).Value = ""
                End If
            Else
                If Target.Value <> "" Then
                    Target.Value = ""
                Else
                    Target.Value = "X"
                    Target.Offset(0, -2).Value = ""
                End If
            End If
        End If
    End If
    Cancel = True
    End Sub

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

Discussions similaires

  1. Utiliser le double clic sur une liste dans HTA
    Par papyxy dans le forum VBScript
    Réponses: 3
    Dernier message: 06/07/2014, 09h14
  2. Vérifier si un double clic se fait dans une plage nommée
    Par damsmut dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/12/2008, 16h40
  3. IceFaces : double clic sur une ligne dans une table
    Par sebastiens57 dans le forum JSF
    Réponses: 4
    Dernier message: 13/11/2008, 10h55
  4. Réponses: 8
    Dernier message: 11/05/2006, 11h04

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