Débutante en vba excel Help!!!

Résolu
Bonjour,
je débute avec excel vba et je cherche quelque chose que pour vous dois être facile mais bon moi je cherche déjà depuis un moment et je ny arrive pas aidez moi svppp

Private Sub CommandButton1_Click()
If OptionButton1.Value = True Then
Sheets("soumission").Select
Range("h8").Value = "197"
Range("B10").Value = "6"
Range("d10").Value = "12"
Range("G37").Value = je veux que la feuil1 cellule g37 = feuil2 cellule s249

merci de votre aide

nina
Configuration: Windows XP Internet Explorer 7.0

23 réponses

  1. voila ce qui fonctionne très bien

    Private Sub CommandButton1_Click()
    Range("A1,A2") = ""
    If CheckBox1 Then Range("A1") = Range("E1") Else Range("A1") = ""
    If CheckBox1 = False And CheckBox2 = True Then Range("A1") = Range("E2")
    If CheckBox1 = True And CheckBox2 = True Then Range("A1") = Range("E1"): Range("A2") = Range("E2")
    If CheckBox1 = False And CheckBox2 = False And CheckBox3 = True Then Range("A1") = Range("E3"): Range("A2") = ""
    If CheckBox1 = False And CheckBox2 = True And CheckBox3 = True Then Range("A1") = Range("E1"): Range("A2") = Range("E3")
    End Sub

    Merci beaucoup pour ta patience

    Titepestounette
    1. Toujours pas, a chaque fois que je met des else if = erreur de syntaxe
      1. dans ce cas c'est long et plus chiant mis le faire comme ca :

        Private Sub CommandButton1_Click()

        Dim str As Variant

        IF CheckBox1 = True THEN
        str = Range("A1").Value
        CheckBox1 = str
        ELSEIF
        IF CheckBox1 = False THEN
        IF CheckBox2 = True THEN
        str = Range("A1").Value
        CheckBox2 = str
        ELSEIF
        IF CheckBox1 = True THEN
        IF CheckBox2 = True THEN
        str = Range("A1").Value
        CheckBox1 = str
        str = Range("A2").Value
        CheckBox2 = str
        END IF
        END IF
        END IF
        END IF
        END IF
        End Sub

        Essaie avec ca
        1. Oui j'ai essayé et j'ai erreur de syntaxe ...........

          j'ai essayé sous différente facon j'ai touné et retourné ce code et ..............

          faut peut être regarder avec autre chose

          Titepestounette
          1. Ca ne te met pas d'erreur au niveau des else ? normalement c'est elseif.
            Moi je l'écrirais de cette facon :

            Private Sub CommandButton1_Click()

            Dim str As Variant

            IF CheckBox1 = True THEN
            str = Range("A1").Value
            CheckBox1 = str
            ELSEIF
            IF CheckBox1 = False And CheckBox2 = True THEN
            str = Range("A1").Value
            CheckBox2 = str
            ELSEIF
            IF (CheckBox1 = True And CheckBox2 = True) THEN
            str = Range("A1").Value
            CheckBox1 = str
            str = Range("A2").Value
            CheckBox2 = str
            END IF
            END IF
            END IF
            End Sub

            Essaie comme ca
            1. oui c'est ce que j'ai fait mais le code ne fonctionne pas

              Private Sub CommandButton1_Click()
              Dim str As Variant
              If CheckBox1 = True Then
              str = Range("A1").Value
              CheckBox1 = str
              Else
              If CheckBox1 = False And CheckBox2 = True Then
              str = Range("A1").Value
              CheckBox2 = str
              Else
              If (CheckBox1 = True And CheckBox2 = True) Then
              str = Range("A1").Value
              CheckBox1 = str
              str = Range("A2").Value
              CheckBox2 = str
              End If
              End If
              End If
              End Sub

              merci
              1. Faire la relation ET n'est pas tres dur :)

                If chechbox1 = true AND chexbox2 = true then

                :)

                A+
                goom
                1. oui c'est le principe mais

                  Private Sub CommandButton1_Click()
                  Dim str As Variant
                  If CheckBox1 = True Then
                  str = CheckBox1.Caption
                  Worksheets(1).Activate
                  Worksheets(1).Range("A1").Value = str
                  End If
                  If CheckBox1 = False Then
                  str = CheckBox2.Caption
                  Worksheets(1).Activate
                  Worksheets(1).Range("A1").Value = str
                  End If
                  End Sub

                  si checkbox1 et checkbox 2 = vrai checbox1 caption = a1 et checkbox2 caption = b1

                  c'est la que je bloque, comment dire en code si checkbox1 = vrai ET checkbox 2 = vrai

                  bon jattendrai demain si je trouve pas je vais continuer

                  Merci

                  Travaille pas trop fort

                  Nina
                  1. Pour l'instant je ne peux te donner qu'une piste, le boulot que je fais en ce moment me prend du temps et je ne peux pas te répondre clairement avant demain ( bénévole attitude :) ). Mais en gros si je résume le principe :

                    If checkbox1.Value = False
                    then
                    str = checkbox2.Caption
                    worksheets(1).activate
                    worksheets(1).range("A1").Value = str
                    else if
                    str = checkbox1.Caption
                    worksheets(1).activate
                    worksheets(1).range("A1").Value = str
                    End if

                    Normalement tu devrais comprendre ou je veux en venir.

                    Mais je vais quand meme détaillé on sais jamais :).
                    SI la checkbox1 = faux
                    ALORS
                    str = checkbox 2 .caption ( je suppose que c'est la facon de lui donner la valeur de la check box )
                    ' et oui la numero deux puisque apparement c'est ce que tu voulais pour le gain de place :)
                    apres on donne a la cellule A1 la valeur de la variable str égal à checkbox2
                    SINON
                    str = checkbox 1 .caption
                    apres on donne a la cellule A1 la valeur de la variable str égal à checkbox1 :)
                    FIN SI

                    SI tu as compris le raisonnement pour ce que je viens de te montrer ce qui est je pense ce que tu cherchais ( a moins que j'ai rien pigé avec mon cerveau de poulpe enfariné ^^ ) tu peux le faire pour N checkbox en creussant un peu plus bien sur mais en gardant comme base ( cela ne veut pas dire que cela ne sera pas modifié mais l'idée globale est là ). Si d'ici demain midi, après-midi tu n'as toujours pas trouver la solution dis le moi, et je te ponderai le code ( si j'en ai le temps sinon ce sera après demain :p ).

                    Voili Voiloo

                    A+
                    GooM
                    1. Wow c'etait simple je cherchais beaucoup trop loin.....

                      Ok je demands ton aide encore une fois et jespère que j'abuse pas trop lollll

                      Je vais essayer d'expliquer en étant clair ( Essayer ) loll

                      Dans un userform jai des checkbox, si je sélectionne le checkbox je veux que A1 = le texte du checkbox
                      Pour l'instant ca vas bien, ensuite si le checkbox2 et Seulement ce checkbox est sélectionné je veux la même chose en A1
                      Voila ou est mon problème
                      si les 2 sont sélectionné je veux que le premier soit en A1 et le 2ieme checkbox en b1, je sais tu vas me dire, mais pourquoi ne pas attribuer directement le checkbox2 en B1, le problème est que j'ai 20 checkbox comme ca et que j'ai seulement 10 cellules de disponible dans ma mise en page ( à savoir que seulement 10 checkbox peuvent être choisis en même temps.

                      ca c'est mon bout de code pour débuter mais je n'arrive pas à formuler si checkbox1 = vrai en A1 si checkbox2 vrai en A1 si checkbox1 et checkbox2 vrai checkbox1 en A1 et checkbox2 en B1 et la je continue comme ca avec les 20 checkbox .......

                      Dim str As Variant

                      If checkbox1.Value = True Then
                      str = checkbox1.Caption
                      Worksheets(1).Activate
                      Worksheets(1).Range("A1").Value = str
                      End If

                      Jespère que tu vas comprendre mdr.....

                      merci

                      Nina
                      1. Je pense avoir trouver une solution, je suppose que tu veux que la date se fasse automatiquement.

                        Pour ca il faut mettre

                        =aujourdhui() dans la cellule voulu ici en H3.

                        Pour incrémenter la date de 30 jours j'ai regarder et cela est très simple.
                        2 solutions : soit tu utilises comme référence la fonction indiquer plus haut soit ta cellule ce qui revient au même.

                        Donc en cellule H31 ( je crois que c'est cette cellule où tu veux afficher la date actuelle plus 30 jours )

                        Dans ce cas tu rempli la case H31 de cette façon :
                        =H3 + 30

                        OU

                        =aujourdhui() + 30

                        Voili voiloo

                        GooM
                        1. oui j'ai testé et tout fonctionne très bien même que je suis pas mal plus loin maintenant, par contre la je cherche a faire un code qui inscrit la date de la journée en cellule h3 et en bas de la page en H31 la date de la journée + 30 jours...........

                          je vais continuer de chercher mais si jamais tu aurais une idée.........

                          je prend lolll

                          merci pour ton aide précieuse.... et bonne journée

                          Nina
                          1. De ce que je vois normalement oui c'est ca.

                            Tu vois c'est pas dur de faire des petits programmes :). Même 10 lignes de codes restent de la programmation ... moi j'ai bien commencer sur mon fichier avec un truc d'une vingtaine de lignes en y connaissant rien et apprenant sur le net et en 10jours je me retrouve avec plus de 1700 lignes de codes pour le moment et c'est pas fini lol. On est tous passer par la ( ne pas s'en croire capable ou pas dans ce langage ) hihi.

                            ps : tu as testé ton exemple ?

                            GooM
                            1. ok pour bien comprendre voici une autre mise en situation exemple :

                              si checkbox 1 est coché je veux en feuilvba en B3 = feuilprix C48
                              et si check box 2 est coché je veux en feuilvba en B4 = feuilprix C49*2

                              donc si je traduit en VBA ca donnerais

                              Private Sub CommandButton1_Click()
                              If CheckBox1.Value = True Then
                              Sheets("vba").[B3] = Sheets("prix").[C48]
                              end if
                              If CheckBox2.Value = True Then
                              Sheets("vba").[B43] = Sheets("prix").[C49] * 2
                              end if
                              End Sub

                              est ce bon ??? et si je veux que se soit cumulatif (je m'explique) si la case 1 est coché = feuilprix c48 et si la case 2 est coché également je veux feuilprix c49*2+ la case 1 que j'ai coché soit feuilprix c48

                              wow je croyais jamais que j'osserais essayer de faire de la programmation, si ont peut dire que c'est de la programation hihi

                              Nina
                              1. Salut Nina,

                                Ce que je dis en fait c'est que si tu fais :

                                If OptionButton2 = True Then
                                End If

                                Cela ne sert a rien, même si cela ne change rien au fait que ton code fonctionne.
                                En realité , ce que cette ligne fait c'est :

                                Si optionbutton = vraie alors
                                Fin Si

                                J'espere que tu comprend pourquoi cela ne change rien au final :)
                                C'est comme si tu faisais

                                Si optionbutton = faux alors
                                Fin si

                                Tu rentres dans la boucle pour y ressortir juste après ( il n'y a pas donc pas d'execution d'une ligne ou plusieurs )
                                Ne pas rentrer dans la boucle revient au même c'est ca que je dis.

                                Et d'apres ce que j'ai compris comme je le dis au-dessus toi c'est pas vraiment ca en fait que tu veux

                                Si optionbutton = vraie alors

                                si jaguar = vraie alors

                                la tu fait tes addtions ou juste transposition de chiffre/nombre

                                fin si

                                fin si

                                Tu comprends où je veux en venir ?

                                Si l'optionbutton est vrai alors il entre dans le SI , et une fois rentrer dans le SI , si jaguar est vrai alors tu execute ton instruction tu quitte le 2eme SI puis le premier SI.

                                Normalement formuler comme ca tu devrais mieux comprendre.

                                Ce qui veut dire que si l'optionbutton = false alors tu ne rentre pas dans jaguar. Et c'est la ou est l'interet du truc que je t'ai passer. Sinon te contenter de :

                                Private Sub CommandButton1_Click()
                                If Jaguar("optionbutton1") = True Then
                                Sheets("prix").[G37] = Sheets("couleur").[S249] + Sheets("couleur").[y249]
                                End If
                                If Jaguar("optionbutton1") = True Then
                                Sheets("prix").[G37] = Sheets("couleur").[S249] + Sheets("couleur").[AB249]
                                End If

                                est largement suffisant, mais a ce moment la les boutton jaguar = vraie execute leur code meme si optionbutton1 = false.

                                Voiloo j'espere avoir bien détaillé. SI tu as besoin d'aide demande.

                                A+
                                1. BONJOUR GOOMIS

                                  oui c'est exactement ca, ce que je comprend pas c'est que tu me dit qui se passe rien, pourtant mon code fonctionne ???

                                  et si je comprend bien mon code est bon mais je peux enlever le end if entre

                                  If OptionButton1 = True Then
                                  End If
                                  If Jaguar("optionbutton1") = True Then

                                  Merci

                                  Nina
                                  1. Private Sub CommandButton1_Click()
                                    If OptionButton1 = True Then
                                    End If
                                    If Jaguar("optionbutton1") = True Then
                                    Sheets("prix").[G37] = Sheets("couleur").[S249] + Sheets("couleur").[y249]
                                    End If
                                    If OptionButton2 = True Then
                                    End If
                                    If Jaguar("optionbutton1") = True Then
                                    Sheets("prix").[G37] = Sheets("couleur").[S249] + Sheets("couleur").[AB249]
                                    End If

                                    Je ne saisis pas tout de ce que tu veux faire a part attribuer a une cellule la valeur d'une autre cellule situé sur une autre feuille et additionner deux cellule pour mettre le résultat de l'addition dans une cellule de l'autre feuille mais est-ce necessaire les :
                                    If OptionButton2 = True Then
                                    End If
                                    ?

                                    Vu que si optionbutton2 = false ba cela revient il se passe rien et dans ton SI si optionbutton2 = true = end if alors ne rien mettre revient au même.

                                    Cela revient au même de ne rien mettre mais déjà ton code sera plus clair car il y aura moins de ligne.

                                    D'apres ce que j'ai compris tu voudrais un code plus simple qui réalise ce que tu demande je vais essayer de t'en proposer un d'apres ce que j'ai compris :

                                    Private Sub CommandButton1_Click()

                                    'si optionbutton = vrai alors
                                    If OptionButton1 = True Then
                                    'on rentre dans le si et si le bouton jaguar = vrai alors
                                    If Jaguar("optionbutton1") = True Then
                                    'on prend la cellule G37 de la feuille prix égale à cellule s249 + cellule y249 de la feuille couleur
                                    Sheets("prix").[G37] = Sheets("couleur").[S249] + Sheets("couleur").[y249]
                                    end if
                                    End If

                                    Cela te convient ?

                                    En attenant A+
                                    1. Bonjour Mike

                                      Je me permet de revenir vers toi pour te demander si il n'y as pas plus simple que ce que je fait présentement.

                                      voici un bout de code

                                      Private Sub CommandButton1_Click()
                                      If OptionButton1 = True Then
                                      End If
                                      If Jaguar("optionbutton1") = True Then
                                      Sheets("prix").[G37] = Sheets("couleur").[S249] + Sheets("couleur").[y249]
                                      End If
                                      If OptionButton2 = True Then
                                      End If
                                      If Jaguar("optionbutton1") = True Then
                                      Sheets("prix").[G37] = Sheets("couleur").[S249] + Sheets("couleur").[AB249]
                                      End If

                                      voila et ca continue comme ca

                                      à savoir que juste pour ce userform jai 20 bouton option et que dans jaguar jai 20 bouton option et que j'ai encore plus de 20 userform avec 20 bouton option à venir.

                                      J'imagine qu'un autre code que je ne connais pas doit convenir.... Si je te demande c'est pour apprendre les possibilités puisque ce code fonctionne.

                                      Merci et bonne soirée.

                                      Nina
                                      • 1
                                      • 2