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

Excel Discussion :

Vérification d'appareil avec des checkbox


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2015
    Messages : 44
    Points : 12
    Points
    12
    Par défaut Vérification d'appareil avec des checkbox
    Bonjour,

    Je voudrais faire une sorte de rapport d'intervention avec des chexbox :
    6 checkbox conforme (que j'ai nomé c_1, c_2, etc etc)et 6 checkbox non conforme (que j'ai nommé nc_1, nc_2, etc etc)

    J'ai créé une que j'ai affecté a toutes les checkbox NC :

    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
    Sub nc()
     
        Dim x As Integer
     
     For x = 1 To 6
     If ActiveSheet.Shapes("nc_" & x).ControlFormat.Value = xlOn Then
     ActiveSheet.Range("N36").Value = "Centrifugeuse NON CONFORME"
     ActiveSheet.Shapes("c_" & x).ControlFormat.Value = xlOff
     ActiveSheet.Range("N36").Select
     Else
     ActiveSheet.Range("N36").Value = "Centrifugeuse CONFORME"
     ActiveSheet.Range("N36").Select
     End If
     Next x
    End Sub
    Mon but serait que dès qu'une checkbox nc est coché il passe la case N36 en non conforme

    Mais là il attends que les checkbox nc_1 à nc_6 soient cochées pour mettre N36 en NON CONFORME :-/

    Comment faire pour qu'il les teste TOUTES mais qu'il fasse le changement dès qu'une case soit cochée ??

    Merci d'avance pour vos conseils !!!

    Bonne journée !!!

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Peut-être que ceci pourrait te donner une piste (Application.Caller)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        Dim Nom As String
     
        Nom = Application.Caller  'nom du checkbox utilisé
        If InStr(1, Nom, "nc") > 0 Then
            If ActiveSheet.Shapes(Nom).ControlFormat.Value = xlOn Then
                Range("N36") = "Centrifugeuse NON CONFORME"
            Else
                Range("N36") = "Centrifugeuse CONFORME"
            End If
        End If
    MPi²

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2015
    Messages : 44
    Points : 12
    Points
    12
    Par défaut
    Waouh ca a l'air de marcher mais je comprends pas du tout les lignes de code que tu as utilisé lol

    Tu peux m'expliquer car je débute dans le VBA ?

    Autre chose : comme expliqué j'ai des checkbox nc_1 a nc_6 et des checkbox c_1 à c_6

    Je voudrais qu'avec cette macro lorsque je coche une checkbox NC (par exemple nc_2), il me décoche automatiquement la checkbox C correspondante (par exemple dans ce cas c_2).

    tout ca en utilisant une seule et même macro je ne voudrais pas faire 6 macro pour chaque duo NC et C.

    Merci d'avance !!! ;-)

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Pour continuer avec ta méthode de checkbox.
    J'ai ajouté quelques commentaires. C'est assez simple à comprendre, je pense... (?)

    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
    Sub nc()
        Dim Nom As String, NomC As String, NomNC As String
     
        Nom = Application.Caller  'nom du checkbox qui a été cliqué
     
        'si le nom du contrôle commence par "nc"
        If Left(LCase(Nom), 2) = "nc" Then      'LCase = minuscule (Lower Case)
            NomNC = Nom                         'affecte le nom du contrôle à la variable NomNC
            NomC = Right(NomNC, Len(NomNC) - 1) 'Nom du contrôle correspondant
            If ActiveSheet.Shapes(NomNC).ControlFormat.Value = xlOn Then
                Range("N36") = "Centrifugeuse NON CONFORME"
                ActiveSheet.Shapes(NomC).ControlFormat.Value = xlOff    'décoche le contrôle correspondant
            Else
                Range("N36") = "Centrifugeuse CONFORME"
                ActiveSheet.Shapes(NomNC).ControlFormat.Value = xlOff
            End If
     
        'si le nom du contrôle commence par "c"
        ElseIf Left(LCase(Nom), 1) = "c" Then
            NomC = Nom
            NomNC = "n" & Nom
            If ActiveSheet.Shapes(NomC).ControlFormat.Value = xlOn Then
                Range("N36") = "Centrifugeuse CONFORME"
                ActiveSheet.Shapes(NomNC).ControlFormat.Value = xlOff
            Else
                Range("N36") = "Centrifugeuse NON CONFORME"
                ActiveSheet.Shapes(NomC).ControlFormat.Value = xlOff
            End If
        End If
     
    End Sub
    Par contre, l'utilisation de bouton d'option (ActiveX) serait plus approprié dans ton cas, je pense.
    Je ne connais pas vraiment les contrôles formulaires. J'ai l'habitude de travailler avec les contrôles ActiveX dont on peut modifier le propriétés comme les groupement.
    Tu pourrais mettre les contrôles c_1 et nc_1 dans le groupe 1, disons, les c_2 et nc_2 dans le groupe 2,...
    Lorsque tu sélectionnes un des boutons, l'autre change automatiquement, ce qui évite le genre de code que j'ai mis.
    MPi²

  5. #5
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2015
    Messages : 44
    Points : 12
    Points
    12
    Par défaut
    Oui j'avais déjà remarqué que les bouton activeX permettaient de faire cette option de groupe.

    En tout cas il m'a fallu un peu de temps pour comprendre toutes tes instructions mais une fois que j'ai compris ca ma grandement aidé à mon auto-formation !!! ;-)

    C'est mon but de l'été apprendre à jouer avec le VBA car je pense que ca peut m'être TRES utile dans mon travail et que les possibilités avec le VBA semblent très large !!! Dans un CV cette compétence pourra m'être utile !!! :-)

    Merci beauoup pour ton aide en tout cas !!!

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

Discussions similaires

  1. [MySQL] Probleme d'affichage avec des checkbox
    Par napz dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 08/11/2006, 14h43
  2. FileListBox avec des checkbox..
    Par tazthedev dans le forum Delphi
    Réponses: 1
    Dernier message: 09/10/2006, 16h34
  3. Réponses: 1
    Dernier message: 26/06/2006, 11h33
  4. [Tableaux] Problème de foreach avec des checkboxes
    Par nanor21 dans le forum Langage
    Réponses: 10
    Dernier message: 15/05/2006, 01h04
  5. Problème simple avec des checkbox
    Par nanor21 dans le forum Langage
    Réponses: 2
    Dernier message: 07/05/2006, 00h26

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