Aide code vba sous excel pour case à cocher !

Fermé
benbeto78 Messages postés 344 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 2 août 2014 - 15 déc. 2009 à 17:47
benbeto78 Messages postés 344 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 2 août 2014 - 17 déc. 2009 à 10:16
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 !
A voir également:

14 réponses

Ricky38 Messages postés 4349 Date d'inscription samedi 15 mars 2008 Statut Contributeur Dernière intervention 2 novembre 2013 1 458
15 déc. 2009 à 17:51
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
benbeto78 Messages postés 344 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 2 août 2014 14
15 déc. 2009 à 17:57
Voila : D

http://ups.imagup.com/06/1260941091.jpg
0
benbeto78 Messages postés 344 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 2 août 2014 14
15 déc. 2009 à 19:55
alors personne pour me filer un petit coup de main ?
0
Ricky38 Messages postés 4349 Date d'inscription samedi 15 mars 2008 Statut Contributeur Dernière intervention 2 novembre 2013 1 458
16 déc. 2009 à 01:57
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
benbeto78 Messages postés 344 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 2 août 2014 14
16 déc. 2009 à 15:44
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
Ricky38 Messages postés 4349 Date d'inscription samedi 15 mars 2008 Statut Contributeur Dernière intervention 2 novembre 2013 1 458
16 déc. 2009 à 15:56
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
benbeto78 Messages postés 344 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 2 août 2014 14
16 déc. 2009 à 16:00
C'est mieux en effet : )

Moi aussi j'essaye d'apprendre le VBA comme tu as pu t'en douter ! ^^
0
benbeto78 Messages postés 344 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 2 août 2014 14
16 déc. 2009 à 16:21
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
Ricky38 Messages postés 4349 Date d'inscription samedi 15 mars 2008 Statut Contributeur Dernière intervention 2 novembre 2013 1 458
16 déc. 2009 à 20:23
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
benbeto78 Messages postés 344 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 2 août 2014 14
16 déc. 2009 à 21:45
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
Ricky38 Messages postés 4349 Date d'inscription samedi 15 mars 2008 Statut Contributeur Dernière intervention 2 novembre 2013 1 458
16 déc. 2009 à 21:51
moi je le mettrais dans thisworkbook
0
benbeto78 Messages postés 344 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 2 août 2014 14
16 déc. 2009 à 22:14
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
Ricky38 Messages postés 4349 Date d'inscription samedi 15 mars 2008 Statut Contributeur Dernière intervention 2 novembre 2013 1 458
16 déc. 2009 à 22:23
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
benbeto78 Messages postés 344 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 2 août 2014 14
16 déc. 2009 à 22:28
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
Ricky38 Messages postés 4349 Date d'inscription samedi 15 mars 2008 Statut Contributeur Dernière intervention 2 novembre 2013 1 458
16 déc. 2009 à 22:34
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
benbeto78 Messages postés 344 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 2 août 2014 14
16 déc. 2009 à 22:46
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
Ricky38 Messages postés 4349 Date d'inscription samedi 15 mars 2008 Statut Contributeur Dernière intervention 2 novembre 2013 1 458
17 déc. 2009 à 02:57
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
benbeto78 Messages postés 344 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 2 août 2014 14
17 déc. 2009 à 10:16
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