Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Variable zur Erfassung des aktiven Sheet-Names

Forumthread: Variable zur Erfassung des aktiven Sheet-Names

Variable zur Erfassung des aktiven Sheet-Names
20.11.2002 14:13:18
MikeS
Hallo,
wie muss ich denn eine Variable definieren, die den momentan aktiven Sheetnamen erfassen soll?

Dieser Sheetname soll dann in einem Makro im Befehl
Sheets(aktiver Sheet).Select ausgewählt werden.

Vielen Dank
MikeS
:)

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Variable zur Erfassung des aktiven Sheet-Names
20.11.2002 14:17:34
Boris
Hallo Mike,

Gruß Boris

Re: Variable zur Erfassung des aktiven Sheet-Names
20.11.2002 14:19:36
Harald Kapp
Hallo Mike:

Aber verrate mal, warum Du das überhaupt tun möchtest? Das aktive Sheet ist doch bereits selektiert, sonst wäre es ja nicht das aktive Sheet.


Gruß Harald

Re: Variable zur Erfassung des aktiven Sheet-Names
20.11.2002 14:25:51
MikeS
Hi,
vielen Dank schon mal. Ich brauche aber keine MsgBox, sondern will, dass eine Formatierung im aktiven Sheet vorgenommen wird.
Hier ist der Code, allerdings springt er in der Zeile mit ["???"]
immer wieder raus...:
Sub Telekom_EVN_Import()
'
' Telekom_EVN_Import Makro
' Formatiert den Einzelverbindungsnachweis NACH DEM IMPORT!
'

'
Dim blattname As String

blattname = ActiveSheet.Name
Sheets("evn092002").Select
Selection.Copy
ActiveSheet.Name = blattname ["???"]
Cells.Select
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Range("B5").Select
End Sub

Anzeige
Re: Variable zur Erfassung des aktiven Sheet-Names
20.11.2002 14:30:02
MikeS
Hi und vielen Dank!
Ich füge Online-Rechnungen in ein Excel-Dokument ein und möchte das eingefügte Blatt nach dem Einfügen so formatieren lassen, wie ich jetzt eine 'Vorlage' formatiert habe. Deshalb soll es ein Makro werden, was folgendes macht:
1)Merke Dir das aktive Sheet
2)Markiere alle Zellen im Sheet'Vorlage'
3)Kopiere die Formatierungen
4)WECHSLE ZUM VORMALS AKTIVEN SHEET (Hier liegt mein Problem)
5)Füge die Formatierungen ein

Ich habe jetzt folgendes probiert, aber er fliegt an einer Stelle immer wieder raus:
Sub Telekom_EVN_Import()
'
' Telekom_EVN_Import Makro
' Formatiert den Einzelverbindungsnachweis NACH DEM IMPORT!
'

'
Dim blattname As String

blattname = ActiveSheet.Name
Sheets("evn092002").Select
Selection.Copy
ActiveSheet.Name = blattname [Hier steigt er aus]
Cells.Select
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Range("B5").Select
End Sub

Hast Du eine Idee?

Anzeige
Re: Variable zur Erfassung des aktiven Sheet-Names
20.11.2002 14:36:32
Steffen D
statt diese Zeile:
ActiveSheet.Name = blattname [Hier steigt er aus]

mach diese Zeile rein:
Sheets(blattname).Select

Re: Variable zur Erfassung des aktiven Sheet-Names
20.11.2002 14:41:33
Nico D
Dim a as string

a = activesheet.name

grüße

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Variable zur Erfassung des aktiven Sheet-Names in Excel VBA


Schritt-für-Schritt-Anleitung

Um den aktiven Sheetnamen in einer Variable zu speichern, kannst du folgenden VBA-Code verwenden:

Dim blattname As String
blattname = ActiveSheet.Name

Dieser Code speichert den Namen des aktiven Sheets in der Variablen blattname. Du kannst diese Variable dann verwenden, um auf das aktive Sheet zuzugreifen oder um es in einem Makro zu verwenden.

Wenn du beispielsweise zu einem anderen Sheet wechseln und danach zum ursprünglichen zurückkehren möchtest, gehe so vor:

Sub Beispiel()
    Dim blattname As String
    blattname = ActiveSheet.Name

    ' Wechsel zu einem anderen Sheet
    Sheets("evn092002").Select

    ' Zurück zum ursprünglichen Sheet
    Sheets(blattname).Select
End Sub

In diesem Beispiel wird das aktive Sheet zuerst in der Variable blattname gespeichert, dann wird zu einem anderen Sheet gewechselt, und schließlich wird das ursprüngliche Sheet mit Sheets(blattname).Select wieder aktiviert.


Häufige Fehler und Lösungen

  1. Fehler: "Subscript out of range"

    • Ursache: Der angegebene Sheetname in Sheets("evn092002").Select existiert nicht.
    • Lösung: Kontrolliere den Namen des Sheets und stelle sicher, dass es genau übereinstimmt.
  2. Fehler: "Object variable or With block variable not set"

    • Ursache: Du versuchst, auf ein Objekt zuzugreifen, das nicht existiert.
    • Lösung: Überprüfe, ob die Variable blattname korrekt gesetzt wurde und ob das aktive Sheet existiert.
  3. Fehler beim Zugriff auf die Variable

    • Ursache: Der Code wird in einem anderen Kontext ausgeführt, in dem ActiveSheet nicht definiert ist.
    • Lösung: Stelle sicher, dass du den Code im richtigen Kontext ausführst, z.B. in einem Worksheet- oder Workbook-Modul.

Alternative Methoden

Wenn du die aktive Sheet-Name-Variable auf eine andere Weise erfassen möchtest, kannst du auch Folgendes tun:

Dim sheetName As String
sheetName = ThisWorkbook.ActiveSheet.Name

Diese Methode stellt sicher, dass du den Namen des aktiven Sheets im aktuellen Workbook erfasst, selbst wenn die Arbeitsmappe gewechselt wurde.


Praktische Beispiele

Hier sind einige praktische Anwendungen der vba worksheet name as variable:

  1. Formatierung übernehmen:

    Sub FormatSheet()
       Dim blattname As String
       blattname = ActiveSheet.Name
    
       Sheets("Vorlage").Cells.Copy
       Sheets(blattname).Cells.PasteSpecial Paste:=xlFormats
    End Sub
  2. Datenübertragung zwischen Sheets:

    Sub TransferData()
       Dim blattname As String
       blattname = ActiveSheet.Name
    
       Sheets(blattname).Range("A1").Value = Sheets("Datenquelle").Range("B1").Value
    End Sub

Tipps für Profis

  • Verwendung von Option Explicit: Setze Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung in deinem Makro, um unerwartete Probleme elegant abzufangen:

On Error Resume Next
' Dein Code hier
If Err.Number <> 0 Then
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
End If
On Error GoTo 0
  • Verwende With-Blöcke: Um den Code lesbarer zu machen, verwende With-Blöcke:
With Sheets(blattname)
    .Range("A1").Value = "Hallo"
    .Cells.Copy
End With

FAQ: Häufige Fragen

1. Wie kann ich den Namen eines Sheets in einer Variablen speichern? Um den Namen des aktiven Sheets zu speichern, kannst du blattname = ActiveSheet.Name verwenden.

2. Was ist der Unterschied zwischen ActiveSheet und Sheets(blattname)? ActiveSheet bezieht sich auf das derzeit aktive Sheet, während Sheets(blattname) das Sheet mit dem Namen in der Variablen blattname auswählt.

3. Wie kann ich sicherstellen, dass mein Makro nicht abstürzt? Verwende Fehlerbehandlungen und Option Explicit, um sicherzustellen, dass alle Variablen korrekt deklariert und Fehler abgefangen werden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige