Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1392to1396
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Seitenansicht VBA

Seitenansicht VBA
22.11.2014 13:02:42
Peter
Hallo ich bitte Euch um Eure Hilfe.
Ich verwende in einer Userform folgenden Code aus einem der hiesigen Beiträge:
Option Explicit
Private Sub ComboBox1_Change()
Dim intIndex As Integer
With ComboBox1
If .ListIndex > -1 Then
On Error Resume Next
intIndex = Sheets(.Value).Index
On Error GoTo 0
If intIndex > 0 Then
If Not Sheets(intIndex).Visible = xlSheetVisible Then
intIndex = 0
End If
End If
If intIndex > 0 Then
Me.Hide
Application.OnTime Now + TimeSerial(0, 0, 1), "'DruckVorschau """ & .Value & """'"
Else
MsgBox "Tabelle nicht vorhanden oder ausgeblendet"
End If
End If
End With
End Sub

Dieser Code listet jedoch alle Sheets auf. Ich möchte aber bestimmte Sheets nicht auflisten. Wer kann mir bitte helfen?
Besten Dank
Grüsse Peter

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
in dem Code wird keine Liste erstellt?...
22.11.2014 14:51:43
Tino
Hallo,
was meinst Du mit "Ich möchte aber bestimmte Sheets nicht auflisten"?
Gruß Tino

AW: in dem Code wird keine Liste erstellt?...
22.11.2014 15:50:58
Peter
Hallo Tino,
danke, dass Du Dich dieser Sache annimmst.
Ich habe ca. 10 Tabellen und es werden im Laufe der Zeit mehr.
Nur bestimmte Tabellen und die, die dazu kommen sind aufzulisten. Bestimmte feste Tabellen sollen jedoch nicht erscheinen. Denn diese Tabellen sind in der Liste nicht erwünscht bzw. erforderlich. Ich hoffe ich habe mich klar genug ausgedrückt. Viel Erfolg.
Grüsse Peter

AW: in dem Code wird keine Liste erstellt?...
22.11.2014 16:21:59
Tino
Hallo,
evt. geht es so.
In Array(...) kommen die die nicht gelistet werden sollen.
Die wo dazukommen sind dann nicht in dieser Liste.
Private Sub UserForm_Initialize()
Dim varNotInList, i%
'Tabellen auflisten die nicht gelistet werden sollen
varNotInList = Array("Tabelle1", "Tabelle3")
With ThisWorkbook
For i = 1 To .Sheets.Count
If Not IsNumeric(Application.Match(.Sheets(i).Name, varNotInList, 0)) Then
ComboBox1.AddItem .Sheets(i).Name
End If
Next i
End With
End Sub
Gruß Tino

Anzeige
AW: in dem Code wird keine Liste erstellt?...
22.11.2014 16:41:29
Peter
Hallo Tino,
besten Dank für Deine Mühe, ich werde das mal testen und gebe, dann wieder Bescheid.
Wünsche Dir ein schönes Wochenende.
Gruss Peter

AW: in dem Code wird keine Liste erstellt?...
23.11.2014 08:37:26
Peter
Hallo Tino,
habe gerade Test durchgeführt klappt einwandfrei. Vielen Dank.
Jetzt hätte ich noch eine kleine Bitte.
Die nachstehende Funktion löst ein Makro aus um die Arbeitsblätter in der Druckvorschau anzuzeigen.
das Makro hierfür ist "Druckvorschau(strTabName$)". Da in der von Dir gefertigten Listbox zweierlei Arbeitsblätter aufgeführt werden habe ich zwei Makros gefertigt die die beiden unterschiedlichen Arbeitsblätter in der Druckvorschau zeigen.
Wie bringe ich u.a. Funktion dazu, bei z. B. Tabellennamen beginnend Test Makro1 und bei Klasse Makro2 auszuführen.
Private Sub ListBox1_Click()
Dim intIndex As Integer
With ListBox1
If .ListIndex > -1 Then
On Error Resume Next
intIndex = Sheets(.Value).Index
On Error GoTo 0
If intIndex > 0 Then
If Not Sheets(intIndex).Visible = xlSheetVisible Then
intIndex = 0
End If
End If
If intIndex > 0 Then
UserForm1Druckvorschau.Hide
Application.OnTime Now + TimeSerial(0, 0, 1), "'DruckVorschau """ & .Value & """'"
Else
MsgBox "Tabelle nicht vorhanden oder ausgeblendet"
End If
End If
End With
End Sub

Vielleicht kannst Du mir die Lösung bringen.
Grüsse Peter

Anzeige
AW: in dem Code wird keine Liste erstellt?...
23.11.2014 09:34:40
Tino
Hallo,
evtl. geht es so, habe ich jetzt aber nicht getestet.
Private Sub ListBox1_Click()
Dim intIndex As Integer
With ListBox1
If .ListIndex > -1 Then
On Error Resume Next
intIndex = Sheets(.Value).Index
On Error GoTo 0
If intIndex > 0 Then
If Not Sheets(intIndex).Visible = xlSheetVisible Then
intIndex = 0
End If
End If
If intIndex > 0 Then
If (.Value Like "Test*") Or (.Value Like "Klasse*") Then
UserForm1Druckvorschau.Hide
If .Value Like "Test*" Then
Application.OnTime Now + TimeSerial(0, 0, 1), "'Makro1 """ & .Value & """'"
ElseIf .Value Like "Klasse*" Then
Application.OnTime Now + TimeSerial(0, 0, 1), "'Makro2 """ & .Value & """'"
End If
Else
MsgBox "Tabelle weder Test* noch Klasse*"
End If
Else
MsgBox "Tabelle nicht vorhanden oder ausgeblendet"
End If
End If
End With
End Sub
Gruß Tino

Anzeige
AW: Neue Anfrage zur Druckvorschau
23.11.2014 17:33:17
Peter
Hallo Tino,
Danke für Deine Hilfe. Musste ich nicht testen. Es läuft plötzlich einwandfrei.
Aber ich habe mit der Druckvorschau noch ein Problem.
Die Druckvorschau funktioniert nur mit dem in der Tabelle eingestellten Wert.
Ich hätte aber gerne, dass der Druckbereich eingestellt wird mit dem Wert, dass der
letzte Wert in der Zelle in Spalte A gesucht wird und dieser die max. Länge ist.
Ich hätte gerne etwas ähnliches wie folgende Anweisung eingebaut, habe aber zwei verschiedene
Tabellenarten:
'

Sub PrintArea05()   'Diese Version ist i.O.  Druckbereich wird eingestellt, gedruckt und  _
Druckbereich zurückgesetzt
'Dim ws As Worksheet
'Set ws = ThisWorkbook.ActiveSheet
'wsLR = ws.Cells(Rows.Count, 1).End(xlUp).Row
'wsLC = ws.Cells(1, Columns.Count).End(xlToLeft)
''ws.PageSetup.PrintArea = strDruckbereich
'Set PrintA = ws.Range("A1:G" & wsLR)        'Druckbereich wird hier bestimmt
'ws.PageSetup.PrintArea = PrintA.Address(0, 0)
''With ws
''    .Activate
''    lView = Application.ActiveWindow.View
''    .ResetAllPageBreaks 'Alle vorhandenen festen Seitenwechsel löschen
''    With .PageSetup
''    .LeftFooter = "&""Arial,Standard""&12Kontensaldo"
''    .CenterFooter = "&""Arial,Standard""&12Stand   " & Format(ActiveSheet.Range("N11"), "dd. _
mm.yyyy")
''    .RightFooter = "&""Arial,Standard""&12€        " & Format(ActiveSheet.Range("O11"), "###0. _
00")
''    End With
''    End With
'ws.PrintPreview 'Ansicht
''ws.PrintOut Copies:=1      'Ausdruck
'      'Druckbereich zurücksetzen
''ws.PageSetup.PrintArea = strDruckbereich
'End Sub

Die Druckansicht die bisher läuft ist:
'DruckVorschau und TabellenAnsicht wird für die Ausführung von Tabelle "Vorschau und Drucken" benötigt.
Sub DruckVorschau(strTabName$)
UserForm1Druckvorschau.Hide
Sheets(strTabName).PrintPreview
Application.OnTime Now + TimeSerial(0, 0, 1), "TabellenAnsicht"
End Sub
Ich hoffe Du oder auch andere hier im Forum können mir helfen.
Grüsse
Peter

Anzeige
AW: Neue Anfrage zur Druckvorschau
23.11.2014 19:44:15
Tino
Hallo,
evtl. geht es so, wenn ich es richtig verstanden habe.
Sub DruckVorschau(strTabname$)
Dim MaxRow&
Dim sPrintAr$

UserForm1Druckvorschau.Hide

With Sheets(strTabname)
    MaxRow = .Cells(.Rows.Count, 1).End(xlUp).Row
    
    sPrintAr = .PageSetup.PrintArea

    Application.DisplayAlerts = False
    .PageSetup.PrintArea = Intersect(.Rows(1).Resize(MaxRow), .UsedRange).Address(0, 0)
    Application.DisplayAlerts = True
    
    Application.OnTime Now + TimeSerial(0, 0, 1), "'TabellenAnsicht """ & strTabname & """,""" & sPrintAr & """'"
    
    .PrintPreview
    
End With
End Sub

Sub TabellenAnsicht(strTabname$, sPrintAr$)
Application.DisplayAlerts = False
    Sheets(strTabname).PageSetup.PrintArea = sPrintAr
Application.DisplayAlerts = True
'... 
'... 
'... 
End Sub
Gruß Tino

Anzeige
AW: Dank
23.11.2014 20:13:16
Peter
Hallo Tino,
habe die Sache ausprobiert, funktioniert einwandfrei.
Habe nur in Sub Tabellenansicht noch die Zeile "UserForm1Druckvorschau.Show" eingefügt.
Wünsche Dir noch einen schönen Abend.
Grüsse
Peter

AW: Erweiterung in Druckvorschau
24.11.2014 17:02:39
Peter
Hallo Tino und Forumfreunde,
ich habe ein neues Problem, das ich nicht lösen kann in Hinblick auf die Druckvorschau bzw. dem nachfolgenden Drucken. Ich habe ein Makro geschrieben, mit welchem ich bestimmte Zeilen ausblenden kann, wenn ein bestimmter Wert gegeben ist.
Jetzt weiss ich aber nicht, wo ich dieses Makro einfügen muss, damit es durchgeführt wird. Am Ende müssen die Zeilen wieder eingeblendet werden. Dies wahrscheinlich dann über ein weiteres Makro.
Bitte teilt mir mit, wie und an welcher stelle ich das Makro einfügen muss.
Das Makro anbei:
Sub bestimmte_Zeilen_ausblenden()
If Range("$A$37") = 0 Then
Rows(37).EntireRow.Hidden = True
Rows(38).EntireRow.Hidden = True
Rows(39).EntireRow.Hidden = True
Rows(40).EntireRow.Hidden = True
Rows(41).EntireRow.Hidden = True
End If
If Range("$A$37")  0 Then
Rows(37).EntireRow.Hidden = False
Rows(38).EntireRow.Hidden = False
Rows(39).EntireRow.Hidden = False
Rows(40).EntireRow.Hidden = False
Rows(41).EntireRow.Hidden = False
End If
ActiveSheet.PrintPreview
Rows.Hidden = False
End Sub
Besten Dank für Eure Hilfe
Gruss Peter

Anzeige
AW: Erweiterung in Druckvorschau
24.11.2014 18:08:36
Peter
Hallo Tino und Forumfreunde,
ich habe ein neues Problem, das ich nicht lösen kann in Hinblick auf die Druckvorschau bzw. dem nachfolgenden Drucken. Ich habe ein Makro geschrieben, mit welchem ich bestimmte Zeilen ausblenden kann, wenn ein bestimmter Wert gegeben ist.
Jetzt weiss ich aber nicht, wo ich dieses Makro einfügen muss, damit es durchgeführt wird. Am Ende müssen die Zeilen wieder eingeblendet werden. Dies wahrscheinlich dann über ein weiteres Makro.
Bitte teilt mir mit, wie und an welcher stelle ich das Makro einfügen muss.
Das Makro anbei:
Sub bestimmte_Zeilen_ausblenden()
If Range("$A$37") = 0 Then
Rows(37).EntireRow.Hidden = True
Rows(38).EntireRow.Hidden = True
Rows(39).EntireRow.Hidden = True
Rows(40).EntireRow.Hidden = True
Rows(41).EntireRow.Hidden = True
End If
If Range("$A$37")  0 Then
Rows(37).EntireRow.Hidden = False
Rows(38).EntireRow.Hidden = False
Rows(39).EntireRow.Hidden = False
Rows(40).EntireRow.Hidden = False
Rows(41).EntireRow.Hidden = False
End If
ActiveSheet.PrintPreview
Rows.Hidden = False
End Sub
Besten Dank für Eure Hilfe
Gruss Peter

Anzeige
AW: Erweiterung in Druckvorschau
25.11.2014 13:55:26
Tino
Hallo,
vieleicht so. (nicht getestet)
Sub DruckVorschau(strTabname$)
Dim MaxRow&
Dim sPrintAr$
UserForm1Druckvorschau.Hide
With Sheets(strTabname)
bestimmte_Zeilen_ausblenden .Name, True
MaxRow = .Cells(.Rows.Count, 1).End(xlUp).Row
sPrintAr = .PageSetup.PrintArea
Application.DisplayAlerts = False
.PageSetup.PrintArea = Intersect(.Rows(1).Resize(MaxRow), .UsedRange).Address(0, 0)
Application.DisplayAlerts = True
Application.OnTime Now + TimeSerial(0, 0, 1), _
"'TabellenAnsicht """ & strTabname & """,""" & sPrintAr & """'"
.PrintPreview
End With
End Sub
Sub TabellenAnsicht(strTabname$, sPrintAr$)
Application.DisplayAlerts = False
With Sheets(strTabname)
bestimmte_Zeilen_ausblenden .Name, False
.PageSetup.PrintArea = sPrintAr
End With
Application.DisplayAlerts = True
'anderer Code
End Sub
Sub bestimmte_Zeilen_ausblenden(strTabname$, booHidden As Boolean)
With Sheets(strTabname$)
If booHidden Then
If .Range("$A$37") = 0 Then
.Rows(37).Resize(5).EntireRow.Hidden = True
ElseIf Range("$A$37")  0 Then
.Rows(37).Resize(5).EntireRow.Hidden = False
End If
Else
.Rows(37).Resize(5).EntireRow.Hidden = False
End If
End With
End Sub
Gruß Tino

Anzeige
AW: Abschluss
27.11.2014 08:05:28
Peter
Hallo Tino,
besten Dank für Deine Mitteilung. Habe es noch nicht getestet.
Habe zwichenzeitlich eine andere Lösung erhalten die einwand-
frei funktioniert. Werde aber Deine Lösung noch testen.
Besten Dank nochmals für Deine Mühe. Das Projekt ist jetzt ab-
geschlossen.
Grüsse Peter

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige