online 1
gast (50)

/ Forum / Skripte(PHP,ASP,Perl...)

Skripte(PHP,ASP,Perl...)Skripte(PHP,ASP,Perl...)

Fragevon snailhouse vom 07.08.2019, 20:37 Options

Excel VBA -- Tabellenblätter auswählen und drucken

Hallo zusammen,

ich habe eine Excel-Datei mit mehreren Tabellenblättern.
Über ein Formular (das bereits funktioniert und die 3 Werte
AuswahlTabelle1 bis 3 zurückgibt) soll ausgewählt werden, welche der 3 Tabellenblätter ausgedruckt werden sollen.

Um herauszufinden, wie man die Tabellenblätter markiert und anschließend den Druckauftrag startet,
habe ich ein Makro aufgezeichnet und dann versucht, den Code entsprechend anzupassen, indem ich den Inhalt der
inneren Klammer versucht habe durch Verketten zu einem String "zusammenzubaseln", was aber leider nicht
funktioniert hat..

Der Originalcode für das Markieren war:

sheets(Array("Tabelle1", "Tabelle2").Select


...und das war mein Versuch, wäre nett, wenn mir jemand weiterhelfen könnte, die denn die Zeile, in der die
Tabellenblätter ausgewählt werden, auszusehen hat..

Im voraus schonmal vielen Dank!

Nun aber der Code



Option Explicit

Private Sub Button_Drucken Click() 
Dim owB As workbook
Set owBDatei = Thisworkbook 
Dim Auswahl As string 


Formular_Druckauswahl.Hide

' Mappen abhängig von Auswahl markieren 
If Auswahl_Tabelle1= True Then 
	Auswahl = Auswahl & """Tabelle1""" 
End If

If AuswahlTabelle2 = True Then 
	if Auswahl<>"" then
		Auswahl = Auswahl & ", ""Tabelle1"""
	Else
		Auswahl = Auswahl & """Tabelle1""" 
	End If 
End If

If AuswahlTabelle3 = True Then 
	If Auswahl <> "" Then
		Auswahl = Auswahl & ", ""Tabelle2"""
	Else
		Auswahl = Auswahl & """Tabelle2""" 
	End If
End If

MsgBox Auswahl

If Auswahl <> "" Then

	owBDatei.sheets(Array(Auswahl)).select 
	owBDatei.sheets("Tabelle1").ACtivate 
	ACtivewindow.selectedsheets.Printout 
else 

	msgbox "Auswahl erforderlich!"
end if

End Sub


Antwort schreiben

Antwort 1 von nighty vom 08.08.2019, 11:48 Options

hi snailhouse :-)

vielleicht hilfreich :-)

gruss nighty

Option Explicit
Sub MehrereSheets()
Dim SammelSheets As String, Tab1 As String, Tab2 As String
Dim ShIndex As Integer
Do
Tab1 = InputBox("Wie heißt das erste zu bearbeitende Tabellenblatt?", "Tabellenblattauswahl")
Loop While SheetExists(Tab1) = False
Do
Tab2 = InputBox("Wie heißt das letzte zu bearbeitende Tabellenblatt?", "Tabellenblattauswahl")
Loop While SheetExists(Tab2) = False
For ShIndex = Sheets(Tab1).Index To Sheets(Tab2).Index
SammelSheets = SammelSheets & Worksheets(ShIndex).Name & ","
Next
SammelSheets = Mid(SammelSheets, 1, Len(SammelSheets) - 1)
Worksheets(Split(SammelSheets, ",")).Select
End Sub


Public Function SheetExists(strName As String) As Boolean
On Error Resume Next
SheetExists = Not Sheets(strName) Is Nothing
End Function

Antwort 2 von snailhouse vom 08.08.2019, 19:16 Options

Hallo nighty,

vielen Dank für die Antwort, so ging's auch.

Ich bin heute durch eine Hilfestellung eines Kollegen auf folgende Lösung gekommen:

Auch das funktioniert.

Gruß
Jürgen


Option Explicit

Private Sub Button_Drucken_Click()

Dim oWB As Workbook
Set oWB = ThisWorkbook
Dim oWsListe As Worksheet
Set oWsListe = oWB.Worksheets("Tabelle1")
Dim MappenArray() As String
Dim I As Integer

ReDim MappenArray(2)

Formular_Druckauswahl.Hide

' Schritt 1: ermitteln der Anzahl der ausgewählten Tabellenblätter

I = -1

If Auswahltabelle1 = True Then
  I = I + 1
End If

If Auswahltabelle2 = True Then
  I = I + 1
End If

If Auswahltabelle3 = True Then
  I = I + 1
End If

ReDim MappenArray(I)   ' Ende Ermittlung Anzahl der ausgewählten Tabellenblätter

' Schritt 2: Füllen des Arrays für Tabellenblattmarkierung

I = 0
If Auswahltabelle1 = True Then
  MappenArray(I) = "Tabelle1"
  I = I + 1
End If

If Auswahltabelle2 = True Then
  MappenArray(I) = "Tabelle2"
  I = I + 1
End If

If Auswahltabelle3 = True Then
  MappenArray(I) = "Tabelle3"
End If

    Sheets(MappenArray).Select
    ActiveWindow.SelectedSheets.PrintOut Copies:=1
    oWsListe.Cells(3, 1).Select
End Sub

Ähnliche Themen

Tabellenblätter ein- / ausblenden
dirkvdhurk  16.04.2007 - 247 Hits - 1 Antwort

Excel VBA: Berechnung ausschalten?
Rolf___  06.08.2007 - 137 Hits - 2 Antworten

Excel VBA - Wie kann ich in mehrere Bilddateien öffnen und drucken
brumm_49  08.08.2007 - 97 Hits - 3 Antworten

Excel Tabellenblätter zusammenführen
tauchi  14.08.2007 - 182 Hits - 1 Antwort

VBA-Excel
mentosbasi  28.05.2008 - 349 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026