online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon hpt vom 24.02.2021, 11:07 Options

Tabellenblatt kopieren, aber ohne Makro

Hallo, ich berechne in einer Tabelle einige Aufgaben mit Hilfe eines Makros in einer ausgeblendeten Tabelle über Zielwertsuche. Für das Blatt "Eingabe" habe ich ein Makro mit deren Hilfe die aktuelle Tabelle in einem neuen Blatt gespeichert wird. Gleichzeitig werden auch noch die Makro´s ("Speichern" und "Löschen") gespeichert. auch die Verbindung zur Zielwertsuche ist noch aktiv. Ich möchte aber nur die Werte einschließlich Formate und evtl. der bedingten Formatierung einzelner Zellen gespeichert haben. Wer kann hier helfen?

Private Sub Speichern_Click()

Dim strName As String
strName = ActiveSheet.Range("F3")
On Error Resume Next
strName = Worksheets(strName).Name
If Err > 0 Then
ActiveSheet.Copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = Range("F3")
ActiveSheet.UsedRange.Copy
ActiveSheet.UsedRange.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Else
MsgBox "Es gibt schon ein Tabellenblatt " & strName
End If
Err.Clear
On Error GoTo 0
End Sub


Antwort schreiben

Antwort 1 von Beverly vom 26.02.2021, 08:02 Options

Hi,

erstelle zuerst ein neues leeres Arbeitsblatt und kopiere dann die Werte und Formatierungen des Ausgangsblattes.

Bis später,
Karin

Antwort 2 von hpt vom 27.02.2021, 09:06 Options

So habe ich mir am Anfang auch geholfen, aber da ich die Funktion regelmäßig benötige, möchte ich das Ganze mit einem Makro regeln. Vieleicht gibt es ja doch noch einen passablen Weg.
Das Makro "Speichern" habe ich mit einer Befehlsschaltfläche auf den Bereich H59 bis I60 gelegt.
Gruß
Hans-Peter

Antwort 3 von Beverly vom 27.02.2021, 18:07 Options

Hi Hans-Peter,

und was hindert dich daran, den von mir beschriebenen Ablauf per Makro auszuführen?

Bis später,
Karin

Antwort 4 von hpt vom 05.03.2021, 15:15 Options

Hallo Karin,
Ich habe das jetzt ausprobiert. Bei der manuellen Makroaufzeichnung war es nicht möglich das neue Tab-Blatt zu benennen. Daher habe ich meine Makro-Aufzeichnung mit dem alten Makro kombiniert. Es scheint auch zu fuktionieren. Ich hoffe das es auch sauber programmiert ist, da ich z.Teil nicht weiß, was die einzelnen Befehle bedeuten.
Sub Makro1()
'Dim strName As String
strName = ActiveSheet.Range("F3")
On Error Resume Next
strName = Worksheets(strName).Name
If Err > 0 Then
Cells.Select
Selection.Copy
Sheets.Add
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveSheet.Name = Range("F3")
Else
MsgBox "Es gibt schon ein Tabellenblatt " & strName
End If
Err.Clear
On Error GoTo 0
End Sub

Antwort 5 von Beverly vom 05.03.2021, 22:22 Options

Hi Hans-Peter,

das Makro kann man noch ein klein wenig ändern, da nicht alle Zellen sondern nur die belegten Zellen kopiert werden müssen:
Sub Makro1()
    Dim strName As String
    Dim strZelle As String
    strName = ActiveSheet.Range("F3")
    On Error Resume Next   ' Fehler abfangen falls es bereits ein Tabellenblatt mit diesem Namen gibt
    strName = Worksheets(strName).Name  ' Prüfung ob ein Tabellenblatt mit dem Namen schon vorhanden ist
    If Err > 0 Then   ' Tabellenblatt gibt es noch nicht
        strZelle = ActiveSheet.UsedRange.Cells(1, 1).Address    ' Adresse der linken oberen Zelle des benutzten Bereichs
        ActiveSheet.UsedRange.Copy    ' benutzten Bereich kopieren
        Sheets.Add     ' neues Tabellenblatt einfügen
        Range(strZelle).PasteSpecial Paste:=xlPasteValues    ' Werte einfügen
        Range(strZelle).PasteSpecial Paste:=xlPasteFormats   ' Formate einfügen
        ActiveSheet.Name = Range("F3")   ' aktives Tabellenblatt umbenennen
    Else
        MsgBox "Es gibt schon ein Tabellenblatt " & strName
    End If
    Err.Clear   ' Fehler zurücksetzen
    On Error GoTo 0   ' Fehlerbehandlung zurücksetzen
End Sub

Außerdem kann man einige Parameter bei Paste weglassen, da sie Standardeinstellungen sind und man sie nur benötigt, wenn man andere als die Standardeinstellungen verwenden will.

Ich hoffe, die Kommentar helfen dir ein wenig, den Code zu verstehen.

Bis später,
Karin

Antwort 6 von hpt vom 11.03.2021, 09:12 Options

Hallo Karin,
ich möchte mich bedanken. Es funktioniert gut und ich weiß etwas mehr als vorher.
Jetzt noch zwei Fragen:
-Wie kann ich in einer Zelle auch mehrere tiefgestellte Zeichen (an 2. bis 4. Stelle) mit dieser Formatierung copieren? (Analog ist das bei griechischen Zeichen an 2. Stelle)
-Wie kann ich in einer verbundenen Zelle das durch Striche (mittels "Zeichnen") dargestellte Wurzelzeichen mit copieren?

Ähnliche Themen

Aktuelles Tabellenblatt in Excel mit Makro kopieren
TR007  22.12.2007 - 165 Hits - 2 Antworten

Makro ausführen auf 2. Tabellenblatt
hpeter  12.02.2008 - 72 Hits - 10 Antworten

Tabellenblatt-->Funktion Gruppieren mittels Makro ausführen
vincenc123  03.09.2008 - 18 Hits - 1 Antwort

Excel Tabellenblatt in eine andere Datei kopieren
oliverB  31.10.2008 - 102 Hits - 1 Antwort

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026