29. oktober 2005 - 09:29Der er
14 kommentarer og 2 løsninger
Validering af inputbox
Nedenstående macro virker som den skal, men jeg skal have hjælp til at få den optimal. Indtaster man ikke noget eller klikker på anuller så debugger macroen.
Dim Filnavn As String Dim nytnavn As String Range("B2").Select Range("B2", ActiveCell).Value = InputBox("Indtast dato for afsluttet måned (dd.mm.aa)", "Indsæt teksten du vil have i fanenavn") Range("B3").Select Range("B3", ActiveCell).Value = InputBox("Indtast sti for filnavnet (c:\dokumenter\excel)", "Indsæt teksten hvor du vil gemme arket") Range("B4").Select ActiveCell.FormulaR1C1 = "=(IF(R[-2]C<>"""",(LEFT(R[-2]C,2)&MID(R[-2]C,4,2)&RIGHT(R[-2]C,2)),""""))" Range("A1").Select Filnavn = Range("B3") & "Indkøbsstatistik " & Range("B4") & ".xls" nytnavn = Range("B2") Sheets(1).Name = nytnavn ActiveWorkbook.SaveAs Filename:=Filnavn
Hvad skal rettes for at validere på om der er indtastet noget i inputboxe. Hvis man eks. taster 05.11.05, så fjernes det første nul, hvordan får jeg sat et nul foran.
Det er en del af en længere macro, som formatere arket til det rigtige udseende med hensyn til rammer, sideopsætning og sortering m.m. Og tilslut skal man indtaste navn til arket og stien til hvor filen skal gemmes.
Det det skal helst være sådan, at man skal indtaste noget i begge inputboxe. Så hvis der ikke er indtastet noget, skal den spørge igen.
Med hensyn til foranstillet nul på eks. 05.11.05, hvad gør jeg der.
Dim Filnavn As String Dim NytNavn As String Dim stDato As String
DatoInd: stDato = InputBox("Indtast dato for afsluttet måned (dd.mm.aa)", "Indsæt teksten du vil have i fanenavn") If stDato = "False" Or IsDate(stDato) = False Then MsgBox "Dato skal indtastes korrekt dd.mm.åå" GoTo DatoInd Else Range("B2").NumberFormat = "dd.mm.yy;@" Range("B2") = Format(stDato, "dd.mm.yy") End If NavnInd: NytNavn = InputBox("Indtast sti for filnavnet (c:\dokumenter\excel)", "Indsæt teksten hvor du vil gemme arket") If NytNavn = "False" Then GoTo NavnInd Else Range("B3") = NytNavn
Jeg kan ikke indtaste datoer som 30.09.05 el. 31.10.05, får MsgBox. Andre datoer ændres til 30.12.99. Hvis der ikke skrives noget i/som sti, benyttes standard mappen for excel. (i og for sig i orden.) Findes filnavnet bugger macroen.
Ændrede 'Range("B2") = Format(stDato, "dd.mm.yy")' til 'Range("B2") = stDato' og nu går datoen rigtig ind. Jeg kan dog stadigvæk ikke skrive datoer som begynder med 24-31 (24.10.05, 31.12.05 osv.). Hvorfor det ??
Dim Filnavn As String Dim NytNavn As String Dim stDato As String Dim temp As Variant
DatoInd: stDato = InputBox("Indtast dato for afsluttet måned (dd.mm.aa)", "Indsæt teksten du vil have i fanenavn") If stDato = "False" Or UBound(Split(stDato, ".")) <> 2 Then MsgBox "Dato skal indtastes korrekt dd.mm.åå" GoTo DatoInd Else temp = Split(stDato, ".") Range("B2").NumberFormat = "dd.mm.yy;@" Range("B2") = DateSerial(temp(2), temp(1), temp(0)) End If NavnInd: NytNavn = InputBox("Indtast sti for filnavnet (c:\dokumenter\excel)", "Indsæt teksten hvor du vil gemme arket") If NytNavn = "False" Then GoTo NavnInd Else Range("B3") = NytNavn
jo, men det var jo ikke det du bad om hjælp til. Det er jo din egen kode og formel der gør det. :-)
Sub test() Dim Filnavn As String Dim NytNavn As String Dim stDato As String Dim temp As Variant
DatoInd: stDato = InputBox("Indtast dato for afsluttet måned (dd.mm.aa)", "Indsæt teksten du vil have i fanenavn") If stDato = "False" Or UBound(Split(stDato, ".")) <> 2 Then MsgBox "Dato skal indtastes korrekt dd.mm.åå" GoTo DatoInd Else temp = Split(stDato, ".") Range("B2").NumberFormat = "dd.mm.yy;@" Range("B2") = DateSerial(temp(2), temp(1), temp(0)) End If NavnInd: NytNavn = InputBox("Indtast sti for filnavnet (c:\dokumenter\excel)", "Indsæt teksten hvor du vil gemme arket") If NytNavn = "False" Then GoTo NavnInd Else Range("B3") = NytNavn Range("B4").FormulaR1C1 = "=IF(R[-2]C<>"""",TEXT(R[-2]C,""ddmmåå""),"""")" Filnavn = Range("B3") & "Indkøbsstatistik " & Range("B4") & ".xls" NytNavn = stDato Sheets(1).Name = NytNavn ActiveWorkbook.SaveAs Filename:=Filnavn End Sub
Fair nok. Jeg undskylder hvis spm. ikke var formuleret korrekt.
Men nu virker det som jeg gerne vil have. mange tak.
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.