je fais un petit projet ,mais j'ai un souci .Je viens vous poser mon problème si possible pour vous.
serait il possible dans la colonne A de la feuille source ou sur le formulaire dans le textbox 1 d'avoir une incrémentation auto en chiffre.
et autre soucis lorsque le formulaire est complet je valide le feuille source se remplie bien mais lorsque je fais une autre saisie
j'ai une erreur vba "erreur d’exécution 438"
j'espère avoir été clair pour vous.
je vous remercie d'avoir regardez mon fichier.
cp4 sur ton fichier 2 problème pour moi dans le formulaire le numero est ok mais lorsque je valide la ligne se remplie bien mais lorsque j'efface les données dans le formulaire pour faire une nouvelle saisie le textbox1 s'efface serait il possible qu'il reste.
et quand je rempli de nouveau le formulaire et valide dans source il ne change pas de ligne.
GALOUGALOU le fichier me convient mieux mais lorsque j'efface les données dans le formulaire pour faire une nouvelle saisie le textbox1 s'efface serait il possible qu'il reste.je ne veux pas quitter le formulaire à chaque saisie.
re jeff77
pour moi faire simple c'est faire bien
donc je vous propose dans le code cette modification,
Unload Me
UserForm1.Show
sur le clic du bouton validation, l'userform se fermera et s'ouvrira automatiquement . le textbox1 s'effacera et presentera le nouvel index.
Enrichi (BBcode):
Private Sub CommandButton1_Click()
If TextBox1 = "" Or TextBox2 = "" Or TextBox3 = "" Or TextBox4 = "" Or TextBox5 = "" Or TextBox6 = "" Or TextBox7 = "" Then
MsgBox ("toutes les informations ne sont pas remplies")
Else
If Sheets("source").Range("a2") = "" Then
Sheets("source").Range("a2") = TextBox1
Else
dlt = Sheets("source").Cells(36000, 1).End(xlUp).Row + 1
Sheets("source").Range("a" & dlt) = TextBox1
Sheets("source").Range("b" & dlt) = TextBox2
Sheets("source").Range("c" & dlt) = TextBox3
Sheets("source").Range("d" & dlt) = TextBox4
Sheets("source").Range("e" & dlt) = TextBox5
Sheets("source").Range("f" & dlt) = TextBox6
Sheets("source").Range("g" & dlt) = TextBox7
End If
End If
Unload Me
UserForm1.Show
End Sub
super je t’embête encore un peu juste un dernier petit bug lorsque toutes les lignes sont effacées je rempli mon formulaire
et quand je valide j'ai juste en A2 le textbox1 et rien dans les autres.
formulaire suivant ok pour tout.
re
ahhh bizarre
je viens de faire un test et je ne constate pas cela dans le classeur du #5. pourrais tu préciser la problématique, est ce dans ce classeur du #5 ou dans un autre classeur ?
cordialement
re
supposition
si le problème se trouve dans un autre classeur, et que la feuille comporte un tableau ou que dans la colonne A se trouve des données, ces raisons peuvent expliquer tes problèmes.
A confirmer.
cordialement
mais lorsque je valide la ligne se remplie bien mais lorsque j'efface les données dans le formulaire pour faire une nouvelle saisie le textbox1 s'efface serait il possible qu'il reste.
et quand je rempli de nouveau le formulaire et valide dans source il ne change pas de ligne.
pour la dernière ligne, je suis d'accord avec toi car j'avais fait une erreur à la va-vite.
Pour l'effacement c'est ton code initial qui fait le boulot (vide textbox1), auquel je n'y avais pas touché. Maintenant, si tu ouvres une discussion pour un problème, mais dont l'objectif est de se faire livrer du tout cuit, c'est autre chose. Alors, on est membre pour apprendre en se faisant aider. Pour moi c'est Ok. Dans le cas contraire, c'est abusé de la gentillesse des contributeurs.
re
supposition
si le problème se trouve dans un autre classeur, et que la feuille comporte un tableau ou que dans la colonne A se trouve des données, ces raisons peuvent expliquer tes problèmes.
A confirmer.
cordialement
pour la dernière ligne, je suis d'accord avec toi car j'avais fait une erreur à la va-vite.
Pour l'effacement c'est ton code initial qui fait le boulot (vide textbox1), auquel je n'y avais pas touché. Maintenant, si tu ouvres une discussion pour un problème, mais dont l'objectif est de se faire livrer du tout cuit, c'est autre chose. Alors, on est membre pour apprendre en se faisant aider. Pour moi c'est Ok. Dans le cas contraire, c'est abusé de la gentillesse des contributeurs.
re jeff77 amitiés cp4 bonjour le forum
le problème venait du code corrigé dans la mouture ci-dessous (suppression de ligne inutile)
Enrichi (BBcode):
Private Sub CommandButton1_Click()
If TextBox1 = "" Or TextBox2 = "" Or TextBox3 = "" Or TextBox4 = "" Or TextBox5 = "" Or TextBox6 = "" Or TextBox7 = "" Then
MsgBox ("toutes les informations ne sont pas remplies")
Else
dlt = Sheets("source").Cells(36000, 1).End(xlUp).Row + 1
Sheets("source").Range("a" & dlt) = TextBox1
Sheets("source").Range("b" & dlt) = TextBox2
Sheets("source").Range("c" & dlt) = TextBox3
Sheets("source").Range("d" & dlt) = TextBox4
Sheets("source").Range("e" & dlt) = TextBox5
Sheets("source").Range("f" & dlt) = TextBox6
Sheets("source").Range("g" & dlt) = TextBox7
End If
Unload Me
UserForm1.Show
End Sub
attention, dans la feuille un tableau se construit à partir de la ligne 3, au fur et mesure de l'ajout de données. pour une réinitialisation supprimer toutes les lignes du tableau (de la ligne 3 à la fin).
une petite précision, en informatique je n'ai reçu aucune formation,je suis autodidacte et malgré bien des embuches, j'ai appris grâce à internet et à l'aide trouvé sur les forums par des personnes qui ont démocratisées leurs connaissances. alors bon courage et ne lâchez rien.
cordialement
galougalou
re jeff77 amitiés cp4 bonjour le forum
le problème venait du code corrigé dans la mouture ci-dessous (suppression de ligne inutile)
Enrichi (BBcode):
Private Sub CommandButton1_Click()
If TextBox1 = "" Or TextBox2 = "" Or TextBox3 = "" Or TextBox4 = "" Or TextBox5 = "" Or TextBox6 = "" Or TextBox7 = "" Then
MsgBox ("toutes les informations ne sont pas remplies")
Else
dlt = Sheets("source").Cells(36000, 1).End(xlUp).Row + 1
Sheets("source").Range("a" & dlt) = TextBox1
Sheets("source").Range("b" & dlt) = TextBox2
Sheets("source").Range("c" & dlt) = TextBox3
Sheets("source").Range("d" & dlt) = TextBox4
Sheets("source").Range("e" & dlt) = TextBox5
Sheets("source").Range("f" & dlt) = TextBox6
Sheets("source").Range("g" & dlt) = TextBox7
End If
Unload Me
UserForm1.Show
End Sub
attention, dans la feuille un tableau se construit à partir de la ligne 3, au fur et mesure de l'ajout de données. pour une réinitialisation supprimer toutes les lignes du tableau (de la ligne 3 à la fin).
une petite précision, en informatique je n'ai reçu aucune formation,je suis autodidacte et malgré bien des embuches, j'ai appris grâce à internet et à l'aide trouvé sur les forums par des personnes qui ont démocratisées leurs connaissances. alors bon courage et ne lâchez rien.
cordialement
galougalou
@GALOUGALOU moi aussi je suis autodidacte (comme beaucoup d'ailleurs).
Le tableau se construira au fur et à mesure avec la première ligne du tableau vide (soit ligne 2 de la feuille). Il fallait ajouter une condition au début du code pour que ça tombe pile poil en seconde ligne lorsque le tableau structuré est vide.
VB:
Private Sub CommandButton1_Click()
If TextBox1 = "" Or TextBox2 = "" Or TextBox3 = "" Or TextBox4 = "" Or TextBox5 = "" Or TextBox6 = "" Or TextBox7 = "" Then
MsgBox ("toutes les informations ne sont pas remplies")
Else
If Range("Tableau1").ListObject.ListRows.Count = 0 Then
dlt = 2
Else
dlt = Sheets("source").Range("a" & Sheets("source").Rows.Count).End(xlUp).Row + 1
End If
Sheets("source").Range("a" & dlt) = TextBox1
Sheets("source").Range("b" & dlt) = TextBox2
Sheets("source").Range("c" & dlt) = TextBox3
Sheets("source").Range("d" & dlt) = TextBox4
Sheets("source").Range("e" & dlt) = TextBox5
Sheets("source").Range("f" & dlt) = TextBox6
Sheets("source").Range("g" & dlt) = TextBox7
End If
Unload Me
UserForm1.Show
End Sub
Le code ci-dessous t'aidera à déterminer le numéro de ligne lorsque le tableau est vide
Code:
Sub NbreLigneTableau()
Debug.Print Range("Tableau1").Rows.Count 'renvoie 1 qd tableau vide
Debug.Print Range("Tableau1").ListObject.ListRows.Count 'renvoie 0 qd tableau vide
End Sub
@JEFF77, si tu veux une numérotation comme celle proposée par Galougalou.
Tu peux prendre celle-ci à la place de l'autre.
re à cp4
et oui on apprend à tout age, je ne connaissais pas cette ligne de code. merci cp4...
re jeff 77
le moteur de recherche est ton meilleur ami, mais peut-être ce lien
Formation complète et gratuite qui vous permettra d'acquérir de bonnes bases avec Excel 2016, 2019, 2021 et 365. Cette formation est facile à suivre et adaptée aux débutants.