Forfatter |
Emne Søg Emne funktioner
|
peppe
Sølv bruger
Medlem: 26.Okt.2010
Land: Danmark
Status: Offline
Point: 294
|
Emne: Brugerformularer Sendt: 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
|
|
|
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 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
|
|
peppe
Sølv bruger
Medlem: 26.Okt.2010
Land: Danmark
Status: Offline
Point: 294
|
Sendt: 27.Okt.2010 kl. 21:01 |
Koden med Ark2.activate resulterer i en fejl
Tilgengæld virkede Sheets("Ark2").Select for mig
Men unload me virkede perfekt
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
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 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
//Allan
|
|
peppe
Sølv bruger
Medlem: 26.Okt.2010
Land: Danmark
Status: Offline
Point: 294
|
Sendt: 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
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 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
//Allan
|
|
peppe
Sølv bruger
Medlem: 26.Okt.2010
Land: Danmark
Status: Offline
Point: 294
|
Sendt: 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
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 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.
//Allan
|
|