Userform pour remplir un tableau

Bonjour à tout(e)s,

Je viens de débuter en VBA, et pour ma première j'aurais bien aimé faire un Userform qui remplisse certaine cellules dans une feuille,

j'ai donc créé mon Userform et intégré ce code:

Private Sub CommandButton1_Click()

If TextBox1.Value = "" Then

MsgBox "Veuillez renseigner les champs "

Else

Dim ligne As Integer

Worksheets("Information Absence").Select

Cells(A5) = TextBox1.Value

Cells(B5) = TextBox2.Value

Cells(C5) = TextBox3.Value

Cells(D5) = TextBox4.Value

Cells(E5) = TextBox5.Value

Cells(F5) = TextBox6.Value

Cells(E8) = TextBox7.Value

Cells(E9) = TextBox8.Value

Cells(E10) = TextBox9.Value

Cells(E7) = TextBox10.Value

Cells(F15) = TextBox11.Value

Cells(F16) = TextBox12.Value

Cells(F17) = TextBox13.Value

Cells(F18) = TextBox14.Value

Cells(F19) = TextBox15.Value

Unload UserForm1

UserForm1.Show

Sheets("Tableau comparatif").Visible = True

Sheets("Tableau IJSS").Visible = True

End If

End Sub

Le MsgBox fonctionne bien, cependant le tableau ne se rempli pas

De plus j'aurais bien aimé que lorsque j'ouvre mon fichier uniquement l'userform apparaisse, j'ai donc insérer ce code dans ThisWorkbook:

Option Explicit

Private Sub Workbook_Open()

Application.WindowState = xlMinimized

Application.Visible = False

UserForm1.Show 0

End Sub

Je vous remercie de votre aide précieuse

capture

Bonjour,

Curieux qu'il n'y ait pas un message d'erreur ?

Revoir la syntaxe d'utilisation de Cells (et Range) dans l'aide Excel

A+

Même en changeant Cells par Range rien ne change

Je suis vraiment désolé mais je débute

Je suis vraiment désolé mais je débute

c'est pour ça que je préconisais de consulter l'aide pour l'utilisation de Cells ( et par la même occasion de consulter l'aide de Range)

Bonjour

il me semble que l'utilisation de cells pour renseigner une cellule ce fait avec les chiffres de ligne et colonne.

non pas avec les références de la Cellule (A16)

Dans ton exemple Pour une utilisation avec Cells j'écrirai :

Worksheets("Information Absence").Cells(5, 1).value = TextBox1.Value

Pour (A5) ligne 5 colonne 1 --> Cells(5, 1).value

Bonjour,

Pour ce genre de question et pour un débutant, il est fortement recommander de joindre un classeur comportant au moins la feuille concernée et au moins un enregistrement.

....ainsi que la feuille qui a lancé la macro.

Ça permettrait ainsi de te conseiller utilement et de t'éviter de coder "avec le pied"

Nota : Pour utiliser Range c'est également possible mais il faut utiliser des guillemets.

Ex :

Range("A16").Select

A+

J'ai un peu re-travaillé dessus mais je dois louper quelque chose

Je vous joint le fichier

Puisque tu n'as pas pensé a rendre l'application visible à la fermeture du userform ;

Tu pourrais nous mettre ton exemple sans le lancement du userform à l'ouverture du fichier ….

là c'est gonflant excel est toujours ouvert et je ne vois plus.

Après ouverture on ne comprend Rien Les informations dans les Textbox ne correspondent pas du tout à ce qui est renseigné dans le Tableau.

Userform textbox1 = jours textbox 2 = mois textbox 3 = année

et toi tu valides textbox1 dans la première colonne du tableau qui contient janvier. ?

Quand à l'année textbox3 dans la colonne C du tableau ?

le userform ne va pas du tout avec le tableau.

Commence déjà par tout rendre visible pour faire tes codes ..... la déco c'est après quand tout fonctionne.

Désolé pour la gêne

En faites c'est good ca fonctionne avec ce code

Private Sub CommandButton1_Click()

Sheets("Tableau comparatif").Visible = True

Sheets("Tableau comparatif").Activate

If TextBox1.Value = "" Then

MsgBox "Veuillez renseigner les champs "

Else

Dim ligne As Integer

Worksheets("Information Absence").Cells(5, 1) = TextBox1.Value

Worksheets("Information Absence").Cells(5, 2) = TextBox2.Value

Worksheets("Information Absence").Cells(5, 3) = TextBox3.Value

Worksheets("Information Absence").Cells(5, 4) = TextBox4.Value

Worksheets("Information Absence").Cells(5, 5) = TextBox5.Value

Worksheets("Information Absence").Cells(5, 6) = TextBox6.Value

Worksheets("Information Absence").Cells(8, 5) = TextBox7.Value

Worksheets("Information Absence").Cells(9, 5) = TextBox8.Value

Worksheets("Information Absence").Cells(10, 5) = TextBox9.Value

Worksheets("Information Absence").Cells(11, 5) = TextBox10.Value

Worksheets("Information Absence").Cells(15, 6) = TextBox11.Value

Worksheets("Information Absence").Cells(16, 6) = TextBox12.Value

Worksheets("Information Absence").Cells(17, 6) = TextBox13.Value

Worksheets("Information Absence").Cells(18, 6) = TextBox14.Value

Worksheets("Information Absence").Cells(19, 6) = TextBox15.Value

Unload UserForm1

End If

End Sub

Private Sub CommandButton2_Click()

Sheets("Tableau comparatif").Visible = False

End Sub

Avec l'onglet correspondant c'est un peut mieux

Dans ton code tu utilises : Sheets("Tableau comparatif").Activate

alors que va rentrer les données dans l'onglet "information abscence"

Private Sub CommandButton1_Click()
Sheets("Tableau comparatif").Visible = True
If TextBox1.Value = "" Then
MsgBox "Veuillez renseigner les champs "
Else
Dim ligne As Integer ' variable inutile puisque tu indiques toi même le numéro de ligne

With Sheets("Information Absence")
.Activate
Worksheets("Information Absence").Cells(5, 1).Value = TextBox1
Worksheets("Information Absence").Cells(5, 2).value = TextBox2.Value
Worksheets("Information Absence").Cells(5, 3).value = TextBox3.Value
Worksheets("Information Absence").Cells(5, 4).value = TextBox4.Value
Worksheets("Information Absence").Cells(5, 5).value = TextBox5.Value
Worksheets("Information Absence").Cells(5, 6).value = TextBox6.Value
Worksheets("Information Absence").Cells(8, 5).value= TextBox7.Value
Worksheets("Information Absence").Cells(9, 5).value= TextBox8.Value
Worksheets("Information Absence").Cells(10, 5).value = TextBox9.Value
Worksheets("Information Absence").Cells(11, 5).value= TextBox10.Value
Worksheets("Information Absence").Cells(15, 6).value = TextBox11.Value
Worksheets("Information Absence").Cells(16, 6).value= TextBox12.Value
Worksheets("Information Absence").Cells(17, 6).value= TextBox13.Value
Worksheets("Information Absence").Cells(18, 6).value = TextBox14.Value
Worksheets("Information Absence").Cells(19, 6).value= TextBox15.Value
End with
Unload UserForm1

End If

End Sub

Comprend toujours pas pourquoi rendre visible

Sheets("Tableau comparatif").Visible = True

pour après le rendre invisible

çà sert à quoi ?

Bonjour

voila une modife a toi de voir

Private Sub CommandButton1_Click()
'Sheets("Tableau comparatif").Visible = True
'Sheets("Tableau comparatif").Activate
    If TextBox1.Value = "" Then
        MsgBox "Veuillez renseigner les champs "
        Exit Sub
    End If
'Dim ligne As Integer

With Feuil1
    .Cells(5, 1).Value = TextBox1
    .Cells(5, 2) = TextBox2.Value
    .Cells(5, 3) = TextBox3.Value
    .Cells(5, 4) = TextBox4.Value
    .Cells(5, 5) = TextBox5.Value
    .Cells(5, 6) = TextBox6.Value
    .Cells(8, 5) = TextBox7.Value
    .Cells(9, 5) = TextBox8.Value
    .Cells(10, 5) = TextBox9.Value
    .Cells(11, 5) = TextBox10.Value
    .Cells(15, 6) = TextBox11.Value
    .Cells(16, 6) = TextBox12.Value
    .Cells(17, 6) = TextBox13.Value
    .Cells(18, 6) = TextBox14.Value
    .Cells(19, 6) = TextBox15.Value
End With
Unload Me
'
End Sub

A+

Maurice

Car en faites je souhaite pas que le tableau comparatif soit visible avant que le "formulaire" soit rempli.

Donc la il s'affiche bien quand on clique sur valider et se "cache" quand on quitte.

j'ai trouver un début de code pour que excel se cache et voir uniquement le formulaire:

Dans le ThisWorkbook:

Option Explicit

Private Sub Workbook_Open()

Application.WindowState = xlMinimized

Application.Visible = False

UserForm1.Show 0

End Sub

Mais si je met ce code:

Option Explicit

Private Sub Workbook_Open()

Application.WindowState = xlMaximized

Application.Visible = True

UserForm1.Show 0

End Sub sur Private Sub CommandButton2_Click()

Ca va fonctionner?

Comprend toujours pas pourquoi rendre visible

Sheets("Tableau comparatif").Visible = True

pour après le rendre invisible

çà sert à quoi ?

Bonjour,

A rien ! bien sur. De même que le Application ....Minimized et Maximized ce ne sont que des gamineries de débutants et surtout des sources d'emm... ultérieurement ! Mébon... Faut bien que jeunesse se passe...

A+

Comprend toujours pas pourquoi rendre visible

Sheets("Tableau comparatif").Visible = True

pour après le rendre invisible

çà sert à quoi ?

Bonjour,

A rien ! bien sur. De même que le Application ....Minimized et Maximized et c'est des gamineries de débutants et surtout des sources d'emm... ultérieurement ! Mébon... Faut bien que jeunesse se passe...

Bon en l'absence du fichier de toute façon...

A+

Il y est le fichier mais tu n'as pas du revenir à la page précédente lol

Exact ! mais on ne sait rien des conditions réelle d'environnement.

Là notre ami nous a brodé un petit Workbook_Open, mais compte tenu du nombre de feuilles du classeur , il doit surement y avoir un environnement plus complexe, UserForm ou Feuille d'Acceuil... Bon moi j'suis pas devin je ne m'attarderai donc pas plus. Ce qui est certain c'est que un simple With Sheets("blabla") serait bien suffisant avec une feuille masquée. Pas besoin de se compliquer la vie.

Après faut voir l'expertise des opérateurs : Si tout le classeur à été fait de briques et de brocs, c'est un peu différent si l'ensemble constitue un projet cohérent...

Mais on ne sait pas si notre ami est l'auteur du projet ou s'il reprend un truc qui le dépasse un peu, bon...

A+

Comprend toujours pas pourquoi rendre visible

Sheets("Tableau comparatif").Visible = True

pour après le rendre invisible

çà sert à quoi ?

Bonjour,

A rien ! bien sur. De même que le Application ....Minimized et Maximized ce ne sont que des gamineries de débutants et surtout des sources d'emm... ultérieurement ! Mébon... Faut bien que jeunesse se passe...

A+

J'ai actuellement peut être 5h de lecture et d'essai sur VBA, donc oui c'est des gamineries de débutant, Excuse moi de débuter on a pas tous la chance de naître avec le langage VBA

Exact ! mais on ne sait rien des conditions réelle d'environnement.

Là notre ami nous a brodé un petit Workbook_Open, mais compte tenu du nombre de feuilles du classeur , il doit surement y avoir un environnement plus complexe, UserForm ou Feuille d'Acceuil... Bon moi j'suis pas devin je ne m'attarderai donc pas plus. Ce qui est certain c'est que un simple With Sheets("blabla") serait bien suffisant avec une feuille masquée. Pas besoin de se compliquer la vie.

Après faut voir l'expertise des opérateurs : Si tout le classeur à été fait de briques et de brocs, c'est un peu différent si l'ensemble constitue un projet cohérent...

Mais on ne sait pas si notre ami est l'auteur du projet ou s'il reprend un truc qui le dépasse un peu, bon...

A+

Et oui je suis bien l'auteur du projet... je suis gestionnaire de paie et je souhaite créer un mini formulaire qui calcul automatiquement les différents maintien de salaire, alors oui peut être que même mes feuilles de calcul comportent des erreurs,

Mais je m'en fout le résultat est là et je suis fier de moi car il a peut être tous les défauts possible pour un vrai programmateur mais en fouillant et en se démerdant comme j'ai pu j'ai obtenu le résultat escompté.

Oui, oui, je ne voulait pas être blessant : Etre débutant n'est pas une tare, mais il faut être conscient que l'à peu près et les expédients piochés à droite ou à gauche ne font jamais bon ménage très longtemps...

On a donc intérêt à chercher le meilleur... de ce que l'on est capable de comprendre.

Il y a des choses qui demandent des années de pratiques pour les digérer. Et d'autres qu'on peut mettre en place rapidement...

Bon je ne donne qu'une opinion. C'est pas un jugement !

Libre à toi d'en tenir compte ou non.

A+

Rechercher des sujets similaires à "userform remplir tableau"