Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1044to1048
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
Arbeitsblatt kopieren
03.02.2009 12:08:33
eliewsam
Liebe Excel-Experten,
ich hätte gerne ein Makro, welches ein ganz bestimmtes Arbeitsblatt zunächst kopiert, dann über eine Dialogbox nach dem neuen Namen für die Kopie fragt und die Kopie dann entsprechend benannt.
Ist so etwas möglich? Ich würde mich sehr freuen, wenn mir einer von Euch weiterhelfen könnte.
Gruß Elie

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Arbeitsblatt kopieren
03.02.2009 12:10:55
Ramses
Hallo
und wohin soll die Tabelle kopiert werden ?
An den Anfang
Ans Ende
Neben die kopierte Tabelle
In eine neue Mappe
In eine bestehende Mappe
Gruss Rainer
AW: Arbeitsblatt kopieren
03.02.2009 12:17:57
Andi
Hi,
zB so (mit Abfrage, ob der gewünschte Blattname noch frei ist):

Sub blatt_kopieren()
Dim Blattname As String
Dim ws As Worksheet
Blattname = InputBox("Bitte Blattnamen eingeben:")
For Each ws In ThisWorkbook.Worksheets
If ws.Name = Blattname Then
MsgBox "Blattname ist schon vergeben"
Exit Sub
End If
Next ws
Sheets("Tabelle1").Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = Blattname
End Sub


Schönen Gruß,
Andi

Anzeige
AW: Arbeitsblatt kopieren
03.02.2009 12:41:46
Nepumuk
Hallo,
da es beim umbenennen von Tabellen gewisse Restiktionen gibt, ist das ganze ein bisschen aufwendiger:
Public Sub Blatt_kopieren()
    Dim vntReturn As Variant
    Dim objRegEx As Object, objMatch As Object, objSheet As Object
    Dim blnFound As Boolean
    Set objRegEx = CreateObject("VBScript.RegExp")
    With objRegEx
        .Global = True
        .Pattern = "[\\\/\:\*\?]"
    End With
    Do
        Do
            vntReturn = InputBox("Bitte den Namen für die Kopie eingeben.", "Eingabe")
            If StrPtr(vntReturn) = 0 Then Exit Sub
            If Len(Trim$(vntReturn)) > 0 Then
                If Len(Trim$(vntReturn)) < 31 Then
                    Set objMatch = objRegEx.Execute(CStr(vntReturn))
                    If objMatch.Count = 0 Then
                        Exit Do
                    Else
                        MsgBox "Der Blattname darf keines dieser Zeichen enthalten: " & _
                            vbLf & vbLf & "\ / : * ?", vbExclamation, "Hinweis"
                    End If
                Else
                    MsgBox "Der Blattname darf maximal 31 Zeichen lang sein.", vbExclamation, "Hinweis"
                End If
            Else
                MsgBox "Der Blattname muss mindestens 1 Zeichen lang sein.", vbExclamation, "Hinweis"
            End If
        Loop
        For Each objSheet In ThisWorkbook.Sheets
            If objSheet.Name = vntReturn Then
                blnFound = True
                Exit For
            End If
        Next
        If Not blnFound Then
            Exit Do
        Else
            MsgBox "Der Blattname " & vntReturn & " ist schon vergeben." & _
                vbLf & vbLf & "Bitte wählen sie einen anderen Namen", vbExclamation, "Hinweis"
        End If
    Loop
    ActiveSheet.Copy Before:=Sheets(1)
    ActiveSheet.Name = vntReturn
End Sub

Gruß
Nepumuk
Anzeige
AW: Arbeitsblatt kopieren
03.02.2009 12:51:00
eliewsam
Vielen lieben Dank für die Hilfe! Genau danach habe ich gesucht. Funktioniert super!

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige