Copier/Coller les saisies TextBox sur une feuille Excel

Bonjour à tous,

Je recherche à faire un fichier de saisie de donnée, pour que les données saisies à l'aide d'une interface UserForm soient collées dans une feuille du fichier Excel.
Cette action se produira après pression sur le bouton "Validation". La date de saisit doit aussi apparaître sur la feuille au niveau de la ligne.
Et à chaque saisie, il faudrait que si on refait une saisie par la suite, elle soit collée en dessous de la ligne précédente (j'espère être suffisamment précis)
Il faudrait également que lorsque l'on presse sur "Validation", un message de confirmation apparaisse. Un message d'erreur si une cellule n'est pas remplie.

Pouvez-vous m'apporter votre aide ?

Pour le moment j'ai réussi à coller les valeurs rentrées :

Private Sub VALITATION_Click()

Sheets("Données").Range("A5").Value = TextJableMax01
Sheets("Données").Range("B5").Value = TextJableMoy01
Sheets("Données").Range("C5").Value = TextJableMin01
Sheets("Données").Range("D5").Value = TextTLMax01
Sheets("Données").Range("E5").Value = TextTLMoy01
Sheets("Données").Range("F5").Value = TextTLMin01
Sheets("Données").Range("G5").Value = TextEpauleMax01
Sheets("Données").Range("H5").Value = TextEpauleMoy01
Sheets("Données").Range("I5").Value = TextEpauleMin01
Sheets("Données").Range("J5").Value = TextJableMax02
Sheets("Données").Range("K5").Value = TextJableMoy02
Sheets("Données").Range("L5").Value = TextJableMin02
Sheets("Données").Range("M5").Value = TextTLMax02
Sheets("Données").Range("N5").Value = TextTLMoy02
Sheets("Données").Range("O5").Value = TextTLMin02
Sheets("Données").Range("P5").Value = TextEpauleMax02
Sheets("Données").Range("Q5").Value = TextEpauleMoy02
Sheets("Données").Range("R5").Value = TextEpauleMin02

End Sub

Mais du coup maintenant c'est comment je peux faire en sorte que quand je clique sur le bouton "VALIDATION", ca contrôle que la saisie est bien numérique uniquement, comment ca peut effacer la contenu des textbox si la saisie est correcte (pour pouvoir saisir de nouveau), et comment la prochaine saisie pourra s'afficher sur la ligne suivante ? (ex A6)

Merci par avance pour toute pistes...

23classeur1.xlsm (36.32 Ko)

Voici mon fichier actuel.

Arthur EXL

Bonjour,

Un test où l'on vérifie le type du contrôle, sa valeur et le cas échéant on fait passez OK à FAUX, et on vide la textbox. OK conditionne la poursuite ou non de la procédure :

Private Sub VALITATION_Click()
Dim OK As Boolean, TB As Variant, LR&
OK = True
For Each TB In Me.Controls
    If TypeOf TB Is MSForms.TextBox And Not IsNumeric(TB) Then
        OK = False
        TB.Value = ""
    End If
Next TB
If OK = False Then
    MsgBox "Merci de renseigner des valeurs numérique dans les champs vides", vbCritical
    Else
    With Worksheets("Données")
        LR = .Cells(.Rows.Count, 3).End(xlUp).Row + 1
        .Cells(LR, 3) = Now
        .Cells(LR, 4) = TextJableMax01
        .Cells(LR, 5) = TextJableMoy01
        .Cells(LR, 6) = TextJableMin01
        .Cells(LR, 7) = TextTLMax01
        .Cells(LR, 8) = TextTLMoy01
        .Cells(LR, 9) = TextTLMin01
        .Cells(LR, 10) = TextEpauleMax01
        .Cells(LR, 11) = TextEpauleMoy01
        .Cells(LR, 12) = TextEpauleMin01
        .Cells(LR, 13) = TextJableMax02
        .Cells(LR, 14) = TextJableMoy02
        .Cells(LR, 15) = TextJableMin02
        .Cells(LR, 16) = TextTLMax02
        .Cells(LR, 17) = TextTLMoy02
        .Cells(LR, 18) = TextTLMin02
        .Cells(LR, 19) = TextEpauleMax02
        .Cells(LR, 20) = TextEpauleMoy02
        .Cells(LR, 21) = TextEpauleMin02
    End With
    MsgBox "Export terminé", vbInformation
End If
End Sub

Cdlt,

Edit : @Dan, laisse ton message ! J'aime voir les autres façon de faire, la même n'étant pas très académique, j'aurai aimé passé via une boucle pour le transfert des données via le TabIndex ..

Edit Dan :

désolé. J'ai posté sans vérifier si quelqu'un avait posté.

je vous laisse avec Ergotamine

Bonjour,

Incroyable Ergotamine, je pensais pas que le code pouvait être autant condensé, un grand merci c'est exactement ca que je cherchais !

J'aurai surement d'autres questions pour développer ce fichier jusqu'au bout, je vais surement créer de nouveaux postes...

Encore merci :)

Merci également à vous Dan, vous aviez surement également une bonne réponse

J'ai finalement une autre question sur ce sujet... Est-ce que je dois rouvrir un sujet ?

Re,

Si cela reste sur le même sujet, bah vous pouvez rester sur ce fil

Crdlt

Très bien,

Je voudrais profiter d'afficher les valeurs saisies pour effectuer un calcul qui s'affichera lui-même dans une cellule de la même ligne.

Je m'explique :

image

Des colonnes C à U (même jusqu'à V), ce sont les valeurs que l'on rentre dans les textbox... Mais, dans les colonnes W X et Y, je souhaiterai effectuer un calcul.

Le calcul c'est la moyenne entre le Jable MOY 01 et le Jable MOY 02 ( =(E3+N3)/2) par exemple).

image

J'ai essayé ça mais ça ne fonctionne évidemment pas...

Des idées ?

Merci !

Bonjour,

Dans l'idée, reservez vous de vos textbox. De plus, si vous y prêtez attention, vos valeurs dans votre feuille sont en format texte et non numérique, vous ne pourrez pas faire de calcul dedans. Ne sachant de quel type seront vos valeurs (décimaux, virgules, etc ...) le code suivant devrait faire l'affaire :

Private Sub VALITATION_Click()
Dim OK As Boolean, TB As Variant, LR&
OK = True
For Each TB In Me.Controls
    If TypeOf TB Is MSForms.TextBox And Not IsNumeric(TB) Then
        OK = False
        TB.Value = ""
    End If
Next TB
If OK = False Then
    MsgBox "Merci de renseigner des valeurs numérique dans les champs vides", vbCritical
    Else
    With Worksheets("Données")
        LR = .Cells(.Rows.Count, 3).End(xlUp).Row + 1
        .Cells(LR, 3) = Now
        .Cells(LR, 4) = TextJableMax01 * 1
        .Cells(LR, 5) = TextJableMoy01 * 1
        .Cells(LR, 6) = TextJableMin01 * 1
        .Cells(LR, 7) = TextTLMax01 * 1
        .Cells(LR, 8) = TextTLMoy01 * 1
        .Cells(LR, 9) = TextTLMin01 * 1
        .Cells(LR, 10) = TextEpauleMax01 * 1
        .Cells(LR, 11) = TextEpauleMoy01 * 1
        .Cells(LR, 12) = TextEpauleMin01 * 1
        .Cells(LR, 13) = TextJableMax02 * 1
        .Cells(LR, 14) = TextJableMoy02 * 1
        .Cells(LR, 15) = TextJableMin02 * 1
        .Cells(LR, 16) = TextTLMax02 * 1
        .Cells(LR, 17) = TextTLMoy02 * 1
        .Cells(LR, 18) = TextTLMin02 * 1
        .Cells(LR, 19) = TextEpauleMax02 * 1
        .Cells(LR, 20) = TextEpauleMoy02 * 1
        .Cells(LR, 21) = TextEpauleMin02 * 1
        .Cells(LR, 23) = (TextJableMoy01 * 1 + TextJableMoy02 * 1) / 2
    End With
    MsgBox "Export terminé", vbInformation
End If
End Sub

Cdlt,

Bonjour,

Merci pour votre réponse !

C'est parfait :)

Rechercher des sujets similaires à "copier coller saisies textbox feuille"