Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Tabellenblatt kopieren und mit Datum benennen
#1
Hallo zusammen,
ich habe folgendes Makro erstellt. 

Sub Vorlage_kopieren()

Dim wks As Worksheet
Sheets("Vorlage").Copy After:=Sheets(Sheets.Count)
Set wks = Sheets(Sheets.Count)
With wks
.Name = Date
.Visible = xlSheetVisible
End With
End Sub

Nun zu meinem Problem. Es funktioniert super wenn ich nur einmal kopiere und einmal das Datum erscheint. Sobald ich eine weitere Kopie mache erscheint ein Fehler und es wird nicht das Datum angezeigt sondern Vorlage(2). Für meine Zwecke sollte es aber anzeigen Datum(2) oder Datum(3) usw. Es kann ja sein das ich die Vorlage an einem Tag öfters benötige.
Was muss ich in das Makro noch einfügen damit es so wie gewünscht funktioniert?

Viele Grüße 
Martin
Antworten Top
#2
Hallöchen,

Code:
Sub Vorlage_kopieren()
'Variablendeklarationen
'Integer, String
Dim iCnt%, strZusatz$
Dim wks As Worksheet
Sheets("Vorlage").Copy After:=Sheets(Sheets.Count)
Set wks = Sheets(Sheets.Count)
'Gehe bei Fehler zum errorhandler
On Error GoTo errorhandler
With wks
   .Name = Date & strZusatz
   .Visible = xlSheetVisible
End With
'Makro verlassen
Exit Sub
'Fehlerbehandlung
errorhandler:
'Zaehler hochsetzen
iCnt = iCnt + 1
'Zusatz bilden
strZusatz = " (" & iCnt & ")"
'Zurueck zur Fehler-Codezeile
Resume
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • MatzeP
Antworten Top
#3
Hallo schauan,
funktioniert genau so wie es sein soll. Vielen Dank.

Viele Grüße
Martin
Antworten Top
#4
Hallo,
es funktioniert zwar, aber es wäre toll wenn das neue Arbeitsblatt gleich nach dem zu Kopierenden kommen würde. So ist das aktuellste immer vorne dran und man muss nicht nach hinten gehen um es zu bearbeiten.

Viele Grüße
Martin
Antworten Top
#5
Hallöchen,

wo das Bild hinkommt bestimmt dieser Codeteil:

After:=Sheets(Sheets.Count)


Wenn Du es hinter das aktive haben willst dann

After:=ActiveSheet
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#6
Hallo,
funktioniert leider nicht. Wenn ich After:=Sheets(Sheets.Count) mit After:=ActiveSheet austausche macht es ein Tabellenblatt mit einer weiteren Kopie auf und ein neues Tabellenblatt mit dem Datum.
Antworten Top
#7
Hallöchen,

Du musst das mit den Sheets(Sheets.Count) auch darunter ersetzen bei.

Set wks = Sheets(Sheets.Count)

Das neue Blatt ist ja nun nicht mehr das letzte ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • MatzeP
Antworten Top
#8
Da hätt ich auch selber drauf kommen können. Huh 
Klappt jetzt super. Vielen Dank ?
Antworten Top
#9
Hallo,
jetzt habe ich ein weiteres Problem. Ich habe Pflichtfelder in der zu kopierenden Vorlage festgelegt. Diese müssen ausgefüllt werden damit abgespeichert werden kann. Nun kann ich natürlich in der zu kopierenden Vorlage nichts in die Pflichtfelder eintragen. Sonst wäre ja in der Vorlage bereits was eingetragen.
Nun zu meiner Frage. Kann ich es irgendwie umgehen das in der Vorlage die Pflichtfelder ausgefüllt werden müssen. Sie sollen erst in der Kopie mit Datum ausgefüllt werden müssen.

Viele Grüße
Martin
Antworten Top
#10
Hallöchen,

Zitat:Ich habe Pflichtfelder in der zu kopierenden Vorlage festgelegt. Diese müssen ausgefüllt werden damit abgespeichert werden kann.

Du musst die Vorlage doch auch nicht speichern sondern die Kopie?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste