Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1396to1400
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

Drucken via Userform Änderung

Drucken via Userform Änderung
07.12.2014 14:23:46
Peter

Hallo,
ich habe in mein Projekt die Exceldatei 42525.xls aus Herbers Archiv eingebaut. Diese
funktioniert bis auf ein Problem einwandfrei.
Wenn ich die Userform aufrufe, öffnet sich eine weiter UserForm "Tabellenauswahl für Drucken". Wenn ich nun die darin aufgeführten Seiten wähle und über Seitenvorschau auswähle, öffnet sich die Vorschau. Beim Beenden der Vorschau, schliesst sich diese Userform "Tabellenauswahl für Drucken".
Nun das Problem: Ich hätte gerne, dass nach Schliessen der Vorschau automatisch wieder zurück geht in Userform Tabellenauswahl für Drucken, damit ich alle aufgeführten Tabellen durchsehen kann.
Vielleich könnt ihr mir helfen.
Gruss Peter
Datei anbei:https://www.herber.de/bbs/user/94259.xls

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: meinst Du so ?
07.12.2014 15:47:14
Peter
Hallo Robert,
klappt ja wunderbar, genau so habe ich mir das vorgestellt.
Ich habe kurz die VBA verglichen, finde auf die schnelle aber nicht, was Du konkret
geändert hast. Vielleicht bist Du so freundlich und teilst mir noch mit, was für eine
Änderung vorgenommen wurde.
Besten Dank
Gruss Peter

siehe 'eingefügt... Gruß
07.12.2014 15:58:54
robert

Sub Drucken(Optional Vorschau As Boolean = False)
Dim Blaetter(), j%, i%, wks
j% = 0
Set wks = ActiveSheet
For i = 0 To Me.ListBox_Tabellen.ListCount - 1
If Me.ListBox_Tabellen.Selected(i) = True Then
j = j + 1
ReDim Preserve Blaetter(1 To j)
Blaetter(j) = Me.ListBox_Tabellen.List(i, 0)
End If
Next
Me.Hide
If Me.OB_Druck_gruppiert = True Then
If Vorschau = True Then
ActiveWorkbook.Sheets(Blaetter).PrintPreview
Else
ActiveWorkbook.Sheets(Blaetter).PrintOut
End If
Else
For i = LBound(Blaetter) To UBound(Blaetter)
If Vorschau = True Then
ActiveWorkbook.Sheets(Blaetter(i)).PrintPreview
Else
ActiveWorkbook.Sheets(Blaetter(i)).PrintOut
End If
Next
End If
wks.Select
UF_Druckauswahl.sh    'eingefügt
End Sub

Anzeige
AW: noch eine Frage
07.12.2014 16:10:58
Peter
Hallo Robert,
vielen Dank, es ist schon manchmal wunderlich wie man über so kleine Zeilen hinwegblickt.
Nochmals herzlichen Dank für Deine schnelle Hilfe.
Jetzt habe ich noch ein kleines Problem. Ich habe mehrere Tabellen, die fortlaufend geführt werden.
Für die Voransicht und das Drucken benötige ich die Einblendung von Summenergebnis. Ich habe das gelöst indem ich die Summenformeln in die Zeilen A1001:F1003 gesetzt habe. Mittels der nachfolgenden Daten blende ich die leeren Zeilen aus und anschliessend wieder ein. Kannst Du mir verraten, wo ich diese einfügen muss, damit sie richtig ausgeführt werden.
Sub Tabellen_auswählen_Ausblenden()
Dim wksWS As Worksheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each wksWS In ActiveWorkbook.Worksheets
If wksWS.Name Like "*Kto.-VereinEhem. 2*" Then
wksWS.Select
Application.Run "Ausblenden"
'Application.Run "Einblenden"
End If
Next wksWS
Application.DisplayAlerts = True
UF_ListeJahrKonten.Show
Application.ScreenUpdating = True
End Sub

Sub Tabellen_auswählen_Einblenden()
Dim wksWS As Worksheet
Application.DisplayAlerts = False
For Each wksWS In ActiveWorkbook.Worksheets
If wksWS.Name Like "*Kto.-VereinEhem. 2*" Then
wksWS.Select
'Application.Run "Ausblenden"
Application.Run "Einblenden"
End If
Next wksWS
Application.DisplayAlerts = True
'UF_ListeJahrKonten.Show
End Sub

Problem bei meiner Lösung ist, dass es ewig dauert, bis die Änderung durchgeführt ist.
Nochmals Danke für Deine Bemühung.
Gruss Peter

Anzeige
Korrektur.....
07.12.2014 16:21:26
robert
UF_Druckauswahl.Show 'eingefügt
wo sind die Makros " Einblenden " " Ausblenden "
Mit Deinem Code suchst Du ja nur die Tabellenblätter......
Gruß
robert

AW: Korrektur.....
07.12.2014 19:33:28
Peter
Hallo Robert,
melde mich sehr spät, aber nach öffnen Deiner Datei hat sich eine Art Virus gemeldet, bin noch immer nicht sicher ob es meine Exceldatei getroffen hat.
Zu Deiner Frage: Ich starte das Makro Ausblenden in einem Button der die UserForm öffnet. Und wenn ich diese schliesse gehe ich über einen anderen Button und blende die Spalten wieder ein. Diese beiden Prozeduren dauern aber "ewig". Kennst Du einen anderen und ggf. schnelleren Weg?
Gruss Peter

Anzeige
AW: Korrektur.....
07.12.2014 19:38:39
robert
Hi,
zum Virus:
ich hab doch nur in Deiner! Datei eine Zeile eingefügt...
zum Aus-Einblenden:
Ohne die Makros zu kennen ? keine Lösung....
Gruß
robert

AW: Korrektur.....
07.12.2014 19:45:32
Peter
Hallo Robert,
war kein Vorwurf an Dich sondern nur eine Feststellung, weshalb ich so lange brauchte Dir zu antworten. Es liegt aber nach Prüfung kein Fehler vor. Als ich die Datei geöffnet hatte und die Zeile in meine Prozedur einfügte, wurde mir meine Exceldatei angezeigt, wie diese systematisch gelöscht wurde. Habe dann sofort Rechner heruntergefahren.
entschuldige habe vergessen die Makros bei zufügen:
Sub Ausblenden()
Dim Zelle As Range
Dim ws As Worksheet
Set ws = Application.ThisWorkbook.ActiveSheet
For Each Zelle In ws.Range("a1:a1000").Cells
If Zelle = "" Then
ws.Rows(Zelle.Row).Hidden = True
End If
Next
End Sub

Sub Einblenden()
Dim Zelle As Range
Dim ws As Worksheet
Set ws = ThisWorkbook.ActiveSheet
For Each Zelle In ws.Range("a1:a1000").Cells
If Zelle = "" Then
Rows(Zelle.Row).Hidden = False
End If
Next
End Sub

Anzeige
nachgefragt....
07.12.2014 20:36:15
robert
Hi,
willst du nur die Summenzeilen sehen ?
Momentan blendest Du nur die Leerzeilen aus, dh.
wenn in Zeile 1 bis 896 etwas steht, wird nicht ausgeblendet.
Eine abgespeckte Originaldatei wäre ganz gut, denn deine Codes
beziehen sich auf andere Blattnamen lt. Beispieldatei.
Gruß
robert

AW: nachgefragt....
07.12.2014 22:00:56
Peter
Hallo Robert,
ich habe noch eine andere Prozedur in welcher die Tabellen ausgewählt werden, die mit dem
ersten Namensbegriff der Tabellen zuzüglich der zwei aus den Jahreszahlen filtert. Beispiel:
für Konto 2014, Konto 2015 usw. "Konto 2". Damit werden alle Tabellen Konto 2 ausgewählt und
dann der Filter gemäss

Sub Ausblenden () verwendet. Anbei die Sub:

Sub Tabellen_auswählen_Ausblenden()
Dim wksWS As Worksheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each wksWS In ActiveWorkbook.Worksheets
If wksWS.Name Like "*Kto 2*" Then
wksWS.Select
Application.Run "Ausblenden"
'Application.Run "Einblenden"
End If
Next wksWS
Application.DisplayAlerts = True
UF_ListeJahrKonten.Show
Application.ScreenUpdating = True
End Sub

Ich hoffe Du verstehst jetzt den Ablauf. Jetzt wäre es für mich wichtig, wo ich dieses Makro beginne und wo mit gleichem Makro jedoch mit Application.Run "Einblenden" einsetze. Vorallem, wie das ganze beschleunigt werden kann.
Im übrigen stehen nacheinander von Zeile 4 bis max. 1000 Werte wie bereits schon ausgeführt in den Zeilen 1001-1002 die hierzu errechneten Summen. Es sollen also sowohl in der Voransicht als auch beim Ausdruck die Buchungen zusammen mit den Summen erscheinen, wenn jedoch gebucht wird werden die Summen wieder nach unten gelegt und über die erste freie Zeile von oben gesehen wird weitergebucht.
Ich hoffe die Angaben sind jetzt präzise genug.
Danke für Deine Mühe.
Einen schönen Abend oder je nachdem einen guten Morgen.
Gruss Peter

Anzeige
AW: neues Problem
08.12.2014 08:29:24
Peter
Hallo Robert,
ich habe jetzt eine neue Lösung für Filter setzen und aufheben. Funktioniert einwandfrei.
Sub FilterAufheben()
ActiveSheet.UsedRange.AutoFilter
End Sub

Sub FilterSetzen1()
Dim wksWS As Worksheet
Dim ws As Worksheet
For Each wksWS In ActiveWorkbook.Worksheets
If wksWS.Name Like "*Kto.-VereinEhem. 2*" Then
wksWS.Select
End If
Next wksWS
For Each ws In Worksheets                      'ab hier scheitert die Prozedur
If ws.AutoFilterMode Then
If ws.FilterMode Then ws.ShowAllData
Else
ws.UsedRange.AutoFilter
End If
ws.UsedRange.AutoFilter Field:=1, Criteria1:="<>"
Next
'ActiveSheet.PrintPreview
End Sub
Jetzt habe ich nur ein Problem. Ab For wird das Worksheet nicht erkannt. Hier liegt ein Fehler vor den ich leider nicht zu beheben weiss. Vielleicht kann mir jemand helfen.
Gruss Peter

Anzeige
AW: alle Fehler beseitigt Lösung gefunden
08.12.2014 11:44:58
Peter
Hallo Robert,
besten Dank für Deine Mühe. Zwischenzeitlich habe ich die Lösung gefunden.
Wünsche noch einen schönen Tag.
Gruss Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige