29. april 2013 - 11:51Der er
1 kommentar og 1 løsning
Struktur if inden i if (vba)
Kære eksperter,
Jeg har en VBAkode (del af en længere smøre) hvor jeg ønsker en filtreringsdato alt efter forskellige muligheder.
Først skal den spørge til datoen jeg ønsker lageret opgjort pr, og derefter om jeg ønsker det opgjort til månedsafslutning eller blot "alm" daglig opfølgning.
Min kode ser sådan ud (men virker ikke - den beder om et ekstra If. Jeg kan ikke spotte min sikkert åbenlyse fejl.
Datoinput: Dato = Format(InputBox("Hvilken dato skal lageret opgøres efter", "Dato", "DD-MM-ÅÅÅÅ"), "DD-MM-YYYY") If IsDate(Dato) Then IndeværendeÅr = Year(Dato) IndeværendeMåned = Month(Dato) IndeværendeDag = Day(Dato) MSG1 = MsgBox("Skal lageret filtreres til månedsafslutning?", vbYesNo, "lagerfilterdato") If MSG1 = vbYes Then If IndeværendeMåned + 1 = 13 Then LagerFilterdato = Format("01-01-" & IndeværendeÅr + 1, "DD-MM-YYYY") Else: LagerFilterdato = Format("01-" & IndeværendeMåned + 1 & "-" & IndeværendeÅr, "DD-MM-YYYY") Else: LagerFilterdato = Format(Dato, "DD-MM-YYY") Else: MsgBox ("Ikke rigtig datoformat"): GoTo Datoinput End If
Hvem kan lige spotte fejlen?
Jeg har forsøgt at arbejde hen imod ElseIf, men forstår den nok ikke til bunds. Så har du god tid vil jeg gerne se strukturen til denne også.
Jeg kunne ikke se hvad jeg skulle sætte ind, så i stedet afsluttede jeg hver If med en Endif og så kørte det.
Så den kom altså til at se således ud: Datoinput: Dato = Format(InputBox("Hvilken dato skal lageret opgøres efter", "Dato", "DD-MM-ÅÅÅÅ"), "DD-MM-YYYY") If IsDate(Dato) Then IndeværendeÅr = Year(Dato) IndeværendeMåned = Month(Dato) IndeværendeDag = Day(Dato) MSG1 = MsgBox("Skal lageret filtreres til månedsafslutning?", vbYesNo, "lagerfilterdato") If MSG1 = vbYes Then If IndeværendeMåned + 1 = 13 Then LagerFilterdato = Format("01-01-" & IndeværendeÅr + 1, "DD-MM-YYYY") Else: LagerFilterdato = Format("01-" & IndeværendeMåned + 1 & "-" & IndeværendeÅr, "DD-MM-YYYY") End If Else: LagerFilterdato = Format(Dato, "DD-MM-YYY") End If Else: MsgBox ("Ikke rigtig datoformat"): GoTo Datoinput End If
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.