Avatar billede bjarke Nybegynder
12. oktober 1999 - 10:02 Der er 23 kommentarer og
1 løsning

User input

Jeg skal bruge en lille demo, som prompter for en streng (f.eks. navn) og et tal (f.eks.) alder i en dialog/input/andet-box.

Derefter skal disse værdier skrives i f.eks. A1 og A2.

Hvis der allerede står noget i cellerne, så skal det stå som default-værdier i boxens indtastningsfelter.

NB: Pointen er først og fremmest, at jeg skal finde ud af at prompte på flere værdier på en gang, uden at lave en inputbox for hver eneste værdi.
Avatar billede ziber Nybegynder
12. oktober 1999 - 11:01 #1
Du kan bare lave en UserForm. Der kan du prompte for alle de værdier du har brug for, indsætte default værdier, lave tjek på indtastede værdier, osv.....

Har du prøvet det før ?
Avatar billede bjarke Nybegynder
12. oktober 1999 - 11:07 #2
Ja, for en time siden, men jeg kunne ikke lige få det til at virke.

I Office2000 (MS-VB) valgte jeg insert->userform. Det var let nok at designe den, men hvad gør jeg så? Hvordan aktiverer brugeren den fra regnearket (med en form-buttom f.eks.)?

Og alle de andre ting - hvordan gør jeg det????
Avatar billede ziber Nybegynder
12. oktober 1999 - 11:21 #3
Hvis du designer din UserForm, og navngievr dine felter osv. Kan du kalde din form ved åbning af regnearket, med Følgende

Sub AutoOpen()
  DinUserForm.Show
End Sub

Derefter kan du lade brugeren indtaste de værdier du skal bruge.

Nå brugeren så trykker på en knap i din form ( f.eks en OK knap)
Kan du skrive værdierne ligesom normalt.

Hvis du får åbningen af formen til at virke, og stadig mangler hjælp, må du lige skrive igen!

(PS. for et lidt større antal point, kan jeg godt lave den del af koden, som for eksempel, skriver de indtastede data til regnearket)
Avatar billede bjarke Nybegynder
12. oktober 1999 - 11:32 #4
OK, hvis du laver demoen og hjælper mig med at få det til at køre, så dobbler vi op (OK?).

Men det kræver til gengæld også at det skal virke (som beskrevet i spørgsmålet) - du kan f.eks. lave koden og lave en step-by-step instruktion.

Iøvrigt er det Ok, at den starter automatisk, men den skal også kunne aktiveres under brugen af regnearket.
Avatar billede ziber Nybegynder
12. oktober 1999 - 11:41 #5
hmmm - aktivering under brug, laves med knap p åregnearket, eller en knap oppe i menulinjen.

Med hensyn til at jeg laver demoen, synes, at du selv skal lave så den aktiveres med AutoOpen, og ved tryk på en knap i regnearket eller menulinjen.

Derefter kan du sende regnearket til mig, indeholdende formen, og koderne så skal jeg sætte dem ind.

Sorry - men mere kna jeg ikke lave for 60 point (ikke en herregård)

Hvis det ikke er ok, må du spørge en anden!

Hvad skal du helt bestemt med de indtastede data ?

ZIBER
Avatar billede bjarke Nybegynder
12. oktober 1999 - 12:11 #6
Mmmmm, lækkert de serverede flæskesteg med brun sovs og kartofler (+en masse andet) i kantinen i dag :-)

Hmmm, det var nu egentlig både fordi jeg skulle bruge det, men også for at lære det! Så jeg ved ikke helt - jeg tænker over det....
Avatar billede ziber Nybegynder
12. oktober 1999 - 12:32 #7
ok - bare sig til

Hvis du vil, kan du bare selv fortsætte, og bruge mig som "Rådgiver" hvis der nu melder sig nogle fejl eller problemer !
Avatar billede bjarke Nybegynder
12. oktober 1999 - 12:36 #8
Tak

1) Default-værdierne skal vel hentes i initialize-metoden - hvordan?
2) Hvordan afsluttes boxen, når man trykker på min buttom?
3) Kan man ikke skrive:
cells("A1").value = inputbox(....) 'eller .text?
Avatar billede ziber Nybegynder
12. oktober 1999 - 12:47 #9
1) Når du skriver:
Sub AutoOpen()
  DinForm.Show  Din form vises
End Sub

På selve formen kan du sætte en kode på eventen Open
Her sætter du:
  DinForm.DitFelt1 = "Default1"
  DinForm.DitFelt2 = "Default2"
  osv....
  Så vises formen med felter med værdier i


2)

DinForm.Close hvis formen skal lukkes og de indtastede værdier ikke længere skal bruges
DinForm.Hide så lukkes formen ikke, men gemmes vist bare

Avatar billede ziber Nybegynder
12. oktober 1999 - 12:49 #10
hvis dette ikke virker, så send din userform til mig, så skal jeg prøve at indsætte et par eksempler
Avatar billede shj Nybegynder
12. oktober 1999 - 17:34 #11
hej Bjarke, prøv lige denne kode stump i excel og se hvad den foretager sig, det er ret simpelt, og der er ingen valideringer eller noget som helst, men når først du får fat i objekterne i vba så er det ganske hurtigt atlave noget brugbart.
:
Sub Test()
Dim MinTekst As String
Dim MitTal, AndetTal As Integer
Dim BjarkesTal As Long
MinTekst = InputBox("Intast dit navn")

MitTal = InputBox("Indtast et tal") 'prompt til bruger
Ark1.Cells(1, 1) = MinTekst
Ark1.Cells(2, 1) = MitTal
AndetTal = InputBox("hvilket tak skal der beregnes med?") 'promt til brugeren
Ark1.Cells(3, 1) = AndetTal
Ark1.Cells(4, 1) = "når tallene " & MitTal & "og" & AndetTal & " lægges sammnen giver det"
BjarkesTal = MitTal + AndetTal
Ark1.Cells(5, 1) = BjarkesTal
End Sub
Dette er bare et hurtig demo af hva du leder efter
Hilsen Simon
Avatar billede bjarke Nybegynder
13. oktober 1999 - 09:08 #12
Sjovt at det er dig der hjælper mig nu Simon:-)

Jeg har mere eller mindre fundet ud af at lave det du har lavet her, men jeg kan godt se, at der er noget jeg kan lave lidt smartere ud fra det du har lavet.

Men som jeg skrev, så var pointen egentlig, at jeg gerne ville kunne prompte på det hele på én gang (det skal vel være i en userform?), så brugeren blot vælger de felter han ønsker at udfylde og så trykker ok (eller cancel).

Hvis du gider at lave en lille demo, så vil jeg også gerne dobble op med pointene, som jeg tilbød ziber (gælder alle). Demoen kunne være et lille regneark, som ikke laver noget som helst andet end det jeg skrev i spørgsmålet og så sende det til mig på d971230@student.dtu.dk.
Avatar billede shj Nybegynder
13. oktober 1999 - 12:57 #13
Hej Bjarke :-) ja er det ikke lidt mortsomt. Jeg vil gerne prøve at lave en demo der kan promte for flere input på engang, jeg må sige at jeg nok er lidt stærkere i vb jeg har ikke lavet så meget i vba, men nu prøver vi.
Avatar billede bjarke Nybegynder
13. oktober 1999 - 13:28 #14
Det lyder godt Simon

Hvad er forskellen på VB og VBA?

I øvrigt har jeg fundet ud af lidt af det (spørgsmålet). Men hvordan får jeg min ok-button til at afslutte formen?
Avatar billede shj Nybegynder
13. oktober 1999 - 13:31 #15
Nu har jeg sendt den til dig håber det kan bruges

Avatar billede bjarke Nybegynder
13. oktober 1999 - 13:49 #16
Hej gutter

Jeg har lavet:
-------------------------------------------------  UserForm1
  Label1
  Label2
  TextBox1
  TextBox2


Og følgende koder:
-------------------------------------------------Private Sub CommandButton1_Click()
    Cells(10, 10) = TextBox1.Text
    Cells(11, 10) = TextBox2.Text
    UserForm1.Hide
End Sub
Private Sub UserForm_Initialize()
    UserForm1.TextBox1.Text = Cells(1, 3)
    UserForm1.TextBox2.Text = Cells(3, 3)
End Sub


Og følgende makro:
-------------------------------------------------
Sub BrugerForm()
    Load UserForm1
    UserForm1.Show
    Cells(1, 1).Select
End Sub

Hvis det bare er det, så kunne I da hurtigt have lavet det hva'(?) Anyway, nu må I oppe jer lidt, hvis ikke vi alle 3 skal dele pointene;-) Nå, men jeg hører da gerne gode råd.....
Avatar billede bjarke Nybegynder
13. oktober 1999 - 13:50 #17
Hov, der gik noget galt med linieskiftene. Teksten efter stregerne skal selvfølgelig stå på linien under
Avatar billede shj Nybegynder
13. oktober 1999 - 14:06 #18
Bjarke >> når du vil gemme din form i excel efter brug, kan du "vist nok" bruge udtrykket
"unload me"  når du bruger hide vil formen hele tiden optage plads i memory indtil du lukker dit regneark, ikke fordi det hasr den store indflydelse, men det er jo rart nok at vide.
Avatar billede shj Nybegynder
13. oktober 1999 - 14:11 #19
jeg tror ikke rigtig jeg har forstået hva du mener, jeg synes din kode ser ok ud. VBA udskiller sig fra Visual Basic ved at være script sproget i Office pakken, syntaxen er fuldstændig den samme som i VB men har ikke helt de samme muligheder, VBA betyder "Visual basic for Applicationes" I rent visual basic kan du programmere dll filer ActiceX controller og almindelige exefiler. Jeg har netop prøvet at programmere en extivex i vc++ og så brugt denne i et vb program foretil  dig mulighederne! Altså en stor funktionalitet er det ikke det man kalder Rapid Development :-)
Hilsen Simon.
hmmmmm bliver snart nød til at oprette et spørgsmål i c++ *S*
Avatar billede bjarke Nybegynder
13. oktober 1999 - 14:33 #20
Tak Simon, jeg må snart få set på det, men jeg har også andet at lave:-)

Rapid - jo, forestil dig at lave det i C++ !!!!

Jo, det er skam godt at vide med unload me, men den eneste måde jeg kunne få formen til at lukke (forsvinde) på var at gøre det på den måde. Kan knappen unloade formen? (Din form kan jo også kun lukkes vha x i øverste højre hjørne).

Iøvrigt tror jeg ikke, at jeg får alle mails fra eksperten. Det er lidt irriterende at kommentere, uden at vide at andre har kommenteret i mellemtiden (jeg kunne selvfølgelig bare reloade inden hver gang, men det tænker jeg ikke altid lige på).

PS: Ja stil endelig snart et spørgsmål - det er sjovere at lege smart end at sidde her og fjumre rundt med noget jeg ikke rigtig har check på;-)
Avatar billede shj Nybegynder
13. oktober 1999 - 14:57 #21
he he bjarke, jeg prøver lige at rode lidt med det regneark jeg sendte dig, så formen bliver unloaded, så sender jeg det til dig.
Avatar billede bjarke Nybegynder
13. oktober 1999 - 15:02 #22
simon >> smider du så ikke også lige en knap på, så jeg ikke SKAL gå ind i VB-editoren? Husk nu, at hvis felterne i regnearket er udfyldt, så skal værdierne stå som default-værdier i formen:-)
Avatar billede shj Nybegynder
13. oktober 1999 - 15:08 #23
hmm har lige prøvet det og det virker, hvis du placere en kommando knap på din udserform og f.eks kalder den CmdExit
så skal du bare indsætte unload me i kode vinduet så virker det, det ville det altså også i en sub routine eller i en funktion, unmload me lukker bvare det aktive objekt
Avatar billede bjarke Nybegynder
18. oktober 1999 - 08:41 #24
Tak for hjælpen simon. Det virker fint, så det kan jeg vidst godt finde ud af at arbejde videre med.

Jeg opretter lige et nyt spørgsmål, som du bare kan svare på, så du får doblet op som jeg lovede;-)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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