Antworten auf deine Fragen:
Neues Thema erstellen

Per Button: Teile eines Arbeitsblattes als neues Arbeitsblatt speichern?

AranankA

Enthusiast

Moin, moin.

Ich habe ein Arbeitsblatt "Zeiterfassung". Dieses ist dynamisch gehalten. Am Ende eines Monats möchte ich per Button (also quasi auf Knopfdruck) einen festen Bereich dieses Blattes (immer A1:G40) als neues Arbeitsblatt abspeichern. Und zwar nur die Zellinhalte ohne Formeln, als reine Datensammlung!

Faktisch: "Speichere mir die Inhalte von Range A1:G40 des aktiven Blattes ohne die Formeln als neues Arbeitsblatt, und nimm den Inhalt von B7 als Blattname!"

Ist das umsetzbar?

Danke!
 
Zuletzt bearbeitet:

Excel

AranankA

Enthusiast

@buerzel: Danke für die Antwort, aber das hilft mir gar nichts! Wie ich schon in meiner Anfrage schrieb: "ohne Formeln & Zellinhalt von B7 als Blattname". Beides ist per Makro nicht umsetzbar.
 

buerzel

Versuch macht kluch!

Teammitglied
Beides ist per Makro nicht umsetzbar.
Das Anlegen eines neuen Blatts und Kopieren ohne Formeln geht sehr wohl mit Makro umzusetzen (Inhalte einfügen → Werte und Zahlenformate). Das Einzige problematische ist die Umbenennung des Blatts. Sollte aber in VBA einfach umsetzbar sein.
 

buerzel

Versuch macht kluch!

Teammitglied
Hier der fertige VBA-Code für dein Vorhaben ... :D

Code:
Sub Probe()
    Range("A1:G40").Select
    Selection.Copy
    Sheets.Add
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= xlNone, SkipBlanks:=False, Transpose:=False
    Range("B7").Select
    ActiveSheet.Name = ActiveCell.FormulaR1C1
End Sub
 

AranankA

Enthusiast

Danke für die Mühe! Ich war auch mal aktiv und hatte durch den Makro Tipp motiviert (unabhängig von der Anfrage hier), probiert wie weit ich komme:
Code:
Option Explicit
Sub arbeitsblatt_erstellen()

Dim strName As String
Dim wsNew As Object

strName = Sheets("Zeiterfassung").Range("B7").Value

On Error Resume Next

    Application.ScreenUpdating = False
     ' Prüfung, ob Arbeitsblatt schon vorhanden ist.
     ' Wenn ja: löschen und neu erstellen, wenn nein; erstellen:
     For Each wsNew In ActiveWorkbook.Sheets
        If wsNew.Name = strName Then
           Sheets(wsNew.Name).Delete
           Set wsNew = Worksheets.Add
           wsNew.Name = strName
           ' Neues Blatt hinten anfügen:
           ActiveSheet.Move After:=Sheets(ActiveWorkbook.Sheets.Count)
        Else
           Set wsNew = Worksheets.Add
           wsNew.Name = strName
           ActiveSheet.Move After:=Sheets(ActiveWorkbook.Sheets.Count)
        End If
     Next wsNew
  
    Sheets("Zeiterfassung").Select
    Range("A1:G41").Select
    Selection.Copy
    Sheets(strName).Select
  
    'Einfügen ohne Formeln, mit Formatierung:
    Range("A1").PasteSpecial xlPasteValuesAndNumberFormats
    Sheets("Zeiterfassung").Select
    ActiveSheet.Range("A1").Select
  
    'Deselektieren der C&P Felder:
    Application.CutCopyMode = False
  
    Application.ScreenUpdating = True
  
End Sub

Klappt auch einwandfrei... ...mit einer winzigen Einschränkung: nach dem Kopiervorgang habe ich, zusätzlich zu den 3 vorhandenen, 3 leere Tabellen zusätzlich.

P.S.: Ich korrigiere: Klappt auch einwandfrei... ...mit einer winzigen Einschränkung: nach jedem Kopiervorgang habe ich, zusätzlich zu den vorhandenen Tabellen, Anzahl vorhandene Tabellen - 1 leere Tabellen mit vorlaufender Nummerierung ("Tabelle 123", "Tabelle 124", usw.) zusätzlich.
 
Zuletzt bearbeitet:

buerzel

Versuch macht kluch!

Teammitglied
nach dem Kopiervorgang habe ich, zusätzlich zu den 3 vorhandenen, 3 leere Tabellen zusätzlich.

Sehr eleganter Code, den du da produziert hast ... :p Ja - du erzeugst in deinem If ... Else in beiden Fällen ein neues Arbeitsblatt - also egal ob If oder Else.
Bei mir war's keine große Mühe. Der Code wurde bis auf die letzte Zeile, die von mir ergänzt wurde, vom Makro produziert (wie bereits oben erwähnt). :D

PS: Überhaupt erscheint mir die Schleife nicht sehr sinnvoll.
 

AranankA

Enthusiast

Sehr eleganter Code, den du da produziert hast ...

Na ja... ...nach 13 Jahren VBA Abstinenz... ...meine Baustellen reichen mir eigentlich.

PS: Überhaupt erscheint mir die Schleife nicht sehr sinnvoll.
Wenn es das Tabellenblatt schon gibt, mault mir Excel rum (Laufzeitfehler 1004 - Name wird bereits verwendet). Also muß ich prüfen und bei Bedarf vorher löschen.

Ich schau mir das morgen nochmal an.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.634
Beiträge
1.538.448
Mitglieder
67.555
Neuestes Mitglied
scheflo
Oben