Print side | Luk vindue

Køre VBA i et vindue og åbne andre excel filer

Udskrevet fra: Dansk Regneark Forum
Kategori: Hjælp til regneark.
Forum navn: Makro og VBA
Forum beskrivelse: Hjælp til Makroer og VBA-programmering
Web-adresse: https://forum.excel-regneark.dk/forum_posts.asp?TID=1623
Udskrevet den: 21.Nov.2024 kl. 19:12


Emne: Køre VBA i et vindue og åbne andre excel filer
Besked fra: AFH
Emne: Køre VBA i et vindue og åbne andre excel filer
Posteringsdato: 08.Apr.2014 kl. 11:19
Hejsa.

Jeg har nu efterhånden brugt en del tid på at udvikle en VBA som kan bruges som tidsregistrering af forskellige arbejdsopgaver, der er også indbygget kørebog osv.

Alt det man udfylder skriver userformen til excel arket.
Når dette excel ark er åbent og jeg får "VBA vinduet" frem, kan jeg ikke åbne andre excel filer på maskinen.

Er der en løsning på denne problemstilling?

Håber det giver mening. På forhånd tak.Smile



Svar:
Besked fra: EXCELGAARD
Posteringsdato: 08.Apr.2014 kl. 11:52
Hvad er det for et 'VBA Vindue', du snakker om?
Er det UserFormen?

Hvis det er, hvorfor har du så behov for at kunne åbne andre regneark, mens brugeren udfylder UserFormen?

Hvis det ikke er UserFormen, hvad er det, der gør, at du ikke kan åbne andre regneark?


-------------
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.


Besked fra: AFH
Posteringsdato: 08.Apr.2014 kl. 12:30
Hej Excelgaard

Ja, undskyld, det er UserFormen. 

Det er et vindue vi åbner om morgenen, og så trykker vi på "Start ny opgave" udfylder felter i løbet af opgaven, og når vi så er klar til næste opgave, trykker vi igen på knappen i UserFormen "Start ny opgave", så tager den automatisk de forskellige tidspunkter og registrere dem.
Dvs. at UserFormen altid er åben. 

Det gør så samtidig at vi ikke kan åbne andre excelfiler.

Findes der en løsning på dette?


Besked fra: EXCELGAARD
Posteringsdato: 08.Apr.2014 kl. 12:39
Åbn UserFormen i 'Modeless' mode:
UserForm1.Show vbModeless
Udskift selv 'UserForm1', med, hvad jeres UserForm hedder...


-------------
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.


Besked fra: AFH
Posteringsdato: 08.Apr.2014 kl. 13:37
Hej igen,

Waow, det virker bare super godt, tusinde tak for hjælpen.

Kan man på nogle måde minimere denne UserForm så den kommer til at ligge på process linien, eller i det mindste er "låst" det til ark den er programmeret i/til (Så den ikke altid ligger forrest?




Besked fra: EXCELGAARD
Posteringsdato: 08.Apr.2014 kl. 14:14
Selvfølgelig virker det - det er jo Excel Wink

UserFormen er låst op mod det regneark, den er oprettet i...

Hvis dette regneark minimeret, så minimeres UserFormen osse.
Hvis dette regneark ikke er det aktive regneark (der er et andet regneark ovenover det), så er UserForm heller ikke synlig.

Hvis du tænker på fanebladene i dit regneark, så er dette ikke muligt, da det er regnearket, der er bestemmende for om UserForm er aktiv eller ej.

Alternativt kan man midlertidigt skjule UserFormen (altså ikke lukke/unloade den).

Lav evt. en knap til dette...


-------------
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.


Besked fra: AFH
Posteringsdato: 09.Apr.2014 kl. 09:57
Det er jo skide smart det der excel ;o)

Kan man lave det så UserFormen bliver minimeret ved tryk på F8, og hvis man trykker igen kommer den frem igen ? =)


Besked fra: EXCELGAARD
Posteringsdato: 09.Apr.2014 kl. 10:18
Ja, og nej...

Man, kan ikke lave det således, at userFormen bliver 'ægte' minimeret, men man kan 'snyde' så det ser således ud Smile

Metoden er, at man benytter .OnKey til at tildele en makro til f.eks. [F8].
Og, i denne makro indstiller man dernæst størrelsen og placeringen på UserFormen, så den virker 'minimeret'.

Størrelsen på userFormen, sættes med .Height og .Weight, mens placeringen sættes med .Left  og .Top.

Og, for at få [F8] til at skifte mellem 'minimeret' og 'maksimeret', lader man blot makroen læse den nuværende størrelse, og dernæst 'toggle' mellem de to størrelser og placeringer.

Jeg har selv benyttet metoden i et par af mine projekter, og det virker ganske fint Smile



-------------
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.


Besked fra: AFH
Posteringsdato: 01.Maj.2014 kl. 10:52
Hej igen,

Hvis jeg har et andet ark åbent, så skriver mit program desværre til dette ark.

Jeg bruger følgende kode til at skrive til mine celler fra userformen:

ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Select

Hvordan får jeg flettet denne formel ind i overstående?:

Workbooks(Tidsregistrering).Worksheets(Ark1) (Hvis den overhovedet er rigtig ;o))


Besked fra: EXCELGAARD
Posteringsdato: 01.Maj.2014 kl. 11:22
Hvis du ønsker, at vælge cellen (.Select), skal du først aktiverer regnearksfilen og dernæst fanebladet - og, så skal du huske, at sætte "anførselstegn" omkring dine navne.

Hvis dine navne er, som du selv har skrevet, bliver det noget i retning af:
Workbooks("Tidsregistrering").Activate
Worksheets("Ark1").Select
Cells(Rows.Count,1).End(xlUp).Select



-------------
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.


Besked fra: AFH
Posteringsdato: 01.Maj.2014 kl. 12:19
Hej Excelgaard,

Endnu engang tak for hjælpen.
Linien Cells(Rows.Count,1).End(xlUp).Select sørge for at der bliver skrevet i det første ledige felt i kolonne A, Kan man ændre det til at den først skal starte på linie 4?

På forhånd tak.



Print side | Luk vindue