einzelnes Tabellenblatt als neue Exceldatei speichern.

1 Antwort

Verschiebe (Move) oder kopiere (copy) das aktuelle Blatt bevor es gespeichert wird.

ActiveWorkbook.Sheets.Copy

Wo setze ich diese Zeile in mein Modul ein.Ich will ja, das die neue Mappe unter den mit der Rechnungsnummer usw. als Datei gespeichert wird und als Tabelle nur das Rechnungsformular gespeichert wird. Sorry, bin in VBA nicht so bewandert.

Gruß Monkee

0
@Monkee

Der Befehl SaveAs führt die Speicherung aus. Also vor dieser Zeile den Befehl zum Kopieren oder Verschieben einfügen.

0
@MrProcess

Habe folgendes Makro gebastelt.

Public Sub Rechnung_bezahlt()

Dim NeuerName

NeuerName = Range("A1")

ActiveSheet.Copy

For Each Bild In ActiveSheet.Shapes

Bild.Delete

Next Bild

ActiveWorkbook.SaveAs Filename:="H:\Excel\Hans\Rechnungen bezahlt\" & NeuerName & ".xls"

End Sub

Das funktioniert wunderbar, denn damit werden mir die Bedienbuttons gleich rausgelöscht in der neuen Datei. Allerdings gibt es ein kleinen Fehler. Im Tabellenkopf habe ich ein Logo erstellt, das ist leider auch verschwunden. Kann man das Makro so einstellen, dass das Logo erhalten bleibt und die Buttons verschwinden.

Gruß Monkee

0
@Monkee

Ist ja klar, denn hier löscht du ja alle Bilder

For Each Bild In ActiveSheet.Shapes
    Bild.Delete

Also machst dir kurz ein Helfermakro, z.B. so um zu erfahren wie die besagte Grafik heißt

For Each bild In ActiveSheet.Shapes

    bild.Select

    MsgBox bild.Name

Next bild

Sobald klar ist wie das Logo heißt - sagen wir mal "Picture 1" - erweiterst du das Original Makro auf

For Each Bild In ActiveSheet.Shapes
    If bild.name <> "Picture 1" Then
        bild.Delete
    End If
Next Bild

PS: Statt dem <> ein kleiner größer (ungleich) einsetzen

0
@MrProcess

Ich bin mit deiner Hilfe schon ganz nah. Das Helfermakro sagt mir, dass das Logo "Picture 34" ist.Dann kommen die Buttons 35, 41-44. Im Stepdurchlauf stelle ich fest, dass das auch in dieser Reihenfolge abgearbeitet wird. Ich habe das nun wie folgt geschrieben:

Public Sub Rechnung_bezahlt()

Dim NeuerName

NeuerName = Range("A1")

ActiveSheet.Copy

For Each Bild In ActiveSheet.Shapes

If Bild.Name <> "Picture 34" Then

    Bild.Delete

End If

Next Bild

ActiveWorkbook.SaveAs Filename:="H:\Excel\Hans\Rechnungen bezahlt\" & NeuerName & ".xls"

End Sub

Allerdings wird Picture 34 immer noch gelöscht. Wenn ich gößer einsetze wird garnichts gelöscht und wenn ich kleiner einsetze wird wieder alles eingesetzt. Diese <> ist doch der Operator für ungleich oder verstehe ich mal wieder was falsch.

Gruß Monkee

sorry wenn ich nerve, mit 62 Jahren kappiert man nicht mehr so schnell

0
@Monkee

Ich vermute Tippfehler im Namen des Bildes. Vielleicht ein Leerzeichen zu viel oder zu wenig?

0

Was möchtest Du wissen?