Aide code vba sous excel pour case à cocher !

Bonjour,

voila je veux me faire une base de données de tout mes films avec excel mais le hic c'est que j'arrive pas à faire ce que j'aimerais faire avec des cases à cocher.

En gros, je vous montre 2 screens:

La première c'est la forme qu'a mon tableau pour le moment !

http://ups.imagup.com/06/1260940208.jpg

La seconde c'est pour vous montrer que j'ai créer un formulaire (en haut à gauche) avec une macro pour que lorsque je clique dessus cette fenêtre s'affiche:

http://ups.imagup.com/06/1260940285.jpg

Ce que j'aimerais c'est que via le formulaire en cochant soit oui soit non, cela soit indiquer dans la colonne "Prêté (Oui/Non)"

Donc si y a des personnes qui s'y connaissent pas mal je suis tout ouï ^^ !

Merci !
Configuration: Intel core 2 duo E6750 2,66Mhz 
2 Go de Ram
ATI radeon HD 4890 1Go

14 réponses

  1. Salut !

    Merci ça m'a bien aidé ton fichier, le truc c'est le bouton "Non" était activé lors de l'ouverture du formulaire mais dès que je faisais "Ajouter" ça refaisait comme au début !

    Mais j'ai trouvé comment faire en fait c'est tout bête, dans le code de mon Usrform j'ai juste modifié la valeur de option2 :

    'efface le formulaire et replace le curseur sur txtfilm
    txtfilm.Text = ""
    txtpret.Text = ""
    option1 = ""
    option2 = True
    txtfilm.SetFocus

    Au lieu de mettre des "" (donc vide) j'ai simplement mis valeur True est ça fonctionne ! Ouf ^^

    C'est cool en tout cas ça me fait bosser je me suis arracher les cheveux depuis hier mais grâce à toi j'ai bien avancer : )

    Maintenant je vais passer à un autre problème c'est pas du VBA mais c'est tout aussi prise de tête ^^ !

    Je voudrais mettre une image en arrière plan (derrière les cellules) mais dans une plage donnée (c'est à dire par exemple uniquement de la cellule A3 x D3 à A50 x D50

    Et petit truc supplémentaire, je voudrais que cette image soit figée (un peut comme des lignes que l'on fige pour qu'elle soit toujours visible même en déroulant la page vers le bas.

    Voila mon prochain objectif lol !

    Je te file le screen de mon tableau que je peaufine si t'as des idées à me donner :

    http://ups.imagup.com/06/1261086189.jpg

    Merci !
    0
    1. lol ! Alors j'ai fait la modification mais la y a une fenêtre "Macro" qui s'affiche je veux pas faire de bêtise mais il faut choisir une macro dans la liste ou en créer une nouvelle ?

      le lien :

      http://ups.imagup.com/06/1261044738.jpg
      0
      1. Contributeur
        Salut :)

        tient je t'ai fait un petit exemple
        http://www.cijoint.fr/cjlink.php?file=cj200912/cijSD59Gac.xls

        À la prochaine

        EDIT: faudrait changer l'ordre des commandes

        donc mettre
        Sub CommandButton1_Click()
        
        UserForm.option2.Value = True
        UserForm.Show
        End Sub

        Au lieu de:
        Sub CommandButton1_Click()
        
        UserForm.Show
        UserForm.option2.Value = True
        End Sub
        


        On va l'avoir lollll
        0
    2. Contributeur
      ah ben oui lol

      Private Sub UserForm_Activate() 'Attention UserForm doit être remplacer par le nom de ton userform
      UserForm.option2.Value = True
      End Sub
      
      0
      1. Je viens de réessayer mais j'ai un message d'erreur :

        http://ups.imagup.com/06/1261043564.jpg

        Faut peut-être écrire autre chose dans thisworkbook ? et d'ailleurs pourquoi cette commande dans thisworkbook ?
        0
        1. Comme ça ? :

          http://ups.imagup.com/06/1261042811.jpg

          Parce que ça ne fonctionne pas ! faut pas l'introduire dans le code de base ?

          C'est à dire dans celui-la :

          Private Sub cmdajouter_Click()
          Dim numlignevide As Integer
          'activation de la feuille "Prêt BluRay"
          Worksheets("Prêt BluRay").Activate
          'trouve la dernière ligne vide du tableau et enregistre le numéro de la ligne dans la variable numlignevide
          numlignevide = ActiveSheet.Columns(1).Find("").Row
          'vérifie que les champs obligatoires sont correctement remplis
          If txtfilm.Text = "" Then
          MsgBox "Rentrez le nom d'un film", vbCritical, "Veuillez rentrer le nom d'un film SVP !"
          txtfilm.SetFocus
          Else
          'enregistre les données
          ActiveSheet.Cells(numlignevide, 1) = txtfilm.Text
          ActiveSheet.Cells(numlignevide, 3) = txtpret.Text
          If option1 = True Then
          ActiveSheet.Cells(numlignevide, 2) = "Oui"
          ElseIf option2 = True Then
          ActiveSheet.Cells(numlignevide, 2) = "Non"
          End If
          'efface le formulaire et replace le curseur sur txtfilm
          txtfilm.Text = ""
          txtpret.Text = ""
          option1 = ""
          option2 = ""
          txtfilm.SetFocus
          End If
          End Sub

          Je sais pas en fait ! Va falloir que je me mette à fond dans les bouquins ! : )
          0
          1. Contributeur
            en fait c'est
            Private Sub UserForm_Activate() 'Attention UserForm doit être remplacer par le nom de ton userform
            option2.Value = True
            End Sub 
            
            
            0
        2. Arf je viens de tester ça fonctionne pas ! j'ai bien mis le nom du userform pourtant regarde :

          http://ups.imagup.com/06/1261041168.jpg

          Surement que je le met pas au bon endroit (je l'ai mis tout en bas la commande)

          Bonne soirée et merci encore pour l'aide !
          0
          1. Contributeur
            moi je le mettrais dans thisworkbook
            0
        3. Désolé du double post mais je fais des tests depuis tout à l'heure et je remarque que lorsque je valide mon formulaire avec "oui" les champs ne s'efface pas alors qu'avec "non" ça efface. C'est bizarre.

          Ha non c'est bon j'édite mon message, en fait premier End if faut pas le mettre à la fin mais avant d'effacer les champs.

          La il me reste plus qu'a trouver comment faire pour que le choix "non" soit sélectionné par défaut lorsque j'ouvre le formulaire.
          0
          1. Contributeur
            Salut,
            Pour que la case Non soit cocher à l'ouverture de ton formulaire
            Private Sub UserForm_Activate() 'Attention UserForm doit être remplacer par le nom de ton userform
            Buttonoption2.Value = True
            End Sub 
            


            Bonne journée
            0
        4. C'est mieux en effet : )

          Moi aussi j'essaye d'apprendre le VBA comme tu as pu t'en douter ! ^^
          0
          1. Contributeur
            Salut,

            je ne suis vraiment pas un expert en VBA, je suis novice et j'essaie d'apprendre ;)

            J'ai l'impression que je n'ai pas mit mon End If à la bonne place

            Private Sub cmdajouter_Click()
            Dim numlignevide As Integer
            Worksheets("Prêt BluRay").Activate
            numlignevide = ActiveSheet.Columns(1).Find("").Row
                If txtfilm.Text = "" Then
                MsgBox "Veuillez remplir les champs", vbCritical, "Champs manquants"
                txtfilm.SetFocus
            Else
                ActiveSheet.Cells(numlignevide, 1) = txtfilm.Text
                ActiveSheet.Cells(numlignevide, 3) = txtpret.Text
                If Option1 = True Then
                ActiveSheet.Cells(numlignevide, 2) = "oui"
                ElseIf Option2 = True Then
                ActiveSheet.Cells(numlignevide, 2) = "Non"
                
                txt.film.Text = ""
                txtpret.Text = ""
                Option1 = ""
                Option2 = ""
            txtfilm.SetFocus
            End If
            End If
            End Sub
            
            
            0
            1. Slt !

              Je viens de tester ton code VBA et ça fontionne niquel merci beaucoup.

              Y a juste un petit truc je sais pas si on peut le changer mais lorsque je rentre dans le formulaire le nom de mon film si je l'ai prêté "oui" ou "non" et que je valide, les deux bouton options sont rempli et grisé.

              C'est pas gênant en soit parce qu'ils sont grisé mais il suffit que je clique sur l'un d'entre eux quand je rentre un nouveau film pour qu'il prenne en compte le choix désiré mais bon.

              A et puis j'y pense, quand je valide, le setfocus se remet sur "nom du film" donc ça c'est parfait mais j'aimerai aussi que le choix "non" soit sélectionné par défaut.

              Si tu as une solution ça serait cool.

              Merci
              0
              1. Contributeur
                Salut,
                Au lieu des cases à cocher j'ai mit des boutons radios Option1 pour Oui et Option2 pour Non
                tient essaie ceci:
                Private Sub cmdajouter_Click()
                Dim numlignevide As Integer
                Worksheets("Prêt BluRay").Activate
                numlignevide = ActiveSheet.Columns(1).Find("").Row
                    If txtfilm.Text = "" Then
                    MsgBox "Veuillez remplir les champs", vbCritical, "Champs manquants"
                    txtfilm.SetFocus
                Else
                    ActiveSheet.Cells(numlignevide, 1) = txtfilm.Text
                    ActiveSheet.Cells(numlignevide, 3) = txtpret.Text
                    If Option1 = True Then
                    ActiveSheet.Cells(numlignevide, 2) = "oui"
                    ElseIf Option2 = True Then
                    ActiveSheet.Cells(numlignevide, 2) = "Non"
                    End If
                    txt.film.Text = ""
                    txtpret.Text = ""
                    Option1 = ""
                    Option2 = ""
                txtfilm.SetFocus
                End If
                End Sub
                


                Bonne journée
                0
                1. alors personne pour me filer un petit coup de main ?
                  0
                  1. Voila : D

                    http://ups.imagup.com/06/1260941091.jpg
                    0
                    1. Contributeur
                      Salut,
                      colle nous ton code VBA de ton formulaire pour que l'on puisse voir le nom des tes champs et de tes variables.

                      Merci
                      0