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 :

[VBA-E] Checkbox avec confition If sur Excel


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Par défaut [VBA-E] Checkbox avec confition If sur Excel
    Bonjour,

    Je suis un débutant sur le vba.

    J'aimerais mettre 3 cases à cocher sur ma feuille excel (sans passer par un userform si c'est possible).

    J'ai fais une macro avec le code suivant qui marche pas bien sûr.

    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 teste()
    If CheckBox1.Value = False Then (l'erreur est sur cette ligne!!!)
    ' SMIM+SPI
    Range("C16") = "=((C12/100)*D12)+((C13/100)*D13)"
     
    ElseIf CheckBox2.Value = 0 Then
    ' SMI+SPI
    Range("C16") = "=((C11/100)*D11)+((C13/100)*D13)"
     
    Else
    ' SMI+SMIM
    Range("C16") = "=((C11/100)*D11)+((C12/100)*D12)"
     
    End If
    End Sub
    Je m'arrache les cheveux parce que je comprends pas l'erreur

    Merci beaucoup si vous arriviez à me mettre sur la bonne voie

    A+

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 553
    Par défaut
    Es-tu sûr qu'elle s'appelle CheckBox1, etc .....

    Quel est le message d'erreur ? "Objet requis " je suppose ==> ta checkbox doit s'appeler autrement

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Par défaut
    Salut et merci pour ta réponse.

    Tu as raison.

    L'erreur est "Erreur d'exécution '424': Objet requis"

    Justemment j'arrive pas à trouver comment renommer mes checkbox. Je trouve pas.

    c'est tout bête je sais mais moi je sais pas comment renommer ces checkbox sur excel.

    Pour info, mes checkbox n'ont pas de texte parce qu'elle sont à coté d'un texte contenu dans une cellule.

    Es-ce que c'est le texte de remplacement qui donne le nom de la checkbox ???

    J'ai de très bonne connaissance ne php et js mais je suis complètement largué sur excel

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 553
    Par défaut
    Un simple clic droit dessus et tu vas trouver propriétés
    Tu changes la propriété name

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Par défaut
    Si je fais un clique droit dessus j'ai :

    "affecter une macro",
    "Format de contrôle",
    "ordre",
    "groupe",
    "modifier le texte", etc.

    mais pas "propriété"....

    Je comprends vraiment pas...

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 553
    Par défaut
    Si tu fais AffecterMacro, il va te proposer un truc du genre
    CaseàCocher3_QuandClick

    Le nom de ta chekbox est CaseàCocher3

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Par défaut
    Merci

    J'avais déjà tenté ce coup là mais j'ai toujours la même erreur... Je comprends vraiment rien.

    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 teste()
    If Caseàcocher10.Value = 0 Then
    ' SMIM+SPI
    Range("C16") = "=((C12/100)*D12)+((C13/100)*D13)"
     
    ElseIf Caseàcocher11.Value = 0 Then
    ' SMI+SPI
    Range("C16") = "=((C11/100)*D11)+((C13/100)*D13)"
     
    Else
    ' SMI+SMIM
    Range("C16") = "=((C11/100)*D11)+((C12/100)*D12)"
     
    End If
    End Sub

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu la prends où ta case à cocher ?

    Le nom apparaît dans la barre de formule à gauche, et là tu peux changer le nom

  9. #9
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Ne faudrait-il pas signifier à VBA qu'il s'agit d'une formule de cellule?

    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("C16").Formula = "=((C11/100)*D11)+((C12/100)*D12)"
    Et puis un CheckBox, ça a des événements... Tu mets ton code dans la partie code de ta feuille ou se trouve les CheckBox.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CheckBox1_Click()
        Call teste
    End Sub
     
    Private Sub CheckBox2_Click()
        Call teste
    End Sub
    En passant, évite les caractères accentués dans ton code. Des fois VB les digère mal.

  10. #10
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    (Salut zaza)
    Comme embuskade peut affecter une macro à son checkbox, et bien qu'il ne m'ait pas répondu, j'en déduis qu'elle est d'origine "Barre d'outils formulaires...
    Auquel cas, voici le code qui lui permet de tout connaître de sa checkbox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub LaMacroQuiDitTout()
        Worksheets("Feuil1").Shapes("Check Box 4").Select
        With Selection
            If .Value = 1 Then 
                MsgBox " Nom = " & .Name & vbLf & "Texte = " & .Text & vbLf & "valeur = " & .Value
               else
                Msgbox "C'est vraiment n'importe quoi cette valeur " & .value
        End With
    End Sub
    Une remarque : Tu dois utiliser le nom par défaut de la check box, celui donné par Excel. C'est l'aide qui a dit
    Pour connaître le vrai nom, maintenant que tu as tout bidouillé, tu fais une autre macro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub LaMacroQuiDiQueLesNoms()
    For Each LaShape In ActiveSheet.Shapes
         MsgBox LaShape.Name
    Next
    End Sub
    Et respecte les espaces dans les noms quand tu les utilises
    A+

  11. #11
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Par défaut
    Excusez moi pour mon retard. Je viens de voir vos réponses.

    Je vais tout de suite essayer de règler mon problème. Je vous tiens au courrant.

  12. #12
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Par défaut
    ouskel'n'or : J'ai essayé ton script (en rajoutant end if )

    Les noms de mes 3 checkbox sont : Check Box 10, Check Box 11, Check Box 12. Mais le problème c'est que c'est des noms avec des espaces... Et que si je mets ces noms dans mon script j'aurais encore une erreur.

    Il faut que je change les noms ? Si oui comment ?

    Merci

  13. #13
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Non, mets les espaces, tu n'auras pas d'erreur. Mieux : Copie leurs noms dans la feuille de calculs et colle-les tels quels dans ton code.

  14. #14
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Par défaut
    Ben ça marche toujours pas... C'est les espaces qu'y posent problèmes

    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
     
    Sub teste()
    If Check Box 10.Value = 0 Then
    ' SMIM+SPI
    Range("C16").Formula = "=((C12/100)*D12)+((C13/100)*D13)"
     
    ElseIf Check Box 11.Value = 0 Then
    ' SMI+SPI
    Range("C16").Formula = "=((C11/100)*D11)+((C13/100)*D13)"
     
    Else
    ' SMI+SMIM
    Range("C16").Formula = "=((C11/100)*D11)+((C12/100)*D12)"
     
    End If
    End Sub

  15. #15
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Par défaut
    oui je voudrais bien mais j'ai pas "propriété" dans le menu contextuel si je fais un clique droit dessus

  16. #16
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Par défaut
    Ah met j'ai pas utilisé le userform justement! J'ai juste utilisé la barre d'outil "formulaire" et j'ai mis un checkbox sur ma feuille excel. J'ai ensuite créé une macro.

    Donc apparamment je suis obligé de passer par le userform alors ?

    Ciboox ton truc de F4 c'est pour le userform ou pour le visual basic editor ?

  17. #17
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Citation Envoyé par embuskade
    Ben ça marche toujours pas... C'est les espaces qu'y posent problèmes

    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
     
    Sub teste()
    If Check Box 10.Value = 0 Then
    ' SMIM+SPI
    Range("C16").Formula = "=((C12/100)*D12)+((C13/100)*D13)"
     
    ElseIf Check Box 11.Value = 0 Then
    ' SMI+SPI
    Range("C16").Formula = "=((C11/100)*D11)+((C13/100)*D13)"
     
    Else
    ' SMI+SMIM
    Range("C16").Formula = "=((C11/100)*D11)+((C12/100)*D12)"
     
    End If
    End Sub
    Tu mériterais que je te laisse avec CIBOOX
    J'ai mis
    Worksheets("Feuil1").Shapes("Check Box 4").Select
    Je ne vois pas ce code, chez toi. Mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Worksheets("NomDeLaFeuil").Shapes("Check Box 10").Value = 0 Then
    Pour les objets situés dans la feuille de calculs, tu dois indiquer la feuille et le fait que l'objet est un(e) shape.
    Regarde ce mot dans l'aide
    A+

Discussions similaires

  1. [[VBA-E]je cherche une macro sur excel qui ouvre un fichier
    Par macromega dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/05/2007, 09h25
  2. [VBA-E]Filtre via une macro sur Excel
    Par jamal.b dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/04/2006, 15h35
  3. [VBA-E]copier un lien hypertexte sur Excel
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/02/2006, 18h22
  4. [VBA]Execution d'une procédure avec un ComboBox sur Excel
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 31/01/2006, 09h27
  5. travail avec 2 feuilles sur Excel
    Par trefles dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/01/2006, 17h05

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