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 :

case à cocher [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 249
    Par défaut case à cocher
    Bonjour,

    J'ai toute une colonne de case à cocher et j'aimerais savoir quel code il faut utiliser pour que si je coche une case bien précise je me retrouve sur une cellule bien particulière.

    Exemple, si je coche une case à cocher je me retrouve en P5

    Vous allez peut-etre trouver ça ridicule, car je commence le VBA mais, j'ai essayé ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CheckBox1_Click()
    If Target.CheckBox1 = True Then Range (P4)
    End Sub
    ça ne marche pas. Pouvez-vous m'aider ?

    Et j'aurais une autre question :

    quand on redimensionne les lignes, les cases à cocher ne suivent pas et ne se retrouvent plus sur la ligne ou on les a mise. N'y a t-il pas une solution pour qu'une case à cocher appartienne à une cellule en particulier ?

    Merci encore

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 249
    Par défaut
    J'ai réussis à trouver une solution pour la moitié de mon problème, je vous le donne. Un jour un membre du forum m'avait aidé sur un autre problème, je m'en suis servi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
     
        If Not Intersect(Target, Range("O2:O10")) Is Nothing Then
            'Chr$(&HFE) -> case cochée
            'Chr$(&HA8) -> case vide
            'Chr$(&HFD) -> case annulée
            If Target.Value = Chr$(&HFE) Then
                Target.Value = Chr$(&HA8)
            Else
                Target.Value = Chr$(&HFE)
            End If
            Cancel = True
        End If
    End Sub
    avec les wingdingd on arrive donc à faire des cases à cocher qui dépende d'une cellule mais je ne sais pas comment répondre à ma prmière question :
    si je coche ma cellule O4 par exemple, je voudrais que le curseur aille en P4

    Merci

  3. #3
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    bonjour,

    tu peux faire comme ceci :
    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
     
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
     
        If Not Intersect(Target, Range("O2:O10")) Is Nothing Then
            'Chr$(&HFE) -> case cochée
            'Chr$(&HA8) -> case vide
            'Chr$(&HFD) -> case annulée
            If Target.Value = Chr$(&HFE) Then
                Target.Value = Chr$(&HA8)
                Target.Offset(0, 1).Select
            Else
                Target.Value = Chr$(&HFE)
            End If
            Cancel = True
        End If
    End Sub

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 249
    Par défaut
    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
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
     
        If Not Intersect(Target, Range("O2:O10")) Is Nothing Then
            'Chr$(&HFE) -> case cochée
            'Chr$(&H72) -> case vide
            'Chr$(&H72) -> case annulée
            If Target.Value = Chr$(&HFE) Then
             Target.Value = Chr$(&H72)
                Target.Offset(0, 1).Select
            Else
                Target.Value = Chr$(&HFE)
            End If
            Cancel = True
        End If
    End Sub
    je te renvoie mon code complet car ça ne marche pas, j'ai juste remplacé A8 par H72 pour que les cases décoché est le même aspect que les cases non coché, ce qui change un peu. Est-ce que ça agit sur ton code ?

  5. #5
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    pas vraiment

    mais j'avais inversé l'ordre surtout
    il suffit de lui dire de passer la selection une case à gauche de la case à cocher

    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
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
     
        If Not Intersect(Target, Range("O2:O10")) Is Nothing Then
            'Chr$(&HFE) -> case cochée
            'Chr$(&H72) -> case vide
            'Chr$(&H72) -> case annulée
            If Target.Value = Chr$(&HFE) Then
             Target.Value = Chr$(&H72)
            Else
                Target.Value = Chr$(&HFE)
                Target.Offset(0, 1).Select
            End If
            Cancel = True
        End If
    End Sub

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 249
    Par défaut
    merci beaucoup, ça marche.

    Par contre j'aurais deux questions : J'ai mis mon code de O2 à O10 pour faire le test mais comment fait on pour dire de O2 à O......... c'est à dire à l'infini pour que je puisse continuer à saisir. Est-ce que tu me suis ?

    Ensuite, comment on aurait fait si la colonne de destination n'avait pas été juste à côté, à droite mais plus loin, on peut mettre un nombre de case à droite ou bien un n° de colonne ? En fait j'essaie de comprendre ta ligne de code : c'est quoi (0,1)

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

Discussions similaires

  1. [MIGRATION] champ de type "case à cocher"
    Par The_Nail dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 10/05/2011, 11h07
  2. Case à cocher dans une requête
    Par kloss dans le forum Access
    Réponses: 6
    Dernier message: 14/10/2004, 11h44
  3. Récupérer toutes les cases à cocher
    Par psyco2604 dans le forum ASP
    Réponses: 7
    Dernier message: 14/10/2004, 10h54
  4. Activer cases à cocher
    Par schnito dans le forum MFC
    Réponses: 4
    Dernier message: 24/01/2004, 16h07
  5. [CR] Création de tableau et case à cocher
    Par aysse dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 26/11/2003, 17h07

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