Seneste forumindlæg
Køb / Salg
 * Uofficiel Black/White liste V3
Login / opret bruger

Forum \ Software \ Generel software
Denne tråd er over 6 måneder gammel

Er du sikker på, at du har noget relevant at tilføje?

Excel VBA

Af 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
#1
Jonas6701
Semibruger
10-05-2016 16:14

Rapporter til Admin
https://www.dropbox.com[...]
--
I3-4360 3,7 ghz, R9 280x,
#2
Thomas
BOFH
10-05-2016 16:14

Rapporter til Admin
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
#3
Jonas6701
Semibruger
10-05-2016 16:24

Rapporter til Admin
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,
#4
Thomas
BOFH
10-05-2016 16:29

Rapporter til Admin
#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
#5
Jonas6701
Semibruger
10-05-2016 16:36

Rapporter til Admin
#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,
#6
stallemanden
HOL Moderator
10-05-2016 16:47

Rapporter til Admin
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
#7
stallemanden
HOL Moderator
10-05-2016 17:06

Rapporter til Admin
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[...]
#8
Jonas6701
Semibruger
10-05-2016 19:07

Rapporter til Admin
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,
#9
Thomas
BOFH
10-05-2016 19:10

Rapporter til Admin
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
#10
Jonas6701
Semibruger
10-05-2016 19:48

Rapporter til Admin
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,
#11
stallemanden
HOL Moderator
10-05-2016 21:05

Rapporter til Admin
#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[...]
#12
Thomas
BOFH
10-05-2016 23:10

Rapporter til Admin
#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
#13
csbc
Junior Nørd
10-05-2016 23:14

Rapporter til Admin
Af ren nysgerrihed - hvilken uddannelse underviser i at programmere VBA?
--
* Filco Majestouch 2 MX Brown PBT
#14
Jonas6701
Semibruger
11-05-2016 09:47

Rapporter til Admin
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
NYHEDSBREV
Afstemning


ANNONCE