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

Tabellenblatt einmal als pdf und einmal xls datei

Tabellenblatt einmal als pdf und einmal xls datei
29.09.2013 18:55:06
Paddey
Hallo an alle:)
ich hab da ein kleineres Problem.
Erschlagt mich bitte nicht gleich wenn es jetzt nicht das schönste Makro ist was ihr bis jetzt gesehen habt, ist das erste Mal das ich mich mit dem Thema Makros auseinander gesetzt habe.
Das was ich da bis jetzt zusammen geschrieben habe, ist alles mit Suchen im Internet entstanden, doch nun komme ich nicht weiter.
Und zwar habe ich eine Tabelle mit 8 Mappen, wobei in den erste 5 Tabellenblätter Infos gesammelt werden und auf einer versteckten Mappe (7. Checkliste) zusammengetragen werden.
Nachdem alles ausgefüllt wurde soll dann der Anwender in der 6 Mappe(6. Speichern)
einen Button drücken und danach soll die versteckte Mappe (7. Checkliste) einmal per Pdf und einmal als .xls Datei (aber nur mit Werten, ohne Formeln) an eine E-Mail Adresse geschickt werden.
Und die Dateien sollen beide denselben Namen haben (siehe Formel).
Ich hoffe ihr könnt mir mit meinem Problem weiterhelfen.
Code:
Sub Schaltfläche3_Klicken()
' Schaltfläche3_Klicken Makro
Sheets("7. Checkliste").Visible = True
Sheets("7. Checkliste").Select
ActiveSheet.AutoFilter.ApplyFilter
Sheets("6. Speichern").Select
Dim app   As Object
Dim file  As String
Dim isNew As Boolean
Sheets("7. Checkliste").Select
file = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 5) & " " & Worksheets("2. Auswahl"). _
Range("C4").Value & " " & Worksheets("2. Auswahl").Range("C6").Value & ".pdf"
ActiveSheet.ExportAsFixedFormat xlTypePDF, Environ("TEMP") & "\" & file
On Error Resume Next
Set app = GetObject(, "Outlook.Application")
If app Is Nothing Then
Set app = CreateObject("Outlook.Application")
isNew = True
End If
With app.CreateItem(0)
.To = "verbrauchsmaterial.it@test.de"
.CC = ""
.BCC = ""
.Subject = "Preinstallationsliste"
.Body = "Sehr geehrte Damen und Herren." & vbCr _
& vbCr _
& "Anbei die bearbeitete Preinstallationsliste." & vbCr _
& vbCr _
& "Mit freundlichen Grüßen."
.Attachments.Add Environ("TEMP") & "\" & file
.Send
End With
If isNew Then app.Quit
Dim WB As Workbook
For Each WB In Application.Workbooks
WB.Saved = True
Next
Application.Quit
End Sub

Es klappt eigentlich alle soweit bis auf der XLS Part.
Danke schonmal im Voraus
MfG
Paddey

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt einmal als pdf und einmal xls datei
29.09.2013 20:48:23
fcs
Hallo Paddy,
hier dein Makro ergänzt um den Versand der Checkliste als xls-Datei.
Ich hab noch ein klein wenig aufgeräumt.
Vergiß nicht die Datei zu speichern, bevor du den Mailversand testest. Dein Makro schließt ja alle Excel-Dateien inkl. Excel selbst ohne die Dateien zu speichern.
Gruß
Franz
Sub Schaltfläche3_Klicken()
' Schaltfläche3_Klicken Makro
Dim app   As Object
Dim filePDF  As String, fileXLS As String, file As String
Dim isNew As Boolean
Sheets("7. Checkliste").Visible = True
Sheets("7. Checkliste").Select
ActiveSheet.AutoFilter.ApplyFilter
Sheets("6. Speichern").Select
Sheets("7. Checkliste").Select
file = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 5) & " " _
& Worksheets("2. Auswahl").Range("C4").Value & " " _
& Worksheets("2. Auswahl").Range("C6").Value
fileXLS = Environ("TEMP") & "\" & file & ".xls"
filePDF = Environ("TEMP") & "\" & file & ".pdf"
ActiveSheet.ExportAsFixedFormat xlTypePDF, filePDF
'aktives Blatt ohne Formeln in separater Datei speichern
ActiveSheet.Copy
With ActiveWorkbook
With .Worksheets(1)
.UsedRange.Copy
.UsedRange.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End With
Application.DisplayAlerts = False
If Val(Left(Application.Version, 2)) >= 12 Then
'Excel 2007 und neuer
.SaveAs Filename:=fileXLS, FileFormat:=-4143 'xlWorkbookNormal
Else
'Excel 2003 und älter
.SaveAs Filename:=fileXLS
End If
.Close savechanges:=True
End With
Application.DisplayAlerts = False
On Error Resume Next
Set app = GetObject(, "Outlook.Application")
If app Is Nothing Then
Set app = CreateObject("Outlook.Application")
isNew = True
End If
With app.CreateItem(0)
.To = "verbrauchsmaterial.it@test.de"
.CC = ""
.BCC = ""
.Subject = "Preinstallationsliste"
.Body = "Sehr geehrte Damen und Herren." & vbCr _
& vbCr _
& "Anbei die bearbeitete Preinstallationsliste." & vbCr _
& vbCr _
& "Mit freundlichen Grüßen."
.Attachments.Add filePDF
.Attachments.Add fileXLS
.Send
End With
If isNew Then app.Quit
Dim WB As Workbook
For Each WB In Application.Workbooks
WB.Saved = True
Next
Application.Quit
End Sub

Anzeige
AW: Tabellenblatt einmal als pdf und einmal xls datei
29.09.2013 21:16:49
Paddey
Hey Franz,
danke für die schnelle Antwort.
Habe deinen Code auch direkt eingefügt, doch leider kommt nachdem ich auf den Button drücke die Fehlermeldung:
Laufzeitfehler 1004:
die informationen können nicht eingefügt werden, da der Berich Kopieren und der Bereich zum Einfügen unterschiedliche Formen und Größen haben.
und diese Zellel wird Markiert:
.UsedRange.PasteSpecial Paste:=xlPasteValues
hoffe du kannst mir da nochmal weiterhelfen:)
Gruß
paddey

AW: Tabellenblatt einmal als pdf und einmal xls datei
29.09.2013 21:59:40
fcs
Hallo Paddey,
scheinbar gibt es in dem Tabellenblatt verbundene Zellen oder andere problematische Formatierungen.
Möglicherweise stört auch auch ein gesetzter Filter den Kopiervvorgang.
'ersetze die folgende Zeilen
With .Worksheets(1)
.UsedRange.Copy
.UsedRange.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End With
'durch'
With .Worksheets(1)
Dim rngZelle As Range
For Each rngZelle In .UsedRange.Cells
If rngZelle.HasFormula Then rngZelle.Value = rngZelle.Value
Next
set rngZelle = Nothing
End With

dann werden alle Zellen in denen sich Formeln befinden einzeln abgearbeitet. Das hat bei mir eigentlich bisher immer funktioniert. Dauert halt etwas länger als die Aktion per Kopieren.
Gruß
Franz

Anzeige
AW: Tabellenblatt einmal als pdf und einmal xls datei
30.09.2013 09:30:23
Paddey
Hey Franz,
vielen vielen Dank :)läuft wunderbar.
Jetzt hätte ich noch eine kleine Frage, um meine Checkliste perfekt zu machen.
Und zwar Kopiere ich mit dieser Formel Text von einem Tabellenblatt in ein anderes:
=WENN('5. Sonstiges'!A5="";"-";'5. Sonstiges'!A5)
Doch leider übernimmt er nicht die Zellenhöhe, auch wenn ich Zeilenumbruch aktiviert habe.
Kennst du da vielleicht noch eine Möglichkeit, wie ich das noch optimieren kann.
Gruß Paddey

AW: Tabellenblatt einmal als pdf und einmal xls datei
30.09.2013 09:56:41
fcs
Hallo Paddey,
du kannst noch eine Anweisung einfügen, die die Zeilehöhe für die Zeile mit der Formel optimiert.
    Sheets("7. Checkliste").Select
ActiveSheet.AutoFilter.ApplyFilter
Sheets("7. Checkliste").Rows(15).AutoFit 'Nr.der Zeile mit der Formel anpassen!
Sheets("6. Speichern").Select      'Diese Zeile und die nächste sind überflüssig!!
Sheets("7. Checkliste").Select

Dies funktioniert aber nicht mit verbundenen Zellen.
Wenn es nicht stört, dann verbinde die Zellen wieder und verwende die Formatierung
horizontal - zentrieren über Auswahl.
Die Einstellung der korrekten Höhe von verbundenen Zellen entsprechend dem enthaltenen Text ist relativ kompliziert, wenn man es per Makro umsetzen will. Ansonsten setze die Höhe der Zeile manuell auf einen Wert. der meistens passt.
Gruß
Franz

Anzeige
AW: Tabellenblatt einmal als pdf und einmal xls datei
30.09.2013 15:13:38
Paddey
Super danke :)
Hast mir echt riesig weitergeholfen :)
Vielen vielen DANK
Gruß Paddey

322 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige