Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Worksheetnamen ermitteln - nur eine benannte Zelle

Worksheetnamen ermitteln - nur eine benannte Zelle
27.03.2017 12:33:56
Burkhard
Hallo miteinander,
ich möchte von einem beliebigen Tabellenblatt aus den Namen eines anderen Tabellenblattes ermitteln. Alles, was ich von dieser "Ziel"-Tabelle weiß, ist, dass es dort eine benannte Zelle "Eingabe" gibt.
Nun wollte ich also zuerst diese Zelle anspringen/aktivieren, dann hätte ich mit ActiveSheet.Name das Ergebnis ja auf dem Präsentierteller. Nur: mit Application.Goto "Eingabe" oder Range("Eingabe").Parent.Activate bekomme ich VBA-Fehler.
Wie kann ich eine benannte Zelle in einem unbekannten Arbeitsblatt aktivieren?
Grüße
Burkhard

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Worksheetnamen ermitteln - nur eine benannte Zelle
27.03.2017 12:53:03
ChrisL
Hi Burkhard
z.B. so...
Sub t()
With Range("EinName")
Worksheets(.Parent.Name).Activate
Range(.Address).Select
End With
End Sub
cu
Chris
AW: Worksheetnamen ermitteln - nur eine benannte Zelle
27.03.2017 16:31:32
Burkhard
Hallo Chris,
ich fürchte, ich kann auf das Range-Objekt nicht zugreifen, ohne VORHER das zugehörige Worksheet benannt zu haben - die "With Range"-Zeile bringt sofort einen Fehler.
(Der Code wird in einem Modul ausgeführt; es ist ein anderes als das gesuchte sheet aktiv. Wenn das gesuchte sheet aktiv ist, funktionieren alle möglichen Varianten, auch die, die ich eingangs erwähnt hatte.)
Eigentlich wollte ich vermeiden, alle worksheets durchzunudeln, um dasjenige herauszufinden, in dem diese benannte Zelle vorkommt, um dann den Namen zu bekommen. Scheint wohl nicht anders zu gehen ... :-(
Sonst noch irgendwelche Ideen?
Grüße
Burkhard
Anzeige
AW: Worksheetnamen ermitteln - nur eine benannte Zelle
27.03.2017 17:29:26
ChrisL
Hi Burkhard
Bei mir funktioniert es (in XL2007) ohne Probleme.
Vermutlich kommt es drauf an, wie du den Namen definiert hast. Bei mir steht da z.B.
=Tabelle2!A1
Wenn du nur =A1 machst, dann besteht natürlich kein Bezug zur Tabelle.
Ansonsten lade eine Beispieldatei und gib deine Excel-Version an.
cu
Chris
AW: Worksheetnamen ermitteln - nur eine benannte Zelle
27.03.2017 18:33:37
Burkhard
Hallo Chris,
der Name hat im Namens-Manager durchaus einen Bezug (User-Gruppen ist die Tabelle und A314 ist die Zelle) - allerdings nicht im Namen selber, oder wie ist das gemeint? Ich kann an den Namen übrigens nix mehr ändern, die habe ich "geerbt".
Userbild
Ich habe inzwischen auch eine ganz passable Schleife über die worksheets, da wird nix aktiviert oder selektiert, das müsste also ganz flott gehen. Auch wenn mir die Sprungmarke (aus Prinzip) nicht so doll gefällt - es funktioniert:
Public Function getSheetName() As String
Dim wks As Worksheet
getSheetName= ""
On Error GoTo NextFor
For Each wks In ThisWorkbook.Worksheets
If wks.Range("Eingabe").Cells = "Eingabe" Then
getSheetName= wks.Name
Exit For
End If
NextFor:
Next
End Function
Grüße
Burkhard
Anzeige
AW: Worksheetnamen ermitteln - nur eine benannte Zelle
28.03.2017 08:34:03
ChrisL
Hi Burkhard
Im grauen Feld Bereich, hast du "User-Gruppen" stehen. Mit "Arbeitsmappe" ginge es.
cu
Chris
AW: Worksheetnamen ermitteln - nur eine benannte Zelle
28.03.2017 09:25:15
Burkhard
Hallo Chris,
oh sh...! Aber, wie gesagt, ich kann an den Namen nichts mehr ändern, und mein "Workaround" funktioniert ganz passabel.
Trotzdem vielen Dank für deine Hilfe!
Grüße
Burkhard
AW: Worksheetnamen ermitteln - nur eine benannte Zelle
27.03.2017 13:03:33
Nilo
Moin Burkhard,
Suchbegriff in "A1"
Ausgabe Tabellenblatt "B1"
oder anpassen!
Sub Schaltfläche1_Klicken()
Dim raZelle As Range
Dim inZeile As Integer
Dim strTabellen As String
Dim wsTabelle As Worksheet
For inZeile = 1 To IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, _
Rows.Count)
For Each wsTabelle In ThisWorkbook.Worksheets
If wsTabelle.Name  "Tabelle1" Then
With wsTabelle
Set raZelle = .UsedRange.Find(Cells(inZeile, 1), , , xlWhole, , xlNext)
If Not raZelle Is Nothing Then strTabellen = strTabellen & ", " & wsTabelle. _
_
Name
End With
End If
Next wsTabelle
Cells(inZeile, 2) = Mid(strTabellen, 3)
strTabellen = ""
Next inZeile
Set raZelle = Nothing
End Sub

Anzeige

321 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige