Denne tråd er over 6 måneder gammel
Er du sikker på, at du har noget relevant at tilføje?
Excel VBAAf Semibruger Jonas6701 | 10-05-2016 16:11 | 1679 visninger | 14 svar, hop til seneste
Jeg er i min uddannelse i gang med at kode en UI til et hypotetisk hotel. Hotellet har en bar, hvori man ønsker at kunne bogfører køb af drinks mm. og udprinte endelige regninger i slutningen af ugen.
Men jeg er løbet mod en mur.
Jeg er nået til at kode funktionen til en knap, der når den bliver trykket, kopiere alle de ordrer der er lagt ved personen i et seperat "ordrer" worksheet til et nyt sheet og dernæst clearer den celle hvor personen er tjekket ind i.
jeg vedlægger XLXS filen i tråden nedenunder hvis der var nogle, der var så venlige at se på det og give mig nogen ideer/inspiration til hvordan det kunne gøres. --
I3-4360 3,7 ghz, R9 280x, --
Sidst redigeret 10-05-2016 16:16
Så du skal kode noget VBA til en skole opgave og du vil gerne have en af os til at gøre det for dig? -- Hilsen Thomas
Chefredaktør på HardwareOnline.dk Bestemt ikke - der er foretaget drastiske ændringer i min uddannelse der (sammen med den nye reform), der desværre gør at der er underbemanding i kurset. Jeg har prøvet med forskellige selvstudier, men det er svært at se "the big picture" når man ikke har den tilstrækkelig erfaring. Derfor søger jeg inspiration herinde :D. -- I3-4360 3,7 ghz, R9 280x, #3>>Det lyder ellers lidt sådan når du ikke har begyndt på det. Men prøv at start med at optage en makro hvor du udfører den handling der skal foretages. Så får du en ramme du kan tilpasse til at virke hver gang. -- Hilsen Thomas
Chefredaktør på HardwareOnline.dk #3 Det har jeg skam - har skrevet ~ 100 linjers kode allerede. Inkl. en funktion der tjekker gæster ind vha. en form.
Og tak for tippet - det vil jeg prøve. -- I3-4360 3,7 ghz, R9 280x, Det er korrekt forstået, at der ikke er noget kode i det dokument du har lagt op, korrekt ?
*edit*
Nm - det var mig der var en knold.. :) -- http://hamdentykke.dk[...] --
Sidst redigeret 10-05-2016 16:49 Et par ting.
I stedet for at lave det sådan, at alle gæster skal have unikke navne, så brug reference til de enkelte værelser og personens "nummer" i værelset. (Lidt ligesom du er startet på med fx: "GR6 1")
Du kan med fordel benytte dine "Room" tabeller.
Det gør det forholdsvis simpelt at lave et opslag i din "Orders", hvor du så enkelt kan slette de enkelte linier efterfølgende.
I stedet for at oprette det nye ark med en simpel tekst som "Regning", så opret det med en kombination af samme, men hvor du også har dato-tid med i navnet. Måske endda navnet for gæsten. -- http://hamdentykke.dk[...] Tak for svar.
Kan ikke se hvordan jeg skal gøre det,da det er en af opgavens forudsætninger at jeg skal kunne tjekke unikke gæster ind og ud løbende!
-- I3-4360 3,7 ghz, R9 280x, Nå nu har jeg også kigget på det og ja du har lavet en del programmering og de funktioner du har lavet virker også. Funktionerne er dog ikke særlig sikre feks kan du kun have en gæst med samme navn. Derudover har du en mangel i din data at den ikke udfylder data for dato, tid og værelse på andet end den første linje.
Jeg ville nok også genoverveje om du virkeligt vil slette linjer der er afregnet, for i den virkelige verden kunne det give problem når man skal stemme ting af og hvis der sker noget undervejs så kan man komme til at slette hele historikken for en bruger. Jeg ville derfor hellere tildele hver ny indtjekning et ID på den måde kan du gemme tidligere besøg og stadig håndtere de nye.
Gør du det bliver det også lidt nemmere og lave en faktura da du ikke skal til og slette linjer bagefter. Jeg ville så bruge autofilter og så lave regningen efter værelse istedet for pr person.
Jeg lavede en hurtig indspilning af en makro som i teorien virker dog stadig på person.
ActiveSheet.Range("$A$1:$H$48").AutoFilter Field:=8, Criteria1:="Benny"
Range("A2").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Regning").Select
Range("B5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Ovenstående er meget simpelt og løser ikke din opgave, men det er en start. Du skal så tilføje nogle variabler som kommer fra dit udtjeknings vindue. så kan du kalde dem istedet for blot at skrive navnet. Du kan også bruge disse dimensioner til evt navngivning af fanerne så du kan gemme tidligere fakturaer. -- Hilsen Thomas
Chefredaktør på HardwareOnline.dk Tak for svaret Thomas, din hjælpe er værdsat :D. Dataproblemet ved jeg godt hvordan man fixer - men tak for at gøre mig opmærksom på det.
Så den makro du har som VBA-kode der sorterer altså "Benny" øverst, ergo må jeg så skulle sortere efter den værdi der er i min Listbox for at gøre den generel.
En af forudsætningerne var dog, at man skulle kunne personer ud individuelt, og derfor også lave en individuel regning. -- I3-4360 3,7 ghz, R9 280x, #8
Jeg tror du misforstår hvad der menes med "unikke gæster".
Jeg forestiller mig, at en gæst er unik, netop som en kombination af:
Navn, Værelse nr. samt nummer i rækken på værelset.
Det vil sige, at Jacob sagtens kan forekomme mere end én gang.
Fx.
Værelse 1, seng 1, Jacob
1,1,Jacob
Værelse 3, seng 4, Jacob
3,4,Jacob
At et navn kun må forekomme én gang, virker besynderligt hvis det er sådan det er formuleret. -- http://hamdentykke.dk[...] #10>>Ja jeg læste bare hotel og tænker at der tjekker man altid hele værelser ind eller ud, men det er nok nærmere et hostel du har gang i der. I det tilfælde skal du naturligvis vælge ud på personen, men du er nød til at gøre den mere unik for nogle navne er så generelle at det uden tvivl vil komme til at optræde flere gange, der er feks mange omkring de 40 år der hedder Thomas på et tidspunkt var vi 3 i en klasse. Angående den kode jeg gav dig så var den også bare optaget med en værdi jeg havde tastet ind. Det skal naturligvis være den person du vælger der bliver dimensionen.
Nu har jeg en baggrund i regnskab og roder til dagligt med at strukturere data så vi kan bruge det på andre måder end de oprindeligt var tiltænkt. Med det i baghhovedet ville jeg synes at den data du har er utilstrækkelig til at være dokumentation til regnskabet og strukturen i daten gør det også svært at udvide senere. Så til den gode opgave ville du nok være nød til at kigge på data strukturen for hvordan du tjekker folk ind og ud. Jeg ville nok lave det som en fortløbende tabel med 4 kolonner
værelse - Dato/tid - Tildelt nr - Navn
hvis du byggede den op på den måde så kunne du nemt udvide modellen til feks 500 værelser. Som den er nu ville du skulle oprette 491 ekstra områder og tilføje 491 ekstra kode stumper.
forstår mig ret det er nok ikke fordi det pludseligt ville være aktuelt at udvide fra 9 til 500 værelser, men den model du har bygget op er ikke skalerbar og skule jeg give karakter ville den slags da være noget der gav point da det viser du har tænkt over tingene. -- Hilsen Thomas
Chefredaktør på HardwareOnline.dk Af ren nysgerrihed - hvilken uddannelse underviser i at programmere VBA? -- * Filco Majestouch 2 MX Brown PBT Produktion - DTU -- I3-4360 3,7 ghz, R9 280x,
Opret svar til indlægget: Excel VBA
Grundet øget spam aktivitet fra gæstebrugere, er det desværre ikke længere muligt, at oprette svar som gæst.
Hvis du ønsker at deltage i debatten, skal du oprette en brugerprofil.
Opret bruger | Login
|
Du skal være logget ind for at tilmelde dig nyhedsbrev.
Hvilken udbyder har du til internet? 224 personer har stemt - Mit energiselskab (Ewii f.eks) 11%
|