Private Function findKontonavn(kontonr As Long) As String
Dim rng As Range
'finder ud af hvor kontonr. står
Set rng = Ark2.Range("A:A").Find(What:=kontonr, lookat:=xlWhole)
'Tjekker om der rent faktisk blev fundet noget
If Not rng Is Nothing Then
'Retunerer værdien fra cellen ved siden af (altså beskrivelsen)
findKontonavn = rng.Offset(0, 1).Value
Else
'Hvis der ikke bliver fundet noget
MsgBox "Der blev ikke fundet nogen konto, med kontonr " & kontonr, vbOKOnly + vbCritical, "Ingen konto fundet"
findKontonavn = vbNullString
Exit Function
End If
End Function
'Subroutinen hedder altid UserForm_Initialize uanset hvad du har navnet userformen :-)
Private Sub UserForm_Initialize()
Dim kontonr As Variant
'Tilføjer Kontonummerne til Comboxen. Tilføjer alle de kontonr. som står i arket kontoPlan
For Each kontonr In Ark2.Range("d2", Ark2.Range("d2").End(xlDown))
cmbKonto.AddItem kontonr
Next kontonr
'Sætter Standardteksterne
tbDato.Value = ""
tbTekst.Value = ""
tbUdgift.Value = ""
tbIndtaegt.Value = ""
tbloenindtaegt.Value = ""
tboverfoersel_mellem_konti.Value = ""
tbandenindtaegt.Value = ""
tbkost.Value = ""
tbapple.Value = ""
tbbyggemarkeder.Value = ""
tbtelefoni_og_rep.Value = ""
tbprofiloptik.Value = ""
tbtandlaege.Value = ""
tbplantecenter.Value = ""
tbmiljoefoder.Value = ""
tbkontant_haevninger.Value = ""
tbtv_og_aviser.Value = ""
tbauto_og_cykler.Value = ""
tbrenter_og_gebyr.Value = ""
tbmobilepay.Value = ""
tbtil_andre.Value = ""
tbbudget.Value = ""
tbtoej.Value = ""
tbmedicin.Value = ""
End Sub
Private Sub btnAfslut_Click()
'Afslutter UserFormen
Unload Me
End Sub
Private Sub cmbTilføj_Click()
Dim NuvarrendeMaksId As Integer
Dim NytId As Integer
Dim NyCelle As Range
'Aktiverer Hovedarket. "shHovedArk" er arkets kodenavn, som jeg har givet det. Det gør, at du kan ændre teksten/navnet på arket som brugeren ser uden at det påvirker koden. Smart :-)
' shHovedArk.Activate
'Lidt tjek af data inden vi fortsætter
If Not cmbKonto.ListIndex > -1 Then
MsgBox "Du skal vælge en konto", vbOKOnly + vbCritical, "Fejl"
Exit Sub
End If
If Not IsDate(tbDato.Value) Then
MsgBox "Du skal skrive en gyldig dato. Format: dd-mm-åååå", vbOKOnly + vbCritical, "Fejl"
Exit Sub
End If
If Not IsNumeric(tbIndtaegt.Value) Or Not IsNumeric(tbUdgift.Value) Then
MsgBox "Indtægter og udgifter skal være tal", vbOKOnly + vbCritical, "Fejl"
Exit Sub
End If
'Finder ud af hvad den nuværrende maksimale værdi af ID er.
NuvarrendeMaksId = WorksheetFunction.Max(Range("A:A"))
'Sætter det nye ID
NytId = NuvarrendeMaksId + 1
'Finder ud af hvad den næste frie celle er, hvor der skal stå ID.
Set NyCelle = Range("A9999").End(xlUp).Offset(1, 0)
'Skriver værdierne. Offset-Funktionen skal læses som. Tag cellen NyCelle, og gå 0-rækker til højre og hhv. 0,1,2,3,4,5 kolonner til højre.
NyCelle.Offset(0, 0).Value = NytId
NyCelle.Offset(0, 1).Value = tbfaktura.Value
NyCelle.Offset(0, 2).Value = cmbKonto.Value
NyCelle.Offset(0, 3).Value = tbDato.Value
NyCelle.Offset(0, 4).Value = tbTekst.Value
NyCelle.Offset(0, 5).Value = tbUdgift.Value
NyCelle.Offset(0, 6).Value = tbIndtaegt.Value
NyCelle.Offset(0, 8).Value = Textleverinsdato.Value
NyCelle.Offset(0, 9).Value = Textbestillingsbeløb.Value
NyCelle.Offset(0, 11).Value = tbloenindtaegt.Value
NyCelle.Offset(0, 12).Value = tboverfoersel_mellem_konti.Value
NyCelle.Offset(0, 13).Value = tbandenindtaegt.Value
NyCelle.Offset(0, 14).Value = tbkost.Value
NyCelle.Offset(0, 15).Value = tbapple.Value
NyCelle.Offset(0, 16).Value = tbbyggemarkeder.Value
NyCelle.Offset(0, 17).Value = tbtelefoni_og_rep.Value
NyCelle.Offset(0, 18).Value = tbprofiloptik.Value
NyCelle.Offset(0, 19).Value = tbtandlaege.Value
NyCelle.Offset(0, 20).Value = tbplantecenter.Value
NyCelle.Offset(0, 21).Value = tbmiljoefoder.Value
NyCelle.Offset(0, 22).Value = tbkontant_haevninger.Value
NyCelle.Offset(0, 23).Value = tbtv_og_aviser.Value
NyCelle.Offset(0, 24).Value = tbauto_og_cykler
NyCelle.Offset(0, 25).Value = tbrenter_og_gebyr.Value
NyCelle.Offset(0, 26).Value = tbmobilepay.Value
NyCelle.Offset(0, 27).Value = tbtil_andre.Value
NyCelle.Offset(0, 28).Value = tbbudget.Value
NyCelle.Offset(0, 29).Value = tbtoej.Value
NyCelle.Offset(0, 30).Value = tbmedicin.Value
'Til respons
MsgBox "Tilføjet ny bon", vbOKOnly + vbInformation, "Tilføjet"
'Gøres når alt overstående er gennemkørt
NulstilAlleFelter
End Sub
Private Sub NulstilAlleFelter()
cmbKonto.ListIndex = -1 ' Nulstiller comboboxen. Hvis sættes til 0, da vælges det første item i listen, 1 vælges det 2. item osv.
'Nulstiller alle felter
tbfaktura.Value = ""
tbDato.Value = ""
tbTekst.Value = ""
tbUdgift.Value = ""
tbIndtaegt.Value = ""
' Textleveringsdato.Value = ""
' Textbestillingsbeløb.Value = ""
tbloenindtaegt.Value = ""
tboverfoersel_mellem_konti.Value = ""
tbandenindtaegt.Value = ""
tbkost.Value = ""
tbapple.Value = ""
tbbyggemarkeder.Value = ""
tbtelefoni_og_rep.Value = ""
tbprofiloptik.Value = ""
tbtandlaege.Value = ""
tbplantecenter.Value = ""
tbmiljoefoder.Value = ""
tbkontant_haevninger.Value = ""
tbtv_og_aviser.Value = ""
tbauto_og_cykler.Value = ""
tbrenter_og_gebyr.Value = ""
tbmobilepay.Value = ""
tbtil_andre.Value = ""
tbbudget.Value = ""
tbtoej.Value = ""
tbmedicin.Value = ""
End Sub