10. april 2020 - 21:15Der er
10 kommentarer og 2 løsninger
VBA Inputbox placering på skærm
Jeg vil gerne have en inputbox placeret midt på skærmen. Dertil prøver jeg at bruge denne syntax som jeg har fundet på Microsoft Office VBA reference: Application.InputBox (Prompt, Title, Default, Left, Top, HelpFile, HelpContextID, Type) Udover Left og Top bruger jeg kun Prompt, Title og Type. Men uanset hvilke værdier jeg sætter i Left og Top, placeres Inputbox 6 cm fra Left og 12 cm fra Top. Jeg bruger 24" skærm. Hvad er det jeg ikke forstår ??
Må jeg bede om lidt mere Ekspert hjælp? Din kodelinje placerede Inputboksen lige hvor jeg gerne vil have den. Men jeg kan kun få koden til at læse Input som tekst. Jeg skal bruge et tal mellem 1 og 99. Jeg vil gerne sikre mig at det er nemt at komme videre, hvis der klikkes OK uden gyldigt tal. Koden herunder tester Input, og hvis det ikke er et gyldigt tal kommer straks en ny inputboks. Tror du det kan lade sig gøre at flytte Inputboxen med denne koden? Sub Vis_Konto() ktnr = Application.InputBox(" Indtast konto numer", " H M V ", , , , , , 3) If ktnr > 0 And ktnr < 100 Then GoTo næste Vis_Konto næste:
Sub Vis_Konto() Indtast_konto_Nummer: ktnr = InputBox(" Indtast konto nummer", " H M V ", , 1000, 1700)
Select Case ktnr Case 1 To 99 GoTo Næste Case Else MsgBox "Du tastede: " & ktnr & vbCrLf & _ vbCrLf & "Skal være et tal fra 1 til 99" GoTo Indtast_konto_Nummer End Select
Tak for dine forslag. jeg har leget lidt med dem, men jeg kan stadig ikke få Inputboxe til at returnere talværdi. Når jeg skal regne videre på indtastet værdi læses tal som "string". Men når jeg vil have vist indtastning i Msgbox står det som tal. Det er lidt mere end jeg kan forstå. Jeg vil indtil videre bruge min egen løsning (#4), og så må jeg leve med at Inputbox til tider dækker nogle tal som jeg gerne vil se. Hvis nødvendigt kan jeg jo med musen flytte Inputboxen. Tak for din inspiration
Med 'Do_Loop' funktionen bruger jeg det indtastede tal til at søge et kontonummer. Dit spørgsmål fik mig til at prøve at sætte Inputbox værdi, 'ktnr' i celle [A1] og derefter erklære variabel 'vis'=activecell.value. Bingo, det virker. Variablen 'vis' er talformat, og kan bruges til at finde mit kontonummer. Nu prøver jeg det mere af de kommende dage.
Nu er koden på plads. Fra Inputbox placeres indtastning i celle A1, variablen ktnr erklæres med værdien i celle A1. Jeg forstår ikke hvorfor en 'streng' på den måde ændres til tal. Men pyt når det virker. Det virker med placering af Inputbox midt på skærmen, og fejlkontrollen virker også, så makroen starter forfra hvis der indtastes fejlværdi eller ingenting.
Sub Vis_Konto() Application.ScreenUpdating = False [A1] = InputBox(" Indtast konto numer", " H M V ", , 12000, 8000) ktnr = [A1].Value If ktnr > 0 And ktnr < 100 Then GoTo næste1 Vis_Konto næste1: -------------
Min kode laver almindelig bogføring for en lille lokal forening.Der indtastes Bilagsdato, og -nr. posteringstekst, beløb og debet- og kreditkontonumre.Konti er godt 100 kolonner der 2 og 2 hører sammen. En makro flytter nu beløbene ud i konti / kolonner som er defineret ved et kontonr. Med den makro vi har korresponderet om laver jeg et konto udtog på hver konto. Efter indtastning af kontonr. (dvs. efter næste1:) finder makroen de 2 kolonner der indeholder posteringer på kontoen, og alle posteringslinjer som indeholder det aktuelle kontonr. Alle øvrige konto-kolonner og posteringslinjer skjules. Mit færdige resultat er en side som kan udskrives, der indeholder alle specifikationer for f.eks. bankkonto eller kontingentkonto. Den kan sammenlignes med et kontoudtog fra banken. Tak for hjælpen.
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.