Print side | Luk vindue

Print-knap

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=3418
Udskrevet den: 21.Nov.2024 kl. 14:29


Emne: Print-knap
Besked fra: MartinBugge
Emne: Print-knap
Posteringsdato: 23.Mar.2018 kl. 14:26
Hej
 
Jeg har lavet en print knap med følgende kode:
 
Sub Knap1_Klik()
'UpdatebyExtendoffice20170811
    Dim i As Integer
    Dim xCSheetRow As Integer
    Dim xSName As String
    Dim xCSheet As Variant
    Dim xRgVal As String
    On Error Resume Next
    xSName = "Overblik"
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set xCSheet = ActiveWorkbook.Worksheets(xSName)
    xCSheetRow = xCSheet.Range("B65536").End(xlUp).Row
    For i = 2 To xCSheetRow
        xRgVal = xCSheet.Range("B" & i).Value
        If xRgVal = "x" Or xRgVal = "X" Then
            If xCSheet.Range("A" & i).Value <> "" Then
                ActiveWorkbook.Worksheets(xCSheet.Range("A" & i).Value).PrintOut
            End If
        End If
    Next
    Cells.Columns.AutoFit
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub

Tænker at det godt kunne gøre mere enkelt, men det rækker min viden vidst ikke til ;)
 
Mit problem består i, at jeg gerne vil have at den altid udskrive side 1 på ark 2 og kun side 3 hvis "A131" ikke er tom. Side 2 skal aldrig udskrives, da det blot er information.
 
Er der en venlig sjæl som kan hjælpe mig med at løse ovenstående?



Svar:
Besked fra: EXCELGAARD
Posteringsdato: 23.Mar.2018 kl. 16:00
Umiddelbart er der intet i vejen med koden, omend der er en del overflødig kode.

Måske denne kan hjælpe dig:
Sub Knap1_Klik()
   
    On Error Resume Next

    Application.DisplayAlerts = False
    Application.ScreenUpdating = False

    Dim i As Long
    Dim xCSheet As Worksheet
    Set xCSheet = Worksheets("Overblik")

    For i = 2 To xCSheet.Range("B" & xCSheet.Rows.Count).End(xlUp).Row
        If UCase$(xCSheet.Range("B" & i).Value) = "X" And xCSheet.Range("A" & i).Value <> "" Then Worksheets(xCSheet.Range("A" & i).Value).PrintOut
    Next
    Cells.Columns.AutoFit
   
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True

    Set xCSheet = Nothing

End Sub
Da jeg ikke har dit regneark, så er koden, selvfølgelig, ikke testet - men, jeg tror, den virker Geek


-------------
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: MartinBugge
Posteringsdato: 23.Mar.2018 kl. 16:27
Tak for hjælpen til at fjerne alt det overflødige i koden. Den virker perfekt Smile
 
Men mit problem består mere i, at jeg gerne vil have at den altid (når jeg har markeret at den skal udskrive ark 2 med "x") udskrive side 1 på ark 2 og kun side 3 hvis "A131" ikke er tom. Side 2 skal aldrig udskrives, da det blot er information.
 
Jeg vil gerne dele filen, men da den indeholder en del intern information er det desværre ikke muligt.


Besked fra: EXCELGAARD
Posteringsdato: 23.Mar.2018 kl. 16:30
OK...
Jeg skal lige vide: Så, der er altså kun 3 ark/faner i filen?

(Jeg spørger, fordi din tæller indikere, at der er mange ark)


-------------
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: EXCELGAARD
Posteringsdato: 23.Mar.2018 kl. 16:32
Er de samme sider på samme ark???

(Jeg har lidt svært ved at gennemskue, hvordan din regnearksfil er opbygget)


-------------
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: MartinBugge
Posteringsdato: 23.Mar.2018 kl. 17:05
Der er pt. 8 ark/faner men der kommer 2-3 mere på, derfor har jeg bare gjort tælleren klar til flere.

De fleste af arkene/fanerne har kun 1 side, mens ark/fane 2 har 3 sider. Håber det giver mening 😅 Ellers kan jeg muligvis uploaded et par screenshoots når jeg kommer hjem 😊



Print side | Luk vindue