Avatar billede NTlak Novice
17. februar 2020 - 14:41 Der er 5 kommentarer og
3 løsninger

VBA kodning - indputbox

Hej alle sammen :)

Først og fremmest vil jeg blot oplyse, at jeg er ny hvad angår VBA programmering i Excel.

Jeg er i øjeblikket ved at opstille et Inputbox.
Min plan er at få opstillet flere "bokse" med spørgsmål og afhængig af hvad man svare så vil et nyt spørgsmål dukke op. Imellem tiden skal svarene stå i tekstboks.

Eksempel.
Jeg har oprettet en tekstboks i feltet/celle A5.

Koden jeg har oprettet ser sådan ud:
Sub InputTest()
navn = InputBox("Hvad hedder du?", "Navn", "Indsæt navn")
Range("A5").Value = navn
MsgBox "Hej " & navn
End Sub

Dette virker rigtig fint. Når jeg fx svare "Peter", så indtaster den Peter i A5 (i tekstboksen)

Efterfølgende kunne jeg tænke at der så kom en anden inputbox med et andet spørgsmål. Men når jeg gør dette og indtaster svaret, så erstatter den "Peter" med et mit nye svar. Jeg ønsker i dette tilfælde at den stadig skriver i A5 (altså i den Teksboks jeg har oprettet) dog bare på linjen under det første svar. Det er vigtigt for mig at alle svarene bliver besvaret i teksboksen

Koden jeg har sat op i dette tilfælde ser sådan her ud:

Sub InputTest()
navn = InputBox("Hvad hedder du?", "Navn", "Indsæt navn")
Range("A5").Value = navn
MsgBox "Hej " & navn
alder = InputBox("Hvor gammel er du?", "Alder", "Indsæt alder")
Range("A5").Value = alder
End Sub

Håber mit spørgsmål er forståeligt - og beklager igen, jeg er stadig ny i dette område :) Håber nogen kan hjælpe :)
Avatar billede store-morten Ekspert
17. februar 2020 - 16:50 #1
Måske:
Sub InputTest2()
navn = InputBox("Hvad hedder du?", "Navn", "Indsæt navn")

alder = InputBox("Hej " & navn & vbCrLf & "Hvor gammel er du?", "Alder", "Indsæt alder")

Range("A5").Value = navn & ", " & alder
End Sub
Avatar billede NTlak Novice
17. februar 2020 - 17:41 #2
Tusind tak! Ja virkede!
Avatar billede NTlak Novice
17. februar 2020 - 18:09 #3
Besvarelserne kom i samme tekstboks, hvilket er rigtig fint. Men hvad så hvis jeg ønsker dem i forskellige linjer?
Hvis jeg nu fx ønsker at "Peter" kom i første linje og "30 år" kom i anden. Kan det lade sig gøre under samme tekstboks?
Avatar billede store-morten Ekspert
17. februar 2020 - 18:19 #4
Når du skriver tekstboks, mener du så celle?
Avatar billede NTlak Novice
17. februar 2020 - 18:23 #5
Ja :)
Avatar billede store-morten Ekspert
17. februar 2020 - 18:27 #6
Ok, for en tekstboks er noget helt andet ;-)

Prøv:
Sub InputTest3()
navn = InputBox("Hvad hedder du?", "Navn", "Indsæt navn")

alder = InputBox("Hej " & navn & vbCrLf & "Hvor gammel er du?", "Alder", "Indsæt alder")

Range("A5").Value = navn & Chr(10) & alder
End Sub
Avatar billede store-morten Ekspert
17. februar 2020 - 19:14 #7
En anden mulighed:
Sub InputTest4()

Svar = InputBox("Hvad hedder du?", "Navn", "Indsæt navn")
Range("A5").Value = Svar
MsgBox "Hej " & Svar

Svar = InputBox("Hvor gammel er du?", "Alder", "Indsæt alder")
Range("A5").Value = Range("A5").Value & Chr(10) & Svar
MsgBox "Er du så gammel... " & Svar & "?"

Svar = InputBox("Hvilket land kommer du fra?", "Land", "Indsæt land")
Range("A5").Value = Range("A5").Value & Chr(10) & Svar
MsgBox Svar & " er et dejligt land"

End Sub
Avatar billede NTlak Novice
17. februar 2020 - 20:00 #8
Mange tak igen! Begge løsninger er rigtig fine og så fik jeg også lært noget nyt! :-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester