Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1184to1188
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
Spaten ausb. Drucken und PDF erzeugen
Thomas
Hallo Excelgemeinde,
ich bin schon lange am umschreiben meiner Mappe dran und komme nicht weiter. Mit diesem Code _
habe ich bisher gedruckt und die PDF erzeugt.

Private Sub CommandButton5_Click()
Dim ArrDruck() As String
Dim i As Integer
ArrDruck = Split("Abr.", ",")
For i = 0 To UBound(ArrDruck)
With ThisWorkbook.Sheets(ArrDruck(i))
.PrintOut copies:=2
If .Name = "Abr." Then
'Blatt ggf. als PDF-Datei speichern und anzeigen
If MsgBox(Prompt:="Blatt """ & .Name & """ als PDF-Datei exportieren?", _
Buttons:=vbQuestion + vbYesNo, Title:="PDF-Datei erstellen") = vbYes Then
.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="D:\Neue Aufgaben\PDF Dateien\" & ActiveSheet.Range("Z8").Text _
& "-" & Format(Now, "YYYY-MM-DD hh-mm-ss") & " PDF.pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=False, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
End If
End If
End With
Next
End Sub

Nun hab ich zur besseren Übersicht alles auf einem Tab nebeneinander und mit diesem Code Blende _
ich die Spalten aus.

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Range("A:X").EntireColumn.Hidden = False
'Eingabe Adresse anpassen
If Target.Address = "$Z$8" Then
Select Case Target
Case "Whg1"
Range("I:X").EntireColumn.Hidden = True
Case "Whg2"
Range("B:I,Q:X").EntireColumn.Hidden = True
Case "Whg3"
Range("B:Q").EntireColumn.Hidden = True
End Select
End If
Application.ScreenUpdating = True
End Sub

Nun mein Problem. Wie muss der Code umgeschrieben werden oder lauten, das nur der Bereich gedruckt wird gemäss Z8 in Tab Abr.? Es kann so aussehen das ich Z8 (Drop Down) änder und auf Schaltfläche Drucken gehe oder aber das ich nur ein mal auf Drucken gehe und das Makro dann jeden Bereich nacheinander Druckt und dabei die Spalten aus- bzw eingeblendet werden, PDF erzeugt und Speichert. Also aus den beiden Cods einen machen.
Mit freundlichen Grüßen
Thomas T.
AW: Spaten ausb. Drucken und PDF erzeugen
02.11.2010 07:21:28
fcs
Hallo Thomas,
damit die Kombination der Prozeduren möglich wird muss du die Auswahl in Z8 um den Eintrag "Alle" oder ähnlich erweitern. Dann kann man den Druck entsprechend steuern. Außerdem muss du den Druckbereich festlegen aux A?:X?.
Gruß
Franz
Private Sub CommandButton5_Click()
Dim sWohnungen As String
Dim arrWohnungen
Dim i As Integer
sWohnungen = Worksheets("Abr.").Range("Z8")
If sWohnungen = "Alle" Then
arrWohnungen = Array("Whg1", "Whg2", "Whg2")
For i = LBound(arrWohnungen) To UBound(arrWohnungen)
Call SpaltenWohnungen(sWohnung:=arrWohnungen(i))
Call DruckenWohnung(sWohnung:=arrWohnungen(i))
Next
Else
Call DruckenWohnung(sWohnung:=sWohnungen)
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$Z$8" Then Call SpaltenWohnungen(sWohnung:=Target.Value)
End Sub
Private Sub SpaltenWohnungen(ByVal sWohnung As String)
Application.ScreenUpdating = False
With ThisWorkbook.Sheets("Abr.")
.Range("A:X").EntireColumn.Hidden = False
'Eingabe Adresse anpassen
Select Case sWohnung
Case "Whg1"
.Range("I:X").EntireColumn.Hidden = True
Case "Whg2"
.Range("B:I,Q:X").EntireColumn.Hidden = True
Case "Whg3"
.Range("B:Q").EntireColumn.Hidden = True
Case "Alle"
'        .Range("I:X").EntireColumn.Hidden = True
End Select
End With
Application.ScreenUpdating = True
End Sub
Private Sub DruckenWohnung(ByVal sWohnung)
With ThisWorkbook.Sheets("Abr.")
.PrintOut copies:=2
'Blatt ggf. als PDF-Datei speichern und anzeigen
If MsgBox(Prompt:="Ausdruch für """ & sWohnung & """ als PDF-Datei exportieren?", _
Buttons:=vbQuestion + vbYesNo, Title:="PDF-Datei erstellen") = vbYes Then
.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="D:\Neue Aufgaben\PDF Dateien\" & sWohnung _
& "-" & Format(Now, "YYYY-MM-DD hh-mm-ss") & " PDF.pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=False, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
End If
End With
End Sub

Anzeige
AW: Spaten ausb. Drucken und PDF erzeugen
02.11.2010 10:23:20
Thomas
Einen schönen guten Morgern Franz,
ich danke Dir für deine Hilfe und habe wie Du sagtest den Druckbereich festgelegt. Das mit dem "Alle" hatte ich schon da ich ja wieder alle Spalten einblenden will. Dein Code musste ich ändern da Whg2 doppelt gedruckt wurde aber dies war eine gute Übung für mich.
Ich habe diese Formel in A41 stehen die beim ausdruck der Whgs angepasst werden sollte.
WENN(B38>0;"Obiger Betrag wird Ihnen auf Ihr Konto überwiesen.";"Bitte überweisen Sie obigen Betrag auf mein Konto.")
Also bei Whg1 B38 bei Whg2 J38 und bei Whg3 R38. Geht das?
Gruß Thomas T.
Anzeige
AW: Spaten ausb. Drucken und PDF erzeugen
03.11.2010 05:27:40
fcs
Hallo Thomas,
das Anpassen der Formel in A41 sollte in das Makro zum Aus-/Einblenden der Spalten integriert werden. So wird die Formel sowohl beim Drucken als auch bei der Anzeige einzelner Wohnungen angepasst.
Gruß
Franz
Private Sub SpaltenWohnungen(ByVal sWohnung As String)
Application.ScreenUpdating = False
Dim sRestFormel As String
sRestFormel = ",""Obiger Betrag wird Ihnen auf Ihr Konto überwiesen.""," _
& """Bitte überweisen Sie obigen Betrag auf mein Konto.""))"
With ThisWorkbook.Sheets("Abr.")
.Range("A:X").EntireColumn.Hidden = False
'Eingabe Adresse anpassen
Select Case sWohnung
Case "Whg1"
.Range("I:X").EntireColumn.Hidden = True
.Range("A41").Formula = "=IF(B38=0,"""",IF(B38>0" & sRestFormel
Case "Whg2"
.Range("B:I,Q:X").EntireColumn.Hidden = True
.Range("A41").Formula = "=IF(J38=0,"""",IF(J38>0" & sRestFormel
Case "Whg3"
.Range("B:Q").EntireColumn.Hidden = True
.Range("A41").Formula = "=IF(R38=0,"""",IF(R38>0" & sRestFormel
Case "Alle"
'        .Range("I:X").EntireColumn.Hidden = True
.Range("A41").Formula = "="""""
End Select
End With
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Spaten ausb. Drucken und PDF erzeugen
03.11.2010 10:01:06
Thomas
Guten Morgen Franz,
ich habe den Code getestet und der Text ist nun weg in der PDF und in meiner Tabelle. Es wird nichts angezeigt bei wechseln der Wohnungen noch bei Alle. In deinem Code ist eine Zeile mit einfachem Anführungszeichen und teste ich das so sehe ich in A41 ein ist gleich mit 2 mal Anführungszeichen. Mach ich vor die darunterliegende Zeile auch das einfache Anführungszeichen so hab ich die Formel zwar angepasst in der Bearbeitungsleiste stehen aber nichts in der Zelle. Bei alle ist A41 auch leer und die Formel der letzten Wohnung die ich mir Anzeigen habe lassen die angepasste Formel.
Also die Formel wird angepasst aber in A41 wird kein Text ausgegeben.
Gruß Thomas T.
Anzeige
AW: Spalten ausb. Drucken und PDF erzeugen
03.11.2010 21:38:03
fcs
Hallo Thomas,
ich hab die Makros bei mir getestet. Es funktioniert.
Mögliche Ursachen, das es bei dir Probleme mit der Wert-Anzeige gibt:
A: Zelle A41 ist als Text formatiert.
Ändere das Format der Zelle in Standard
B: Schrift der Zellen ist weiss formatiert
Das wäre wirklich blöd.
C: Option für Berechnen steht auf manuell, nicht auf automatisch
Füge in der Prozedur vor End With die Zeile
.Range("A41").Calculate
ein.
Hier meine Testdatei:
https://www.herber.de/bbs/user/72141.xls
Gruß
Franz
Anzeige
AW: Spalten ausb. Drucken und PDF erzeugen
04.11.2010 12:21:41
Thomas
Hallo Franz,
die Zelle ist so wie du es mir vorgeschlagen hast formatiert. Bei dir geht die Zahl auch ins negative was es bei mir nicht macht.
Summe Einzahlungen 0,00
Summe Rückzahlungen 0,00 <----Zelle B38
Summe Nachzahlungen -606,77
Bitte überweisen Sie obigen Betrag auf mein Konto.
Das funktioniert nun, aber wenn es zu einer Rückzahlung kommt ist A41 weiterhin leer.
Ich muss wohl in A38 bzw in den Code mit rein um an deine Tab anzuknüpfen wenn Zelle B38 Zahl Rot (negativ) dann schreib in A38 Nachzahlung ansonsten Rückzahlung. Dann kommt der Richtige Text.
Franz ich danke für Deine/Eure geduld die Ihr mit uns habt und bewundere euer Können.
Gruß Thomas T.
Anzeige
AW: Spalten ausb. Drucken und PDF erzeugen
04.11.2010 17:06:31
Thomas
Hallo Franz,
ich habe es nun so gelöst, etwas unfein aber es geht. Bin aber noch immer offen für eine bessere Lösung.
Meine Lösung ist eine Übung um nun auch das Thema Formeln in VBA in angriff zu nehmen.
Select Case sWohnung
Case "Whg1"
.Range("I:X").EntireColumn.Hidden = True
.Range("A41").Formula = "=IF(B38=0,"""",IF(B38>0" & sRestFormel
.Range("A42").Formula = "=IF(B39=0,"""",IF(B39>0" & sRestFormel
Case "Whg2"
.Range("B:I,Q:X").EntireColumn.Hidden = True
.Range("A41").Formula = "=IF(J38=0,"""",IF(J38>0" & sRestFormel
.Range("A42").Formula = "=IF(J39=0,"""",IF(J39>0" & sRestFormel
Case "Whg3"
.Range("B:Q").EntireColumn.Hidden = True
.Range("A41").Formula = "=IF(R38=0,"""",IF(R38>0" & sRestFormel
.Range("A42").Formula = "=IF(R39=0,"""",IF(R39>0" & sRestFormel
' Case "Alle"
' .Range("I:X").EntireColumn.Hidden = True
' .Range("A41").Formula = "="""""
End Select
Gruß Thomas T.
Anzeige
AW: Spalten ausb. Drucken und PDF erzeugen
06.11.2010 12:33:31
fcs
Hallo Thomas,
man müsste die Bedingungen eigntlich mit UND oder ODER in einer Formel zusammenfassen können.
  .Range("A41").Formula = "=IF(AND(B38=0,B39=0),"""",IF(OR(B38>0,B39>0)" & sRestFormel

Gruß
Franz
AW: Spalten ausb. Drucken und PDF erzeugen
06.11.2010 13:06:34
Thomas
Hallo Franz,
ich habe die Codezeile eingebaut und angepasst war kurz erschrocken das nichts mehr ging aber nach dem speichern und wieder öffnen gings perfekt. Ich Dank dir Franz für deine Hilfe aber was mich nun wundert ist warum hat meine Formel in der Tabelle funktioniert und im Code nicht, gibts da unterschiede?
Mit freundlichen Grüßen
Thomas T.
Anzeige

111 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige