Microsoft 365 Copier/Coller les saisies TextBox sur une feuille Excel

Arthur EXL

XLDnaute Nouveau
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 ?

Merci par avance pour toute pistes.
Voici mon fichier actuel.

Arthur EXL
 

Pièces jointes

  • Classeur1.xlsm
    26.8 KB · Affichages: 16
Dernière édition:

Arthur EXL

XLDnaute Nouveau
Re,

Alors j'ai trouvé comment récupérer les données des TextBox et les coller dans la feuille "Données" :
VB:
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
Ma question 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 pour tout aide...
 

herve62

XLDnaute Barbatruc
Supporter XLD
Bonjour
Voici un début de solution .... tu aurais cherché un peu tu aurais trouvé
Sinon je te laisse le soin de copier/coller la sub des "keypress" de chaque textbox , j'en ai fait 2 !!

edit : Pour moi il faudrait redimensionner l'USF et tous les objets .. trop grand alors qu'en plus la police des textbox est toute petite
 

Pièces jointes

  • USF_num.xlsm
    32.5 KB · Affichages: 3

Arthur EXL

XLDnaute Nouveau
Bonjour à toi,

Merci pour ta solution !
J'ai trouvé pas mal d'informations depuis mon message de ce matin... Voici le code si ca peu aider ;
VB:
Private Sub VALITATION_Click()

'Gérer les copier/coller TextBox vers Cellules "Données"
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, 22) = Now
        .Cells(LR, 23) = (TextJableMoy01 * 1 + TextJableMoy02 * 1) / 2
        .Cells(LR, 24) = (TextTLMoy01 * 1 + TextTLMoy02 * 1) / 2
        .Cells(LR, 25) = (TextEpauleMoy01 * 1 + TextEpauleMoy02 * 1) / 2

    End With
    MsgBox "Export terminé", vbInformation
End If

End Sub
Il permet donc d'afficher les valeurs saisies, mais également d'autoriser uniquement la saisie numérique.
Il permet également de calculer et d'afficher une moyenne entre deux valeurs.

Merci encore pour ta réponse,
Cordialement.
 

Discussions similaires