134 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo Community,

In meinem Arbeitsblatt habe ich mehrere Ranges definiert. Gibt es eine Möglichkeit per Doppelklick in eine Zelle anzuzeigen, in welcher Range diese Zelle liegt? Ich konnte mi Netz leider nichts dazu finden.

Vielen Dank

Flori

3 Antworten

0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)

Hi Flori,

da dir die Namen der Bereiche bekannt sind, kannst du das am einfachsten so lösen:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("Alle")) Is Nothing Then
        MsgBox "Ich bin im Bereich 'Alle'"
    ElseIf Not Intersect(Target, Range("Keiner")) Is Nothing Then
        MsgBox "Ich bin im Bereich 'Keiner'"
    ElseIf Not Intersect(Target, Range("Niemand")) Is Nothing Then
        MsgBox "Ich bin im Bereich 'Niemand'"
    End If
End Sub

Bis später, Karin

0 Punkte
Beantwortet von
Vielen Dank Karin,

damit kann ich weitermachen. Ich werde die Range-Namen in ein Array schreiben und dann mit einer Schleife zu prüfen.

Flori
0 Punkte
Beantwortet von
Raum für Expeimente

Bei Excel Namensbereiche anspringen ,mit Sprachausgabe

Die Bereiche werden alle nacheinander angesprungen,nach wiederholten Makrostart
Bei Ende dann wieder vom Anfang

Global Addressen_Merker As Integer
Sub Bereich_Vorwärts()
Dim Bereichs_Name As Name
ReDim Namen_Liste(1 To ActiveWorkbook.Names.Count) As String
For Each Bereichs_Name In ActiveWorkbook.Names
Namen_Liste(Bereichs_Name.Index) = Bereichs_Name.Name
Next
Addressen_Merker = Addressen_Merker + 1
Range(Mid(Range(Namen_Liste(Addressen_Merker)).Address(), 1, InStr(Range(Namen_Liste(Addressen_Merker)).Address(), ":") - 1)).Activate
Sprachausgabe ("Bereich")
Sprachausgabe (Namen_Liste(Addressen_Merker))
If Addressen_Merker = UBound(Namen_Liste()) Then Addressen_Merker = 0
End Sub

Public Function Sprachausgabe(strText)
Dim sabbeln As Object
Set sabbeln = CreateObject("SAPI.SpVoice")
sabbeln.Speak strText
Set sabbeln = Nothing
End Function
...