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 :

Checkbox dans Vba [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Femme Profil pro
    Apprentie
    Inscrit en
    Juillet 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Apprentie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 26
    Par défaut Checkbox dans Vba
    Bonjour à tous,

    Je travaille sur un projet où l'on me demande de réorganiser le fichier excel de façon à ce que se soit plus rapide et facile d'utilisation.
    J'ai un problème avec les Checkbox ...
    Je souhaiterai que lorsque l'on click sur une checkbox dans un onglet, une checkbox dans l'onglet principal s'active.
    Voici la macro que j'ai fait, mais cela ne fonctionne pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub PA1_Click()
     
    If PA1.Value = True Then P1.Value = True
     
    End Sub
    PA1 est la Checkbox d'un onglet qqc et P1 est la Checkbox de l'onglet principal.

    Quelqu'un saurait-il m'aiguiller afin que je puisse avancer s'il vous plaît?

    Cordialement,

    Marion

  2. #2
    Membre émérite
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Par défaut
    Bonjour à tous
    Bonjour iio0n et bienvenu

    Tu devrais mettre le nom de la feuille devant (Sheets("Feuil2").CheckBox1.Value), VBA sait ce que tu veux faire et en plus cela devrait fonctionner

    Eric

  3. #3
    Membre averti
    Femme Profil pro
    Apprentie
    Inscrit en
    Juillet 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Apprentie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 26
    Par défaut
    Merci beaucoup!! C'était tout bête en fait!
    Bonne journée à vous!!!

    Marion

  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 055
    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 055
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Bien que ma réponse vienne en écho à celle d'edelweisseric, je la publie tout de même parce-qu'elle a été bloquée par la panne du serveur de dvp.


    Je suppose que ton checkbox est un contrôle ActiveX or ceux-ci sont liés à la feuille de calcul où il se trouve.
    Imaginons un contrôle ActiveX CheckBox nommé chkPA3 se trouvant sur la feuille nommée [Feuil3] et un autre contrôle de nommé chkP3 se trouvant sur la feuille nommée [Principal]

    Exemple d'un contrôle CheckBox nommé chkPA3 qui se trouve sur la feuille nommée [Feuil3].
    Dans la procédure événementielle Click de l'objet ckkPA3 du module [Feuil3] le code sera
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub chkPA3_Click()
     ThisWorkbook.Worksheets("Principal").chkP3.Value = chkPA3.Value
    End Sub
    On peut constater que pour le contrôle chkP3 il a fallu préciser ces objets parents (ThisWorkbook.Worksheets("Principal")) alors que pour chkPA3 les objets parents sont implicitement ThisWorkBook et Feuil3

    [EDIT]
    Si tu souhaites que les deux CheckBox soient synchronisés, j'utiliserais plutôt la propriété LinkedCell et ce sans aucun code VBA.
    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 émérite
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Par défaut
    Bonsoir à tous
    Bonsoir Philippe, Marion et bienvenue

    Merci Philippe, j'ai encore appris quelque chose

    Eric

  6. #6
    Membre averti
    Femme Profil pro
    Apprentie
    Inscrit en
    Juillet 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Apprentie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 26
    Par défaut
    Voici ce que j'ai utilisé pour que le programme fonctionne !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub PA1_Click()
    If PA1.Value = True Then
    Sheets("Contrat d'agence 2014").P1.Value = True
    Else
    Sheets("Contrat d'agence 2014").P1.Value = False
    End If
    End Sub
    Ce code fonctionne parfaitement du coup

    J'aurai une petite question: Qu'est ce que "LinkedCell"? Excusez-moi, je suis encore novice sur excel ... enfin, plus performante qu'avant, mais c'est pas encore ça!^^

    Merci pour votre "bienvenue", c'est très sympa!

    J'aurai éventuellement une autre question concernant VBA ...
    Depuis quelques jours, je m'arrache les cheveux à trouver une solution pour extraire certains graphes dans un fichier PDF...
    Voici la démarche que l'on m'a demandé de faire :
    Clicker sur des Checkbox afin de sélectionner les onglets où se trouve chaque graphes
    Copier les graphes des onglets cochés
    Et les extraire tous dans un PDF

    Hum, comment dire, compliqué pour moi
    Alors j'ai pensé pour faire plus simple, Faire la même démarche mais pour les copier dans un onglet réservé à cet effet et extraire ensuite via Bouton en pdf

    J'ai essayé des tonnes de code, mais en vain...
    Auriez-vous une petite idée de manip afin de m'aiguiller sur la démarche à suivre svp?

    Cordialement,

    Marion

  7. #7
    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 055
    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 055
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Alors tu traites deux questions dans une même discussion ce qui n'est pas facile à gérer
    Pour ce qui concerne la question sur le pdf, tu dois ouvrir une nouvelle discussion ou te diriger vers cette discussion qui est spécialisée sur ce sujet Excel / Word / PDF avec Adobe Acrobat Pro et PDFCreator
    J'aurai une petite question: Qu'est ce que "LinkedCell"? Excusez-moi, je suis encore novice sur excel ... enfin, plus performante qu'avant, mais c'est pas encore ça!
    En ce qui concerne cette propriété.
    Sans VBA, il suffit de donner à deux CheckBox (Contole ActiveX) comme valeur à la propriété LinkedCell une adresse commune d'une cellule du classeur pour que le contrôle ActiveX écrive ou lise la valeur du contrôle. Ce qui permet de synchroniser les deux contrôles.
    Pour changer les propriétés d'un contrôle ActiveX, il suffit lorsqu'il est sélectionné de faire un clic droit et sélectionner Propriété dans le menu contextuel.
    Prenons un nouveau classeur Excel avec trois feuilles nommées Feuil1, Feuil2 et Feuil3
    Nous dessinons sur la feuille nommée [Feuil1] un contrôle ActiveX CheckBox que nous nommons chkQ1Feuil1 et nous dessinons sur la feuille nommée [Feuil2] un autre contrôle CheckBox que nous nommons chkFeuil2 et dans les deux contrôles nous tapons dans la propriété LinkedCel, l'adresse suivante : Feuil3!A1
    A partir de maintenant, les deux contrôles sont liés. Si l'on coche ou si l'on décoche l'un deux, l'autre prendra le même état. De même en cellule A1 de la feuille nommée [Feuil3] on verra soit VRAI, soit FAUX. Et en modifiant cette valeur on changera l'état des deux CheckBox.
    Tout cela sans aucune ligne VBA.
    Cela fonctionne également avec les contrôles formulaires. Là c'est clic droit Format de contrôle... et taper l'adresse de la cellule dans le champ Cellule liée
    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

  8. #8
    Membre averti
    Femme Profil pro
    Apprentie
    Inscrit en
    Juillet 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Apprentie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 26
    Par défaut
    Merci beaucoup pour ce petit cours très pratique qui évite les macro!!
    C'est très instructif!

    Pas de soucis pour ma deuxième question! C'est vrai que ce n'est pas évident à gérer ^^

    En tout cas, je vous remercie tous, c'est vraiment gentil de votre part, vous m'avez été d'une grande aide!

    Cordialement,

    Marion

  9. #9
    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 055
    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 055
    Billets dans le blog
    53
    Par défaut
    Bonjour Marion,
    Merci pour ton retour.
    Si le sujet t'intéresse à lire sur le même sujet (cellule liée) cette contribution A l'aide de 2 listes déroulantes et sans VBA - Comment rechercher une information dans une base de données
    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

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

Discussions similaires

  1. [XL-2010] VBA - Récupérer position (ligne/colonne) d'une checkbox dans une feuille
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/03/2012, 16h52
  2. Réponses: 5
    Dernier message: 30/03/2007, 21h54
  3. [VBA-E] checkbox dans une boucle
    Par richou dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 10/05/2006, 15h59
  4. Réponses: 3
    Dernier message: 22/10/2004, 13h04
  5. [VB.NET] Insérer une colonne de CheckBox dans un DataGrid
    Par Manue.35 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 22/05/2003, 12h44

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