Clever-Excel-Forum

Normale Version: Suchen, Auswählen, Merken, Drucken
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Hallo Alex,

ersetze im Makro Sub DateiSpeichernUnter()
diesen code
Code:
Application.CommandBars.ExecuteMso "FileSaveAs"
durch diesen
Code:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF

Das wäre erst mal die "einfache" Variante wo die Dateien überschrieben werden.
Hallo Alex,

das mit den ausgeblendeten Spalten wird auch eine Ursache für die Bezugsfehler sein. Beim Kopieren und Einfügen werden die Daten nämlich statt ab Spalte C schon ab Spalte A eingetragen.

Daher folgende Änderungen im Sub Kopieren():
Original:
Code:
'Wenn die Summe von Spalte G > 0 ist, dann
        If WorksheetFunction.Sum(.Range("G:G")) > 0 Then
            'Autofilter in Spalte G setzen
            .Columns("G:G").AutoFilter
            'Spalte G filtern nach Werten > 0, Filter bis zur letzten gefuellten Zeile in Spalte G
            'Es darf in Spalte G also nix unter den Daten stehen.
            .Range("$G$1:$G$" & .Cells(Rows.Count, 7).End(xlUp).Row).AutoFilter Field:=1, Criteria1:=">0"
            'Bereich kopieren und in Tabelle2 einfuegen
            .Rows("2:" & .Cells(Rows.Count, 7).End(xlUp).Row).Copy tmpWsh.Range("A" & tmpWsh.Cells(Rows.Count, 7).End(xlUp).Row + 1)
            'Autofilter in Spalte G zuruecksetzen
            .Columns("G:G").AutoFilter
        'Ende Wenn die Summe von Spalte G > 0 ist, dann
        End If
Neu:
Code:
'Wenn die Summe von Spalte G > 0 ist, dann
        If WorksheetFunction.Sum(.Range("G:G")) > 0 Then
            'Spalte A und B einblenden
            Columns("A:C").EntireColumn.Hidden = False
            'Autofilter in Spalte G setzen
            .Columns("G:G").AutoFilter
            'Spalte G filtern nach Werten > 0, Filter bis zur letzten gefuellten Zeile in Spalte G
            'Es darf in Spalte G also nix unter den Daten stehen.
            .Range("$G$1:$G$" & .Cells(Rows.Count, 7).End(xlUp).Row).AutoFilter Field:=1, Criteria1:=">0"
            'Bereich kopieren und in Tabelle2 einfuegen
            .Rows("2:" & .Cells(Rows.Count, 7).End(xlUp).Row).Copy tmpWsh.Range("A" & tmpWsh.Cells(Rows.Count, 7).End(xlUp).Row + 1)
            'Autofilter in Spalte G zuruecksetzen
            .Columns("G:G").AutoFilter
            'Spalte A und B ausblenden
            Columns("A:B").EntireColumn.Hidden = True
        'Ende Wenn die Summe von Spalte G > 0 ist, dann
        End If

Du siehst die Unterschiede? Es gibt 2 x 2 Zeilen mehr zum Ein- und Ausblenden.
Hat er gemacht :)

passieren tut da nichts ?! :( :)
Hallo ALex,

Excel gibt einfach nur das aktive Blatt als pdf aus. Du musst Dich also zum einen auf dem richtigen Blatt befinden und zum anderen im Explorer nachschauen, im gleichen Verzeichnis wie die Exceldatei.
Hi Schauan,

also jetzt läuft hier nichts mehr rund...zumindest gefühlt....beim "kopieren ausführen" kopiert er jetzt wieder die ausgeblendeten Setup daten wieder und er zeigt mir die Zelle C gar nicht mehr an :(

Danke,
Alex
Hallo ALex,

sorry, ich hab die "alte" erste Zeile beim If kopiert. Ich stell die Datei gleich nochmal ein, muss meinen Laptop erst mal an den Strom bringen ...
Hallo ALex,

hier ist jetzt nochmal zusammengefasst der aktuelle Stand.
Ich habe noch zwei andere Änderungen drin:
- andere Symbole und Beschriftung als PDF ...
- Spalten A und B werden auch auf dem temporären Blatt ausgeblendet. Da bei jeder Kopieraktion ein neues temporäres Blatt erzeugt wird, ist hier kein Einblenden drin.

Ich habe die Datei hier entfernt und mit weiteren Korrekturen im Beitrag von Samstag, ca. 05:48, angehängt.
Wie lange bist du noch online? Ich bin in ca 60 min wieder am start :) fahre kurz heim

Danke und Gruß

Alex
Hallo Alex,

ich muss jetzt langsam Feierabend machen. Morgen früh installiere ich hier das Update, mal seh'n wie ich dann Zeit habe.
Hallo Alex,

das mit dem Kopieren muss ich nochmal prüfen. Es werden nur Daten von einem Blatt genommen.
Ursache sind wohl die fehlenden Punkte an zwei Stellen vor dem Ausdruck Columns("A:C") und Columns("A:B") - siehe hier in diesem Bereich, gekennzeichnet mit '<-- hier der Punkt:

Code:
If WorksheetFunction.Sum(.Range("G:G")) > 0 Then
            'Spalte A und B einblenden
            .Columns("A:C").EntireColumn.Hidden = False '<-- hier der Punkt und statt .Columns("A:C") eigentlich auch .Columns("A:B")
            'Autofilter in Spalte G setzen
            .Columns("G:G").AutoFilter
            'Spalte G filtern nach Werten > 0, Filter bis zur letzten gefuellten Zeile in Spalte G
            'Es darf in Spalte G also nix unter den Daten stehen.
            .Range("$G$1:$G$" & .Cells(Rows.Count, 7).End(xlUp).Row).AutoFilter Field:=1, Criteria1:=">0"
            'Bereich kopieren und in Tabelle2 einfuegen
            .Rows("2:" & .Cells(Rows.Count, 7).End(xlUp).Row).Copy tmpWsh.Range("A" & tmpWsh.Cells(Rows.Count, 7).End(xlUp).Row + 1)
            'Autofilter in Spalte G zuruecksetzen
            .Columns("G:G").AutoFilter
            'Spalte A und B ausblenden
            .Columns("A:B").EntireColumn.Hidden = True '<-- hier der Punkt
        'Ende Wenn die Summe von Spalte G > 0 ist, dann
        End If

Weiter unten im code steht das Columns("A:B") nochmal, dort ist es ohne Punkt korrekt.
Seiten: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23