Print side | Luk vindue

Brugerformularer

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=114
Udskrevet den: 24.Nov.2024 kl. 04:16


Emne: Brugerformularer
Besked fra: peppe
Emne: Brugerformularer
Posteringsdato: 27.Okt.2010 kl. 17:07
Hej
 
Hvis jeg arbejder med flere brugerformularer, hvordan kan jeg så i VBA lukke disse vinduer (brugerformularer) - fx hvis der trykkes på en knap der viser Ark2, så skulle vinduet (formularen) gerne lukke, så man kan se på Ark2.
 
Peppe



Svar:
Besked fra: Allan
Posteringsdato: 27.Okt.2010 kl. 20:03
Hej Peppe,
 
Når du skriver brugerformularer, mener du så UserForms i VBA-delen?
Hvis du gør det, så skal denne kodestump ligge på din knap. (Her hedder knappen CommandButton1)
 
Private Sub CommandButton1_Click()
Ark2.Activate
Unload Me
End Sub
 
Hvis du i stedet ønsker at bruge krydset i højre hjørne (LUK) så kan du sætte hele denne kodestump ind i din UserForm:
 
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
    Ark2.Activate
End If
End Sub
 
//Allan


Besked fra: peppe
Posteringsdato: 27.Okt.2010 kl. 21:01

Koden med Ark2.activate resulterer i en fejl Cry

/uploads/106/P1.jpg - uploads/106/P1.jpg
 
Tilgengæld virkede Sheets("Ark2").Select for mig Embarrassed
 
/uploads/106/P2.jpg - uploads/106/P2.jpg
 
Men unload me virkede perfekt Big smile
 
Den anden kode eksempel...
 
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
    Ark2.Activate
End If
End Sub
 
... er jeg ikke sikker på jeg forstår.
Umiddelbart virker krydset i højre hjørne (LUK) i forvejen?
 
Det kan godt være jeg skal have det lidt ind med skeer he he


Besked fra: Allan
Posteringsdato: 27.Okt.2010 kl. 21:50
Grunden til at Ark2.activate ikke virker for dig, er at du ikke har Ark2 i din fil.
Forklaring: Læg mærke til arknavnene i din VBA-editor, her hedder Ark1(Forside), Ark3 (Nye Kunder) osv.
Hvis man på denne facon kalder f.eks Ark1.Activate, aktiverer man Ark1, selvom Ark1 rent faktisk hedder Forside. Omdøber man Forside til noget andet, vil Ark1 stadig virke, da det er arkets faktiske navn (I VBA-henseende).
 
Den med krydset, er såmænd bare at koden aktiverer et ark (I eksemplet Ark2) ved luk af UserFormen.
Du skal naturligvis ændre Ark2 til noget andet i din fil, da du ikke har Ark2 i din fil.
 
Det var lidt svært at forklare, håber det går Wink
 
//Allan


Besked fra: peppe
Posteringsdato: 27.Okt.2010 kl. 23:16

Det forklarede du bare helt fint.

Det virker.
Åbentbart virker "activate" kun hvis jeg benytter Excels egne navne (Ark1, Ark2, ...)
 
Sheets("Nye kunder").Select
virker med de navne jeg har kaldt fanerne...
 
Tak Allan - super hjælp


Besked fra: Allan
Posteringsdato: 28.Okt.2010 kl. 10:12
Velbekomme Peppe.
Fordelene ved at kalde arket direkte (WorkSheetName) og ikke fanens navn (SheetName), er at du ikke fremover er afhængig af navngivningen af arket.
Det er jo ikke så ringe Smile
 
//Allan


Besked fra: peppe
Posteringsdato: 28.Okt.2010 kl. 16:46
Ja jeg kan godt se fordelen ved at bruge arkets navn WorkSheetName fremfor fanens navn SheetName, indtil videre har jeg brugt fanens navn fordi navnet er "sigende" - navnet kan jeg huske, men arkets navn står selvfølgelig i venstre side lige til at få øje på, så det kan være jeg lige skal indarbejde at bruge det.
 
Tak Allan


Besked fra: Allan
Posteringsdato: 28.Okt.2010 kl. 20:24
Det der er så facinerede ved VBA, er at der ingen facitliste findes, alt er rigtigt bare det virker.
Det var fedt at du kunne bruge løsningen. Smile
 
//Allan



Print side | Luk vindue