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
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
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
Top


Gehe zu:


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