Dear ladies and gentlemen,
First of all, English is not my native speach, but I will try to make sense.
I just started with VBA on Word and Excel and it's quite fun!
I'm trying to make a excelsheet with a userform. When the userform is filled in, a commandbutton (when clicked on) will put the text in the right row.
This is all for a complaint document for my work. So the complaint is now filled in Excel. That's all okay! But we as company want to send a letter to the costumer to send a compensation. And what a double work to insert all the data twice! In excel and word. So I thought there would be a way to make it easier.
When all the data is inserted in the userform and click on the commandbutton to put it in the Excelsheet, I want to simultaniously get the data in Word on specific places. I hope I make sense.
I sure want to learn something, and I'm quite new to this all. So please be patient with me, haha!
The code I have now is as followed:
Private Sub cmdBrief_Click()
If Me.txtAchternaam.Value = "" Then
MsgBox "Iedereen heeft een achternaam! Achternaam invullen!", vbCritical
Exit Sub
End If
If Me.txtAdres.Value = "" Then
MsgBox "Meeste mensen die bij de McDonald's komen hebben een adres! Adres invullen!", vbCritical
Exit Sub
End If
If Me.txtPostcode = "" Then
MsgBox "Als de gast een adres heeft, heeft deze ook een postcode en plaats! Postcode en plaats invullen!", vbCritical
Exit Sub
End If
If Me.txtDatum = "" Then
MsgBox "Als er een klacht is, dan is deze op een bepaalde datum binnengekomen! Datum invullen (DD-MM-JJJJ)!", vbCritical
Exit Sub
End If
If Me.cboMeneerMevrouw.Value = "" Then
MsgBox "Meneer of mevrouw? Zo moeilijk is dat niet. Graag aanklikken wat van toepassing is!", vbCritical
Exit Sub
End If
If Me.cboGStele.Value = "" Then
MsgBox "Gastenrelatie of telefonisch? Graag aanklikken wat van toepassing is!", vbCritical
Exit Sub
End If
If Me.txtVerkeerd = "" Then
MsgBox "Als er een klacht is, is er iets verkeerds gegaan! Graag opschrijven wat er verkeerd is gegaan!", vbCritical
Exit Sub
End If
If Me.cboVergoeding.Value = "" Then
MsgBox "Gasten die een klacht hebben, krijgen altijd van ons een vergoeding. Graag aanklikken uit de lijst welke van toepassing is!", vbCritical
Exit Sub
End If
If Me.txtManager.Value = "" Then
MsgBox "Diegene die dit invult, heeft ook een naam gekregen. Graag je eigen voornaam invullen!", vbCritical
Exit Sub
End If
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Klachten 2018")
Dim n As Long
n = sh.Range("A" & Application.Rows.Count).End(xlUp).Row
sh.Unprotect "1078"
sh.Range("A" & n + 1).Value = Me.txtDatum.Value
sh.Range("B" & n + 1).Value = Me.txtManager.Value
sh.Range("C" & n + 1).Value = Me.cboGStele.Value
sh.Range("D" & n + 1).Value = (Me.txtVoornaam + " " + Me.txtAchternaam)
sh.Range("E" & n + 1).Value = Me.txtAdres.Value
sh.Range("F" & n + 1).Value = Me.txtPostcode.Value
sh.Range("G" & n + 1).Value = Me.txtNummer.Value
sh.Range("H" & n + 1).Value = Me.txtVerkeerd.Value
sh.Range("I" & n + 1).Value = Me.cboVergoeding.Value
sh.Range("J" & n + 1).Value = Me.cboMeneerMevrouw.Value
sh.Protect "1078"
Me.txtVoornaam.Value = ""
Me.txtAchternaam.Value = ""
Me.txtPostcode.Value = ""
Me.txtAdres.Value = ""
Me.txtDatum.Value = ""
Me.txtVerkeerd.Value = ""
Me.txtManager.Value = ""
Me.txtNummer.Value = ""
Me.cboVergoeding.Value = ""
Me.cboMeneerMevrouw.Value = ""
Me.cboGStele.Value = ""
MsgBox "Nieuwe klacht is toegevoegd!", vbInformation
Unload Me
End Sub
Private Sub cmdCancel_Click()
Unload Me
End
End Sub
Private Sub cmdOngedaan_Click()
Me.txtVoornaam.Value = ""
Me.txtAchternaam.Value = ""
Me.txtPostcode.Value = ""
Me.txtAdres.Value = ""
Me.txtDatum.Value = ""
Me.txtVerkeerd.Value = ""
Me.txtManager.Value = ""
Me.txtNummer.Value = ""
Me.cboVergoeding.Value = ""
Me.cboMeneerMevrouw.Value = ""
Me.cboGStele.Value = ""
End Sub
Private Sub UserForm_Activate()
With Me.cboVergoeding
.Clear
.AddItem ""
.AddItem "1x McFlurry"
.AddItem "2x McFlurry"
.AddItem "1x medium menu"
.AddItem "2x medium menu"
.AddItem "1x burger naar keuze"
.AddItem "2x burger naar keuze"
End With
With Me.cboMeneerMevrouw
.Clear
.AddItem ""
.AddItem "Meneer"
.AddItem "Mevrouw"
End With
With Me.cboGStele
.Clear
.AddItem ""
.AddItem "Gastenrelaties"
.AddItem "Telefonisch"
.AddItem "Overig"
End With
End Sub
userform.jpg
This is how the userform looks like.
Kind regards,
Cees