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.

Tabellenblatt umbenennen
#1
Hallo und Servus,

wahrscheinlich denkt ihr jetzt zuerst "Die Frage hatten wir ja schon 100 mal" - und ja, ich habe rumgesucht, gegooglet und im Forum - ich war aber nicht erfolgreich dabei...

Ich habe ein Makro zusammengeschrieben und -kopiert (ich bin da sicher kein Experte dafür), ich will aus einer Datei die ich aufrufe ein Tabellenblatt in die "Arbeitsdatei" kopieren und dann umbenennen.

Die Erklärungen zum Code hab ich direkt hineinkommentiert, ich hoffe dass das soweit verständlich ist.
Code:
'Variablen definieren
    Dim strDatName As Variant
    Dim aktuellername As Variant
    Dim anzahlTabbellenblaetter As Long
    Dim anzahlTabbellenblaetter2 As Long

    'Feststellen wie viele Tabellenblätter die Datei hat
    'Thisworkbook gibt die Arbeitsmappe an, in der das Makro ausgeführt wird
    anzahlTabbellenblaetter = ThisWorkbook.Sheets.Count


    'Öffnet Vermessungsdatei und kopiert die Daten
    Workbooks.Open Filename:=strDatName
    Sheets("Ergebnis").Select
    Sheets("Ergebnis").Copy After:=Workbooks(aktuellername).Sheets(anzahlTabbellenblaetter)

   'Ist jetzt genau 1 größer als anzahlTabellenblaetter - ich hätte mit "+1" experiementiert, aber das hat nicht funktioniert
    anzahlTabbellenblaetter2 = ThisWorkbook.Sheets.Count
    
    'Würde evtl. Vermessungsdatei schließen, das funktioniert aber bislang auch nicht
    'Workbooks(strDatName).Close False

    'Tabellenblatt passend umbenennen
    ThisWorkbook.Sheets(anzahlTabbellenblaetter2).Name = "Strukturvermessung"

Ich gehe davon aus dass der Fehler genau in der letzten Zeile liegt - u.U. weiße ich da einfach das Tabellenblatt falsch zu. Da kenne ich mich zu wenig aus und weiß nicht wie ich das suchen muss, ob ich die Zahl als Variable darstellen darf. Wenn ich eine Zahl eintrage funktioniert das besser.

Danke für eure Hilfe schon mal,

Grüße
Danie
Antworten Top
#2
Hallo Daniel,

die Zuweisung des Dateinamens musst Du noch anpassen.

Code:
Sub aaa()
'Variablen definieren
  Dim strDatName As String
  Dim anzahlTabbellenblaetter As Long

  'Feststellen wie viele Tabellenblätter die Datei hat
  'Thisworkbook gibt die Arbeitsmappe an, in der das Makro ausgeführt wird
  anzahlTabbellenblaetter = ThisWorkbook.Sheets.Count
  strDatName = "DeineDatei" '<< Anpassen!!

  'Öffnet Vermessungsdatei und kopiert die Daten
  With Workbooks.Open(Filename:=strDatName)
    .Sheets("Ergebnis").Copy After:=ThisWorkbook.Sheets(anzahlTabbellenblaetter)
    .Close False
  End With
  
  'Tabellenblatt passend umbenennen
  ThisWorkbook.Sheets(anzahlTabbellenblaetter + 1).Name = "Strukturvermessung"
End Sub

Gruß Uwe
Antworten Top
#3
Geil, vielen Dank für die Hilfe!

Problem war beim umbenennen hauptsächlich, dass ich das "reinkopierte" Tabellenblatt immer wieder gelöscht habe - aber die Zählung vom neuen Tabellenblatt trotzdem hochgelaufen ist.

Dadurch war
Code:
anzahlTabbellenblaetter+1

Vielmehr hätte ich

Code:
anzahlTabbellenblaetter+5 (wobei "5" hier jetzt eine willkürlich gewählte Zahl ist)

oder so schreiben müssen.

Wenn man eine ganz neue Datei erstellt funktioniert es wunderbar.

Grüße
Daniel
Antworten Top


Gehe zu:


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