Benötige Hilfe beim Tabellenblatt kopieren per VBA

Moderator: ModerationP

Benötige Hilfe beim Tabellenblatt kopieren per VBA

Beitragvon Ironangel » 02. Dez 2020, 13:47

Hallo zusammen,

ich habe bei mir in der Anwendung eine Schaltfläche, mit der ich das aktive Tabellenblatt kopiere und wieder einfüge.
Anbei der Code:

Code: Alles auswählen
ActiveSheet.Copy after:=Worksheets("Test")
ActiveSheet.Name = Format("Korrektur Plan" & " " & Range("M1") & ".KW " & Range("H1"))


Jetzt kann es vorkommen, dass das Tabellenblatt 4-5 neu abgespeichert werden muss. Vielleicht sogar öfter. Ich habe auch versucht mit

Code: Alles auswählen
& Worksheets.Count - 1


klar zukommen, aber da zählt mir Excel immer alle Blätter durch und fügt die nächste Zahl an. das möchte ich aber nicht. Ich hätte es gerne, dass das aktuelle Tabellenblatt plus nächste forlaufende Zahl kommt.

z.B.
Test
Test (1)
Test (2)
usw...

Kann mir da jemand auf die Sprünge helfen?
Ironangel
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 23
Registriert: 24. Okt 2014, 09:16

Re: Benötige Hilfe beim Tabellenblatt kopieren per VBA

Beitragvon Ralf A » 02. Dez 2020, 13:53

Hi,

meinst Du so?
Code: Alles auswählen
ActiveSheet.Copy after:=activesheet
Ciao, Ralf
Wer glaubt, für ihn persönlich würde der Bremsweg nicht als Funktion proportional zum QUADRAT der Geschwindigkeit steigen, der ist halt nicht „frei“, sondern ein Narr.
Ralf A
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 980
Registriert: 17. Mär 2018, 11:47

Re: Benötige Hilfe beim Tabellenblatt kopieren per VBA

Beitragvon Ironangel » 02. Dez 2020, 14:00

Nein, ich vergebe ja einen Tabellennamen. Kopiere ich die Tabelle mit diesem Code, ist der Tabellenname ja gleich und dann bekomme ich eine Fehlermeldung, dass der Name schon existiert. Ich möchte den gleiche Tabellennamen nutzen allerdings mit einem Index. So wie es bei Excel auch ist, wenn man die gleiche Tabelle manuell kopiert.
Ironangel
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 23
Registriert: 24. Okt 2014, 09:16

Re: Benötige Hilfe beim Tabellenblatt kopieren per VBA

Beitragvon xysvenxy » 02. Dez 2020, 14:07

Gib dem Tabellenblatt direkt nach dem Kopieren einen Namen. Da das Blatt dann automatisch aktiv ist, kannst du einfach
Activesheet.Name = "[hier der Name]" &[Index]
Vorher kannst du ermitteln wie viele Sheets dieser Art es schon gibt in dem du das letzte Zeichen des vorigen Tabellenblattes ausliest.
xysvenxy
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 28
Registriert: 29. Jul 2016, 00:12

Re: Benötige Hilfe beim Tabellenblatt kopieren per VBA

Beitragvon Ironangel » 02. Dez 2020, 14:12

Hm, wie lese ich das denn aus?
Ironangel
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 23
Registriert: 24. Okt 2014, 09:16

Re: Benötige Hilfe beim Tabellenblatt kopieren per VBA

Beitragvon xysvenxy » 02. Dez 2020, 14:16

In dem du mit der 'right' Anweisung arbeitest.

In der Annahme, dass das gerade kopierte Arbeitsblatt das letzte ist:
shts=sheets.count
zchn=right(sheets(shts-1).name,1)
xysvenxy
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 28
Registriert: 29. Jul 2016, 00:12

Re: Benötige Hilfe beim Tabellenblatt kopieren per VBA

Beitragvon Ironangel » 02. Dez 2020, 14:17

Ok, danke für den Tipp. Ich versuche es mal hinzubekommen
Ironangel
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 23
Registriert: 24. Okt 2014, 09:16

Re: Benötige Hilfe beim Tabellenblatt kopieren per VBA

Beitragvon HKindler » 02. Dez 2020, 14:24

Hi,

ich hatte so etwas ähnliches einmal gebraucht:
Code: Alles auswählen
Function NameDatum(AlterName As String)
'gibt "AlterName 2017-03-22" oder "AlterName 2017-03-22 (2)" oder "AlterName 2017-03-22 (3)" oder ... zurück
Dim NeuerName As String     'beinhaltet den neuen Namen
Dim temp As String          'beinhaltet "AlterName 2017-03-22"
Dim i As Long               'Zähler
i = 1                                                   'mit 1 vorbelegen
temp = AlterName & " " & Format(Date, "yyyy-mm-dd")     '"AlterName 2017-03-22"
NeuerName = temp                                        'neuer Blattname wird mit Temp vorbelegt
Do While SheetExists(NeuerName)                         'Prüfung ob Blatt NeuerName existiert
    i = i + 1                                               'falls Blattname existiert, wird hochgezählt
    NeuerName = temp & " (" & i & ")"                       'Zahl hinten anhängen
Loop                                                    'zurück zur Prüfung
NameDatum = NeuerName                                   'neuen Namen zurück geben
End Function
Function SheetExists(strName As String) As Boolean
'gibt WAHR zurück, falls das Blatt strName existiert
    SheetExists = False
    On Error Resume Next                            'Fehlermeldung unterdrücken
    SheetExists = Not Sheets(strName) Is Nothing    'falls Blatt existiert wird Ausdruck WAHR
    'normalerweise sollte Fehlermeldung wieder eingeschaltet werden mit 'Not Sheets(strName) Is Nothing on error goto 0', wird hier aber mit 'end function' auch getan
End Function
Gruß,
Helmut

----------------------------
Windows 10 Enterprise (64 Bit) / Office 365 ProPlus (32 Bit)
Benutzeravatar
HKindler
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5338
Registriert: 04. Jul 2013, 09:02

Re: Benötige Hilfe beim Tabellenblatt kopieren per VBA

Beitragvon Ironangel » 02. Dez 2020, 15:52

Danke für die Hilfe. Ich habe mir etwas aus dem Netz gesuch, dass genau meinen Wünschen entspricht. Sogar noch besser als gewünscht.

Code: Alles auswählen
Dim strName As String
ActiveSheet.Copy After:=Sheets(Sheets.Count)
strName = InputBox("Name of new Sheet - or click OK to copy")
If Not strName = "" Then
    ActiveSheet.Name = strName
Else
    Exit Sub
End If
End Sub
Ironangel
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 23
Registriert: 24. Okt 2014, 09:16

Re: Benötige Hilfe beim Tabellenblatt kopieren per VBA

Beitragvon HKindler » 02. Dez 2020, 16:07

Hi,

das ist aber weit entfernt von deiner Ausgangssituation einer automatisierten Namensvergabe. Aber was soll's, wenn's dich glücklich macht...
Gut, dass ich mir nicht die Mühe gemacht habe meinen Code auf deine Wünsche anzupassen!
Gruß,
Helmut

----------------------------
Windows 10 Enterprise (64 Bit) / Office 365 ProPlus (32 Bit)
Benutzeravatar
HKindler
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5338
Registriert: 04. Jul 2013, 09:02

Re: Benötige Hilfe beim Tabellenblatt kopieren per VBA

Beitragvon DerHoepp » 02. Dez 2020, 16:08

Ironangel hat geschrieben:Danke für die Hilfe. Ich habe mir etwas aus dem Netz gesuch, dass genau meinen Wünschen entspricht. Sogar noch besser als gewünscht.

Moin,

aber der gezeigte Code hat doch nix mit dem geschilderten Problem zu tun, zumindest hab ich das anders verstanden.

Viele Grüße
derHöpp
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9229
Registriert: 14. Mai 2013, 11:08


Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: Grace13, Rudius und 5 Gäste