Probleme Macro sous Excel 2007
Résolu
arsenik59fr
Messages postés
131
Statut
Membre
-
arsenik59fr Messages postés 131 Statut Membre -
arsenik59fr Messages postés 131 Statut Membre -
Bonjour,
Tout d'abord merci à ceux qui vont se pencher sur le sujet, voila je vous explique mon probléme.
Je suis novice sur Excel et ses macros, j'ai décidé de me faire une petite liste de tout mes fichiers media (AVI/MP3/ect...) que je posséde. Donc je me crée un petit tableau basique (colonne pout titre, taille, qualité, format..) avec un bouton commande en VBE sur ma feuille de calcule qui me lance ma macro userform. Celle-ci est composée de champs de saisie, listes déroulantes, et 2 boutons commande"ajouter" et "fermer". Elle a pour fonction de rentrer toutes les infos media dans ma feuille de calcule "liste". Aprés avoir clické sur ma commande "ajouter" et rentrer ces infos, la macro est sensé vider les champs de saisie( mes textbox) de ma userform et placer le curseur( si je peux dire cela ) à la première ligne vierge de mon liste pour les infos avenir.
Le problème c'est qu'elle vide bien mes 2 premiers champs de saisie et block (je pense) sur mes 4 liste déroulantes (mes combobox) chacune composé d'une ligne vierge suivie de différente info et me met un message d'erreur que j'ai réussie à résoudre, et me laisse mes 3 autres champs de saisie suivant avec les infos précédentes.
A savoir que mes infos sont bien inséré dans ma liste (meme quand j'avais mon message d'erreur, il me suffisait de clické sur annuler et il faisait le travail quand meme).
Je suis certain que ca doit etre une mauvaise frape de syntaxe, ou fonction dans mon code source.
Pouvez-vous me venir en aide SVP ???
Voici le code en question :
Private Sub Cmdajouter_Click()
Dim numlignevide As Integer
'On active la feuille "Liste"
Worksheets("Liste").Activate
'On trouve la dernière ligne vide du tableau et on enregistre le numèro de la ligne dans la variable numlignevide
numlignevide = ActiveSheet.Columns(2).Find("").Row
'On vérifie que les champs obligatoires sont correctement remplis
If Txtnom.Text = "" Then
MsgBox "Veillez remplire le nom de votre film", vbCritical, "champs manquant"
Txtnom.SetFocus
ElseIf Txttaille.Text = "" Then
MsgBox "Veillez remplire la taille de votre film", vbCritical, "champs manquant"
Txttaille.SetFocus
ElseIf ComboBoxunite.Text = "" Then
MsgBox "Veillez remplire le format de votre film", vbCritical, "champs manquant"
ComboBoxunite.SetFocus
ElseIf ComboBoxformat.Text = "" Then
MsgBox "Veillez remplire la langue de votre film", vbCritical, "champs manquant"
ComboBoxformat.SetFocus
ElseIf ComboBoxlangue.Text = "" Then
MsgBox "Veillez remplire la langue de votre film", vbCritical, "champs manquant"
ComboBoxlangue.SetFocus
ElseIf ComboBoxqualite.Text = "" Then
MsgBox "Veillez remplire la langue de votre film", vbCritical, "champs manquant"
ComboBoxqualite.SetFocus
Else
'On remplis les donnèes dans notre tableau
ActiveSheet.Cells(numlignevide, 2) = UCase(Txtnom.Text)
ActiveSheet.Cells(numlignevide, 3) = Txttaille.Text
ActiveSheet.Cells(numlignevide, 4) = ComboBoxunite.Text
ActiveSheet.Cells(numlignevide, 5) = ComboBoxformat.Text
ActiveSheet.Cells(numlignevide, 6) = ComboBoxlangue.Text
ActiveSheet.Cells(numlignevide, 7) = ComboBoxqualite.Text
ActiveSheet.Cells(numlignevide, 8) = Txtacteur.Text
ActiveSheet.Cells(numlignevide, 9) = Txtlien1.Text
ActiveSheet.Cells(numlignevide, 10) = Txtlien2.Text
'On efface le formulaire et on replace le curseur sur le premier champ (nom)
Txtnom.Text = ""
Txttaille.Text = ""
ComboBoxunite.Text = ""
ComboBoxformat.Text = ""
ComboBoxlangue.Text = ""
ComboBoxqualite.Text = ""
Txtacteur.Text = ""
Txtlien1.Text = ""
Txtlien2.Text
End If
End Sub
Private Sub Cmdfermerer_Click()
frmnouveau.Hide
End Sub
Private Sub ComboBox4_Change()
'Appel de la procédure Liste située dans un module
Liste
End Sub
Pour info ce que j'ai mis en caractère gras c'est la ou j'avais mon message d'erreur 424 ou 385 ce matin.
Tout d'abord merci à ceux qui vont se pencher sur le sujet, voila je vous explique mon probléme.
Je suis novice sur Excel et ses macros, j'ai décidé de me faire une petite liste de tout mes fichiers media (AVI/MP3/ect...) que je posséde. Donc je me crée un petit tableau basique (colonne pout titre, taille, qualité, format..) avec un bouton commande en VBE sur ma feuille de calcule qui me lance ma macro userform. Celle-ci est composée de champs de saisie, listes déroulantes, et 2 boutons commande"ajouter" et "fermer". Elle a pour fonction de rentrer toutes les infos media dans ma feuille de calcule "liste". Aprés avoir clické sur ma commande "ajouter" et rentrer ces infos, la macro est sensé vider les champs de saisie( mes textbox) de ma userform et placer le curseur( si je peux dire cela ) à la première ligne vierge de mon liste pour les infos avenir.
Le problème c'est qu'elle vide bien mes 2 premiers champs de saisie et block (je pense) sur mes 4 liste déroulantes (mes combobox) chacune composé d'une ligne vierge suivie de différente info et me met un message d'erreur que j'ai réussie à résoudre, et me laisse mes 3 autres champs de saisie suivant avec les infos précédentes.
A savoir que mes infos sont bien inséré dans ma liste (meme quand j'avais mon message d'erreur, il me suffisait de clické sur annuler et il faisait le travail quand meme).
Je suis certain que ca doit etre une mauvaise frape de syntaxe, ou fonction dans mon code source.
Pouvez-vous me venir en aide SVP ???
Voici le code en question :
Private Sub Cmdajouter_Click()
Dim numlignevide As Integer
'On active la feuille "Liste"
Worksheets("Liste").Activate
'On trouve la dernière ligne vide du tableau et on enregistre le numèro de la ligne dans la variable numlignevide
numlignevide = ActiveSheet.Columns(2).Find("").Row
'On vérifie que les champs obligatoires sont correctement remplis
If Txtnom.Text = "" Then
MsgBox "Veillez remplire le nom de votre film", vbCritical, "champs manquant"
Txtnom.SetFocus
ElseIf Txttaille.Text = "" Then
MsgBox "Veillez remplire la taille de votre film", vbCritical, "champs manquant"
Txttaille.SetFocus
ElseIf ComboBoxunite.Text = "" Then
MsgBox "Veillez remplire le format de votre film", vbCritical, "champs manquant"
ComboBoxunite.SetFocus
ElseIf ComboBoxformat.Text = "" Then
MsgBox "Veillez remplire la langue de votre film", vbCritical, "champs manquant"
ComboBoxformat.SetFocus
ElseIf ComboBoxlangue.Text = "" Then
MsgBox "Veillez remplire la langue de votre film", vbCritical, "champs manquant"
ComboBoxlangue.SetFocus
ElseIf ComboBoxqualite.Text = "" Then
MsgBox "Veillez remplire la langue de votre film", vbCritical, "champs manquant"
ComboBoxqualite.SetFocus
Else
'On remplis les donnèes dans notre tableau
ActiveSheet.Cells(numlignevide, 2) = UCase(Txtnom.Text)
ActiveSheet.Cells(numlignevide, 3) = Txttaille.Text
ActiveSheet.Cells(numlignevide, 4) = ComboBoxunite.Text
ActiveSheet.Cells(numlignevide, 5) = ComboBoxformat.Text
ActiveSheet.Cells(numlignevide, 6) = ComboBoxlangue.Text
ActiveSheet.Cells(numlignevide, 7) = ComboBoxqualite.Text
ActiveSheet.Cells(numlignevide, 8) = Txtacteur.Text
ActiveSheet.Cells(numlignevide, 9) = Txtlien1.Text
ActiveSheet.Cells(numlignevide, 10) = Txtlien2.Text
'On efface le formulaire et on replace le curseur sur le premier champ (nom)
Txtnom.Text = ""
Txttaille.Text = ""
ComboBoxunite.Text = ""
ComboBoxformat.Text = ""
ComboBoxlangue.Text = ""
ComboBoxqualite.Text = ""
Txtacteur.Text = ""
Txtlien1.Text = ""
Txtlien2.Text
End If
End Sub
Private Sub Cmdfermerer_Click()
frmnouveau.Hide
End Sub
Private Sub ComboBox4_Change()
'Appel de la procédure Liste située dans un module
Liste
End Sub
Pour info ce que j'ai mis en caractère gras c'est la ou j'avais mon message d'erreur 424 ou 385 ce matin.
A voir également:
- Probleme Macro sous Excel 2007
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Save as pdf office 2007 - Télécharger - Bureautique
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
4 réponses
Salut,
je ne suis pas un pro du VBA mais as tu essayé:
je ne suis pas un pro du VBA mais as tu essayé:
ComboBoxunite.Value = "" ComboBoxformat.Value = "" ComboBoxlangue.Value = "" ComboBoxqualite.Value = ""
re
J'ai essayé les deux
et les 2 fonctionnent très bien
la source de mon ComboBox1 est Feuil1!A1:A4
A1= vide
A2=allo
A3=test
A4=test3
Dès que je test le userform la donnée sélectionnée s'affiche sur ma feuille et la ComboBox revient à vide
J'ai essayé les deux
ComboBox1.Text = "" ComboBox1.Value = ""
et les 2 fonctionnent très bien
la source de mon ComboBox1 est Feuil1!A1:A4
A1= vide
A2=allo
A3=test
A4=test3
Dès que je test le userform la donnée sélectionnée s'affiche sur ma feuille et la ComboBox revient à vide
salut Ricky38, merci de m'aider cela fait que 2 jours que j' apprend excel, donc je n'ai pas vraiment de notion pour le language :)
J'ai rentré les [ComboBox.Value = ""] dans mon code source mais cela ne fonctionne pas quand je click sur ajout il me met un message d'erreur de compilation et me renvoi a ma commande cmdajouter_Click de mon code
:(
J'ai rentré les [ComboBox.Value = ""] dans mon code source mais cela ne fonctionne pas quand je click sur ajout il me met un message d'erreur de compilation et me renvoi a ma commande cmdajouter_Click de mon code
:(
bonjour
Pour avoir un combobox sans sélection, il vaut mieux utiliser la fonction adaptée :
Cela ne perturbe pas le contenu et ne joue que sur l'affichage ensuite la sélection va positionner ListIndex à la valeur choisie.
Pour avoir un combobox sans sélection, il vaut mieux utiliser la fonction adaptée :
Me.ComboBox1.ListIndex = -1
Cela ne perturbe pas le contenu et ne joue que sur l'affichage ensuite la sélection va positionner ListIndex à la valeur choisie.