Excel Userform transfert des données

Résolu/Fermé
elvibro Messages postés 3 Date d'inscription mardi 8 décembre 2009 Statut Membre Dernière intervention 9 décembre 2009 - 8 déc. 2009 à 21:48
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 9 déc. 2009 à 18:44
Bonsoir à tous,

Afin d'optimiser la saisie d'un tableau sous Excel (150 dates dans la première colonne puis 25 thèmes en entête), je me suis lancer dans la conception d'un userform tout simple.

Ce dernier est composé d'une combobox, où l'utilisateur doit choisir une date, de plusieurs textbox et d'un bouton de validation.

Je souhaiterai donc qu'en fonction de la date de la combobox les données des textbox se reportent sur la feuille de calcul en face de la bonne date.

Si vous pouvez me donner quelques info. cela serai top (car même si google est mon ami je n'ai pas trouvé mon bonheur!!)
A voir également:

3 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 704
9 déc. 2009 à 00:17
bonjour

Tu peux faire quelque chose comme ceci :
Dim lig As Long
Do
lig = lig + 1
Loop Until Cells(lig, 1).Value = CDate( Me.ComboBox1.Value) Or Cells(lig, 1).Value = ""
If Cells(lig, 1).Value <> CDate(ComboBox1.Value) Then
    MsgBox "Date absente"
    Exit Sub
End If
Cells(lig, 2).Value = Me.TextBox1.Value
Cells(lig, 3).Value = Me.TextBox2.Value

Ceci recherche ta date en colonne A
Si non trouvé message erreur
Sinon TextBox1 en colonne B et TextBox2 en colonne C
1
Bonjour,

Merci beaucoup pour ta réponse, ça marche nickel.

Bonne journée
0
elvibro Messages postés 3 Date d'inscription mardi 8 décembre 2009 Statut Membre Dernière intervention 9 décembre 2009
9 déc. 2009 à 15:02
Je me suis un peu emballé, si les dates sont listées à partir de la cellule "d3" sur un feuille nommé "data" et en adaptant le code comme cela :

Private Sub CommandButton1_Click()
Dim lig As Long
Do
lig = lig + 1

Loop Until Cells(lig, 4).Value = CDate(Me.ComboBoxdate1.Value) Or Cells(lig, 4).Value = ""
If Cells(lig, 4).Value <> CDate(ComboBoxdate1.Value) Then
MsgBox "Veuillez renseigner la date"
Exit Sub
End If
Cells(lig, 5).Value = Me.Txtfspopt.Value
Cells(lig, 6).Value = Me.Txtfspdent1.Value

End Sub


le message d'erreur apparait même si la date est bien renseigné dans la combobox et du coup je n'ai pas de report.
0
elvibro Messages postés 3 Date d'inscription mardi 8 décembre 2009 Statut Membre Dernière intervention 9 décembre 2009
9 déc. 2009 à 17:46
En supprimant Or Cells(lig, 4).Value = "" cela fonctionne.

Salut
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 704
9 déc. 2009 à 18:44
bonjour

Si tu enlèves cela et que la date ne soit pas trouvée, cela ne fonctionnera plus : tu vas partir en boucle.

Essaies plutôt de remettre le "Me." sur le test que j'avais oublié.
0