Forfatter |
Emne Søg Emne funktioner
|
kfl
Forum Begynder
Medlem: 04.Sep.2013
Land: Danmark
Status: Offline
Point: 10
|
Emne: Markere alle Ark, pånær et Sendt: 04.Sep.2013 kl. 11:44 |
Hej, jeg er helt "ny" i Excel og især Makro'er. Jeg skal lave en makro, der markerer alle ark, pånær et. Og derefter udskriver som PDF. Antallet af ark, og arknavne varierer. Men det ark der ikke skal udskrives hedder altid det samme. Håber det giver mening. /Hilsen Kim (Newbie )
|
|
|
|
|
EXCELGAARD
Platin bruger
Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5419
|
Sendt: 04.Sep.2013 kl. 12:55 |
Nedenstående makro skulle gøre det - byg selv ind i din egen kode...
Sub Select_All_Sheets_But_One()
' * ' Initialize Const Sheet_Not_To_Select As String = "Ark2"
' * ' Define variables Dim WS As Worksheet
' * ' Select all sheets, but the one specified For Each WS In Worksheets If WS.Name <> Sheet_Not_To_Select Then WS.Select ' Make sure the sheet is not among any selected sheets already Next For Each WS In Worksheets If WS.Name <> Sheet_Not_To_Select Then WS.Select False Next
ES: ' End of Sub Set WS = Nothing
End Sub |
|
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.
|
|
kfl
Forum Begynder
Medlem: 04.Sep.2013
Land: Danmark
Status: Offline
Point: 10
|
Sendt: 04.Sep.2013 kl. 17:23 |
Min kode endte sådan: Sub Select_All_Sheets_But_One() ' * ' Initialize Const Sheet_Not_To_Select As String = "Start" ' * ' Define variables Dim WS As Worksheet ' * ' Select all sheets, but the one specified For Each WS In Worksheets If WS.Name <> Sheet_Not_To_Select Then WS.Select ' Make sure the sheet is not among any selected sheets already Next For Each WS In Worksheets If WS.Name <> Sheet_Not_To_Select Then WS.Select False Next ' ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "C:\Documents and Settings\Kim\Dokumenter\TEST.pdf" _ , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _ :=False, OpenAfterPublish:=True ES: ' End of Sub Set WS = Nothing End Sub Jeg kunne godt tænke mig at den automatisk gemmer PDF filen i samme mappe som Excel filen. (det gør den ikke nu - hvis jeg kopierer Excel filen til en ny mappe, gemmer den stadig i samme mappe) Det kunne også være rart hvis den kunne fjerne markeringen fra arkene igen. Håber nogen kan hjælpe - på forhånd tak
|
|
EXCELGAARD
Platin bruger
Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5419
|
Sendt: 04.Sep.2013 kl. 19:26 |
Der, hvor du angiver stien, "C:\Documents and Settings\Kim\Dokumenter\", skriver du i stedet:
ThisWorkbook.Path & "\Test.PDF" |
...og PDFen vil blive gemt i samme mappe, som selve Excel-filen. For at hoppe tilbage til det originale ark, efter dannelse af PDF, skal du under defination af variabler skrive:
Dim WAI As Worksheet Set WAI = ActiveSheet |
...og, som de to sidste linjer i koden skrive:
WAI.Select Set WAI = Nothing |
|
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.
|
|
kfl
Forum Begynder
Medlem: 04.Sep.2013
Land: Danmark
Status: Offline
Point: 10
|
Sendt: 04.Sep.2013 kl. 19:37 |
Det virker perfekt :)
|
|
EXCELGAARD
Platin bruger
Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5419
|
Sendt: 04.Sep.2013 kl. 19:38 |
Velbekomme :-)
|
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.
|
|
kfl
Forum Begynder
Medlem: 04.Sep.2013
Land: Danmark
Status: Offline
Point: 10
|
Sendt: 15.Nov.2013 kl. 17:35 |
Så er den gal igen :)
Jeg har behov for at der er 2 ark der ikke bliver markeret..
Har forsøgt mig lidt frem, men desværre uden held.
|
|
EXCELGAARD
Platin bruger
Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5419
|
Sendt: 15.Nov.2013 kl. 19:33 |
Arrrh, kom nu... Alt andet lige, så er det jo blot det samme! Definer en ekstra variabel/konstant til det andet ark osse, og test for dette osse:
Const Sheet_Not_To_Select_01 As String = "Ark1" Const Sheet_Not_To_Select_02 As String = "Ark2"
' ...anden kode...
If WS.Name <> Sheet_Not_To_Select_01 And WS.Name <> Sheet_Not_To_Select_02 Then WS.Select False |
|
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.
|
|
Skemalægger
Bronze bruger
Medlem: 27.Okt.2013
Land: Danmark
Status: Offline
Point: 92
|
Sendt: 16.Nov.2013 kl. 22:23 |
Og så har jeg en variant af spørgsmålet:
Jeg skal altid udskrive de første 10 ark i mappen (ugeskemaer), men de hedder noget forskelligt fra mappe til mappe - Lægger skema for uge 1-10, 2-20 osv. Derudover er der i hver mappe 7 skemaer, der ikke skal udskrives. Det bliver jo et langt udtryk, hvis jeg følger eksemplet ovenfor. Er der en smartere løsning ?
|
|
EXCELGAARD
Platin bruger
Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5419
|
Sendt: 17.Nov.2013 kl. 12:38 |
Det kommer helt og aldeles an på, hvordan du har 'system' i dine ark... Men, et forslag kunne jo være:
Worksheets(1).Select For Counter = 2 To 10 Worksheets(Counter).Select False Next |
Ellers prøv dig lidt frem med noget i den stil...
|
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.
|
|
Skemalægger
Bronze bruger
Medlem: 27.Okt.2013
Land: Danmark
Status: Offline
Point: 92
|
Sendt: 17.Nov.2013 kl. 12:44 |
Jeg kan jo bare sørge for altid at lade de første 10 være dem, der skal vælges. Dvs man kan vælge vha nummer, selvom de har et andet navn på fanen ? Jeg forstår din kode som at ark 2 til 10 gøres aktive ?
Hvorfor FALSE ?
|
|
EXCELGAARD
Platin bruger
Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5419
|
Sendt: 17.Nov.2013 kl. 13:02 |
Jeg kan jo bare sørge for altid at lade de første 10 være dem, der skal vælges. |
Nemlig
Dvs man kan vælge vha nummer, selvom de har et andet navn på fanen ? |
Yep
Jeg forstår din kode som at ark 2 til 10 gøres aktive? |
You got it ...og, ark nummer 1.
Hvorfor FALSE? |
Hvis man blot bruger ' .Select' vil alle andre ark, der måtte være markeret/valgt i forvejen blive ' un-selected', og da du ønsker, at udskrive alle de markerede ark, skal du sørge for, at dette ikke sker - og, til dette foremål benyttes argumentet ' False'.
|
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.
|
|
Skemalægger
Bronze bruger
Medlem: 27.Okt.2013
Land: Danmark
Status: Offline
Point: 92
|
Sendt: 17.Nov.2013 kl. 13:08 |
Se se .... dejligt med en tålmodig pædagog
Noget i vejen for blot at skrive For Counter = 1 To 10 Worksheets(Counter).Select False Next
Altså udelade den første select - eller er det for at være sikker på at starte det rigtige sted - f.eks. ikke stå på fane 12 og få den med ?
Og vil alle 10 ark fortsat være markeret, når man vender tilbage, altså skal de "deselectes" ?
|
|