VBA excel formulaire de saisie - aide
Résolu
Alexandre613
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
je suis débutant en VBA excel, et j'ai construis un formulaire de saisie (userform).
Malheureusement je n'arrive pas à le finaliser... il me manque :
a/
le numéro de transaction (TRANID) ne change pas lorsque j'appuie sur OK
mais uniquement lorsque je ferme le formulaire et l'ouvre à nouveau.
b/
pour le champs du numéro d'opération, la date et les commentaires (OPSID,DDID,COMMENTS) je souhaiterais
avoir par défaut la dernière valeur utilisée dans ce champs.
merci pour votre aide
Alex
==========
Private Sub UserForm()
End Sub
Private Sub UserForm_Show()
End Sub
Private Sub USERID_Change()
End Sub
Private Sub Label1_Click()
End Sub
Private Sub Label6_Click()
End Sub
Private Sub TRANID_Change()
End Sub
Private Sub OPSID_Change()
End Sub
Private Sub BKID1_Change()
End Sub
Private Sub QTID_Change()
End Sub
Private Sub INVESTID_Change()
End Sub
Private Sub DDID_Change()
End Sub
Private Sub COID_Change()
End Sub
Private Sub COMMENTS_Change()
End Sub
Private Sub OKBUTTON_Click()
Dim NextLine As Long
' Vérification que la feuille est active
Sheets("Database").Activate
' Vérification que la saisie du numéro de transaction à été faite
If TRANID.Text = "" Then
MsgBox "Please enter a transaction number to validate your record!"
Exit Sub
End If
' Vérification que la saisie du numéro est inférieure à 50'000
If TRANID.Text > 50000 Then
MsgBox "LESS THAN 50'000 INPUTS PER DATABASE!"
Exit Sub
End If
' Détermination de la ligne suivante
NextLine = Application.WorksheetFunction. _
CountA(Range("A:A")) + 1
' Transfert de l'identifiant
If OptionButton1 Then Cells(NextLine, 1) = "Alex"
If OptionButton2 Then Cells(NextLine, 1) = "Raquel"
If OptionButton3 Then Cells(NextLine, 1) = "Chloé"
' Transfert du numéro de transaction
Cells(NextLine, 2) = TRANID.Text
' Transfert du numéro d'opération
Cells(NextLine, 3) = OPSID.Text
' Transfert du nom du bookmaker
Cells(NextLine, 4) = BKID1.Text
' Transfert de la quote
Cells(NextLine, 5) = QTID.Text
' Transfert du montant investit
Cells(NextLine, 6) = INVESTID.Text
' Transfert de la date du contrat
DDID.Value = CDate(Format(Now, "dd mm yy"))
Cells(NextLine, 7) = DDID.Text
' Transfert de la date de saisie
COID.Value = CDate(Format(Now, "dd mmmm yyyy h:mm:ss"))
Cells(NextLine, 8) = COID.Text
' Transfert du commentaire
Cells(NextLine, 9) = COMMENTS.Text
End Sub
Private Sub UserForm_Initialize()
' Réinitialisation pour la prochaine saisie
OptionButton1 = True
OPSID.Text = ""
TRANID.Text = Application.WorksheetFunction.CountA(Range("A:A")) + 5
BKID1.Text = "188 bet"
QTID.Text = ""
INVESTID.Text = ""
COMMENTS.Text = ""
OPSID.SetFocus
DDID.Text = Format("")
COID.Text = Format(Now(), "dd mmmm yyyy h:mm:ss")
' Remplissage de la zone de liste des bookmakers
With BKID1
.AddItem "188 bet"
.AddItem "5 Dimes"
.AddItem "888 Sport"
End With
End Sub
je suis débutant en VBA excel, et j'ai construis un formulaire de saisie (userform).
Malheureusement je n'arrive pas à le finaliser... il me manque :
a/
le numéro de transaction (TRANID) ne change pas lorsque j'appuie sur OK
mais uniquement lorsque je ferme le formulaire et l'ouvre à nouveau.
b/
pour le champs du numéro d'opération, la date et les commentaires (OPSID,DDID,COMMENTS) je souhaiterais
avoir par défaut la dernière valeur utilisée dans ce champs.
merci pour votre aide
Alex
==========
Private Sub UserForm()
End Sub
Private Sub UserForm_Show()
End Sub
Private Sub USERID_Change()
End Sub
Private Sub Label1_Click()
End Sub
Private Sub Label6_Click()
End Sub
Private Sub TRANID_Change()
End Sub
Private Sub OPSID_Change()
End Sub
Private Sub BKID1_Change()
End Sub
Private Sub QTID_Change()
End Sub
Private Sub INVESTID_Change()
End Sub
Private Sub DDID_Change()
End Sub
Private Sub COID_Change()
End Sub
Private Sub COMMENTS_Change()
End Sub
Private Sub OKBUTTON_Click()
Dim NextLine As Long
' Vérification que la feuille est active
Sheets("Database").Activate
' Vérification que la saisie du numéro de transaction à été faite
If TRANID.Text = "" Then
MsgBox "Please enter a transaction number to validate your record!"
Exit Sub
End If
' Vérification que la saisie du numéro est inférieure à 50'000
If TRANID.Text > 50000 Then
MsgBox "LESS THAN 50'000 INPUTS PER DATABASE!"
Exit Sub
End If
' Détermination de la ligne suivante
NextLine = Application.WorksheetFunction. _
CountA(Range("A:A")) + 1
' Transfert de l'identifiant
If OptionButton1 Then Cells(NextLine, 1) = "Alex"
If OptionButton2 Then Cells(NextLine, 1) = "Raquel"
If OptionButton3 Then Cells(NextLine, 1) = "Chloé"
' Transfert du numéro de transaction
Cells(NextLine, 2) = TRANID.Text
' Transfert du numéro d'opération
Cells(NextLine, 3) = OPSID.Text
' Transfert du nom du bookmaker
Cells(NextLine, 4) = BKID1.Text
' Transfert de la quote
Cells(NextLine, 5) = QTID.Text
' Transfert du montant investit
Cells(NextLine, 6) = INVESTID.Text
' Transfert de la date du contrat
DDID.Value = CDate(Format(Now, "dd mm yy"))
Cells(NextLine, 7) = DDID.Text
' Transfert de la date de saisie
COID.Value = CDate(Format(Now, "dd mmmm yyyy h:mm:ss"))
Cells(NextLine, 8) = COID.Text
' Transfert du commentaire
Cells(NextLine, 9) = COMMENTS.Text
End Sub
Private Sub UserForm_Initialize()
' Réinitialisation pour la prochaine saisie
OptionButton1 = True
OPSID.Text = ""
TRANID.Text = Application.WorksheetFunction.CountA(Range("A:A")) + 5
BKID1.Text = "188 bet"
QTID.Text = ""
INVESTID.Text = ""
COMMENTS.Text = ""
OPSID.SetFocus
DDID.Text = Format("")
COID.Text = Format(Now(), "dd mmmm yyyy h:mm:ss")
' Remplissage de la zone de liste des bookmakers
With BKID1
.AddItem "188 bet"
.AddItem "5 Dimes"
.AddItem "888 Sport"
End With
End Sub
A voir également:
- Code vba formulaire de saisie excel
- Whatsapp formulaire opposition - Guide
- Code ascii - Guide
- Liste déroulante excel - Guide
- Formulaire de réclamation facebook - Guide
- Word et excel gratuit - Guide
3 réponses
a/
le numéro de transaction (TRANID) ne change pas lorsque j'appuie sur OK
mais uniquement lorsque je ferme le formulaire et l'ouvre à nouveau.
Applique le code que tu appliques dans ta procédure UserForm_Initialize() pour récupérer le TRANID et applique la dans ta procédure OKBUTTON_Click() après que tu aies remplis les champs dans ta feuille.
b/
pour le champs du numéro d'opération, la date et les commentaires (OPSID,DDID,COMMENTS) je souhaiterais
avoir par défaut la dernière valeur utilisée dans ce champs.
Il suffit de récupérer les valeurs de la dernière ligne du tableau excel
le numéro de transaction (TRANID) ne change pas lorsque j'appuie sur OK
mais uniquement lorsque je ferme le formulaire et l'ouvre à nouveau.
Applique le code que tu appliques dans ta procédure UserForm_Initialize() pour récupérer le TRANID et applique la dans ta procédure OKBUTTON_Click() après que tu aies remplis les champs dans ta feuille.
TRANID.Text = Application.WorksheetFunction.CountA(Range("A:A")) + 5
b/
pour le champs du numéro d'opération, la date et les commentaires (OPSID,DDID,COMMENTS) je souhaiterais
avoir par défaut la dernière valeur utilisée dans ce champs.
Il suffit de récupérer les valeurs de la dernière ligne du tableau excel
b/ comment je récupère les données de la ligne précédente?
merci
Alex
Tu récupères le contenu en faisant Cells(NextLine-1,x).Value
OPSID.Text = Cells(NextLine - 1, x).Value
NextLine = Application.WorksheetFunction. _
CountA(Range("A:A")) + 1
?
Et remplacé x par la colonne qui correspond ?