Saisie textbox dans tableau VBA excel

Franckyh1 - Modifié par Franckyh1 le 30/03/2014 à 20:54
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 31 mars 2014 à 00:23
Coucou,

j'y suis presque :

Il ne me manque plus qu'un conseil...

J'arrive à récupérer les données dans les textbox quand j'utilise ma combobox....

En revanche, si je change une donnée, ça la change dans la ligne suivante sélectionné dans la combobox...
C'est parce que j'ai mis ma formule dans combobox click()

Avez vous une idée pour changer cela et remettre à jour dès le changement?


http://www.excel-downloads.com/forum/attachments/forum-excel/302821d1396204838-saisie-de-donnees-servicevierge4.xls

7 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
30 mars 2014 à 21:29
Bonjour.
Utilise CHANGE a la place de CLICK
0
Merci mais j'ai toujours la même problèmatique.
Il ne remplit mon tableau de manière cohérente.

Mon souhait c'est:
choisir le numéro de chambre
remplir les cases qui renseigne le tableau
passer à la suivante

si je reviens sur une complété précédemment mon userform reprends les infos.

Je ne sais pas si c'est possible? Un peu comme dans le formulaire intégré de excel.
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
30 mars 2014 à 22:47
Bonjour,

Rare sont les personnes qui téléchargeront ton fichier excel... surtout sans plus d'explications concernant le souci rencontré.

Sur ce forum, il est préférable (plutot que de mettre un fichier à telecharger) d'expliquer correctement et en détail le problème rencontré.

Je t'invite donc :
1 - A nous mettre ici le code que tu utilises et qui te poses problème
2 - A expliquer clairement et en détail ce qui ne fonctionne pas.

Afin de correctement poser ta(tes) question(s) je t'invite également à consulter les liens suivants :
balises-code
charte CS
0
Merci à toi,

Je souhaite créer un formulaire qui me permet de rentrer des commandes de repas (textbox) en fonction de la chambre choisi par une combobox.

J'ai indiqué le code suivant :
Private Sub ComboBox1_Change()
Dim i As Byte
Dim li As Byte

li = Me.ComboBox1.ListIndex + 3
For i = 1 To 39
Sheets("Saisie").Cells(li, i + 2).Value = Me.Controls("Textbox" & i).Value
Me.Controls("Label" & i).Caption = Sheets("Saisie").Cells(2, i + 2).Value
Next i

End Sub

Or, j'ai deux problématique :
1- mes chiffres ne se reportent pas directement dans le tableau.
2- quand je change de chambre, ma saisie pour la chambre que j'avais sélectionné se reporte dans la nouvelle... (c'est comme si j'avais un retard).

Je cherche juste à reproduire le fonctionnement du formulaire intégré d'Excel que l'on peut démarré par données -> formulaire.

Pouvez vous m'aider?

Merci
0

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

Posez votre question
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
30 mars 2014 à 23:43
J'ai encore un peu de mal à comprendre ce qui pose problème (désolé..).

Bon... même si je n'aime pas ça.. j'ai téléchargé ton fichier pour essayer de comprendre...
Ton souci.. si j'ai bien compris c'est :
1 - Tu selectionne une chambre via ton combobox.
2 - Tu saisies des données dans les inputbox (qui se trouvent en dessous)
3 - Tu veux que ces valeurs se répercutent sur ta feuille excel.

Si c'est bien ça.. c'est normal que ça ne fonctionne pas.
Là.. avec le code que tu as mis.. le remplissage de ta feuille se déclenche lorsque tu modifie la valeur de ta comobox..et non lors de la saisie dans les input.

Il faut que tu code, pour chaque input, le fait d'aller remplir ta feuille lorsque sa valeur change :
Private Function setValueCol(numTextBox As Integer)
' récuperation numero de la chambre
  li = Me.ComboBox1.ListIndex + 3
  If Me.ComboBox1.ListIndex > 0 Then
    'copie de la valeur dans la feuille excel
    Sheets("Saisie").Cells(li, numTextBox + 2).Value = Me.Controls("TextBox" & numTextBox)
  Else
    MsgBox "Merci de choisir une chambre"
  End If

End Function

Private Sub TextBox1_Change()
    setValueCol (1)
End Sub
Private Sub TextBox2_Change()
    setValueCol (2)
End Sub

' Etc...



0
Ok ça marche.

J'ai un dernier soucis, deux façons de le remarquer :
- si je change de chambre les textbox reste renseigner de la même façon.
- si je reviens sur une chambre renseignée, je ne retrouve pas les données.

Pouvez vous me donner un dernier coup de pouce?

Merci pour ton investissement, Jordane.
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
Modifié par jordane45 le 31/03/2014 à 00:26
( A savoir que normalement.. sur ce forum... on ne doit poser qu' UNE seule question par discussion).

Mais bon.. faisons une petite exception...
Donc :
si je change de chambre les textbox restent renseignées de la même façon.
C'est normal que tes textbox conservent les valeurs précédemment renseignées....
Si tu veux les remettre à zéro.. il te faux coder quelque chose pour le faire...
Eventuellement.. dans le code de ta combobox_change .. tu ajoutes une boucles sur tes différents input qui remettent à vide tes différentes inputbox.

si je reviens sur une chambre renseignée, je ne retrouve pas les données
Tu ne les retrouves pas où ??
Dans les inputBox ?
Là encore c'est normal....puisque tu n'as rien coder pour le faire...
Là encore... dans ton combobox_change... tu peux coder quelque chose pour aller récupérer les valeurs de la ligne correspondante à ta chambre pour les mettre dans tes inputbox.

Voilou...

PS: n'oublie pas : Sur ce forum les gens ne coderont pas à ta place. C'est bien à toi de réaliser le code de ces deux fonctions (maintenant que je t'ai indiqué quoi faire... il ne te reste qu'à écrire les quelques lignes pour le réaliser).
0
Rejoignez-nous