Bouton formulaire saisie de données

Bonjour,

Je voudrai créer un formulaire pour saisir des données dans mon fichier joint.

Je voudrai rentrer une donnée numérique dans une cellule en pouvant choisir une différente colonne et ligne (date) dans différents onglets (total 6 onglets, 2 dans le fichier joint).

En gros dans le formulaire je choisi une des colonnes des 6 onglets, je choisi la date et je rentre la donnée.

Sans forcément me donner tout le code (même si ça m'aiderait beaucoup vu mon niveau vba...), comment faire???

Merci beaucoup d'avance, vous me sauverez la vie !

(Question bonus, est-ce qu'il serait possible de faire fonctionner ce formulaire/bouton sur une feuille protégée?)

11test.zip (1.00 Mo)

Bonjour Bastien88

Dans ton USF il faut que tu mettes des combobox et un Textbox

1 Combobox pour le choix de l'onglet
1 Combobox pour le choix de la colonne de l'onglet choisi
1 Combobox pour choisir la date
1 Texbox pour saisir la donnée

Tu trouveras des tutos pour alimenter tes combobox

@+

Bonjour Bruno,

Merci pour ton aide. Je pense pouvoir faire les combobox mais qu'en est-il pour rentrer la donnée dans la case choisie? Enfin comment faire appel aux informations des combobox? C'est ce lien qui me pose un peu problème..

Bonjour bastien88, bonjour BrunoM45,

Ci-joint, un fichier avec un exemple de formulaire et comment récupérer les différentes infos comme le suggère BrunoM45.

A tester et à modifier selon le besoin.

Par contre, la saisie d'information dans les colonnes vont faire "sauter" les formules.

24bastien88.zip (1.00 Mo)

Bonjour IronBoule,

Merci infiniment pour ton aide, j'ai du coup adapté un peu mon code que j'ai travaillé entre temps et j'ai une petite question pour la partie où je récupère la colonne.

Je voudrai ressortir le nom de la colonne dans le combobox pour la lecture.. Voici mon code avec Combobox1= onglet et combobox2= colonne (j'ai défusionné les noms de colonnes), j'ai rien qui apparait dans le combobox2...:

Private Sub UserForm_Initialize()
Dim I As Long
Me.ComboBox1.Clear
For I = 7 To Sheets.Count
Me.ComboBox1.AddItem Sheets(I).Name
Next
Me.ComboBox1.Value = ActiveSheet.Name

Me.ComboBox2.Clear

Dim j As Integer
Dim puits As String

j = 3

Do While puits <> ""
puits = Worksheets(Me.ComboBox1.Text).Cells(1, j).Value
Me.ComboBox2.AddItem puits
j = j + 3

Loop

End Sub

Edit modo : merci de mettre le code en balises grâce au bouton </>

Pour cet ComboBox, c'est normal que rien ne s'affiche car tu définis la variable "puits" après le

Do While puits

Donc la variable "puits" à ce moment est vide, de ce fait, la boucle quitte directement.

Il faudrait donc sortir la variable mais ça provoquera une erreur dans la boucle. Je ferais plutôt comme cela :

j = 3

Do While Worksheets(Me.ComboBox1.Text).Cells(1, j).Value <> ""
     Me.ComboBox2.AddItem Worksheets(Me.ComboBox1.Text).Cells(1, j).Value
     j = j + 3
Loop

Effectivement ça fonctionne mieux, par contre ça ne m'affiche que les colonnes de la feuille où est l'userform et pas la feuille sélectionnée dans le ComboBox1

Bonjour bastien88,

Tu peux mettre ton fichier à disposition avec ton code pour que je puisse voir le problème ?

J'ai réussi à résoudre le problème, voilà le résultat ci-dessous si ça peut aider. Me reste juste la saisie de la donnée dans la bonne cellule correspondant à la feuille, colonne et date(ligne) choisie...

Private Sub ComboBox1_Change()
Me.ComboBox2.Clear
Dim j As Integer
Dim puits As String
Dim feuille As Worksheet

Set ws = ThisWorkbook.Worksheets(UserForm1.ComboBox1.Text)
j = 3

Do While ws.Cells(1, j).Value <> ""
     Me.ComboBox2.AddItem ws.Cells(1, j).Value
     j = j + 3
Loop
End Sub

Private Sub UserForm_Initialize()
    Dim I As Long
    Me.ComboBox1.Clear
    Me.ComboBox2.Clear

    For I = 7 To Sheets.Count
        Me.ComboBox1.AddItem Sheets(I).Name
    Next
    Me.ComboBox1.Value = ActiveSheet.Name

End Sub
Rechercher des sujets similaires à "bouton formulaire saisie donnees"