Hallo zusammen,
ich arbeite aktuell an einem kleineren Projekt in VBA. Um eine "Bearbeiten" Funktion einzurichten muss ich den Namen eines ausgewählten Objekts weitergeben. Bisher funktioniert die Ausgabe super für den Namen von Zellen. Wenn ich aber meine (gruppierte) Form auswähle gibt es keinerlei Ausgabe. Obwohl der Name des Objekts oben links in dem kleinen Fenster angezeigt wird. Wie könnte ich dieses Problem lösen?
Zur Erläuterung: Die Anwendung ist ein Projektmanagement Tool. Die Einsatzplanung findet auf einer Art Kanban Chart statt. Zu jedem Projekt wird eine Form (gruppiert) generiert und mit einer eindeutigen fortlaufenden ID benannt. Wenn ich jetzt eine der Kanban Karten anklicke muss ich den Namen des Objektes weiterreichen können um eine "Bearbeiten" Funktion einzurichten. Damit das sich öffnende Formular weiß aus welcher Zeile es seine Daten ziehen soll und wohin es die Änderungen dann schreiben soll.
Hier der Code. Dieser wird dann später in dem Blatt mit der Funktion unten getriggert wenn die Auswahl geändert wird:
Sub GetSelectedObjectName()
Dim selectedObjectName As String
Dim obj As Object
' Check if something is selected
If Not Selection Is Nothing Then
If Selection.Count = 1 Then
' If a single object is selected, determine its type
Set obj = Selection
If TypeOf obj Is Range Then
' If it's a cell or range
selectedObjectName = obj.Address
ElseIf TypeOf obj Is shape Then
' If it's an individual shape
selectedObjectName = obj.Name
ElseIf TypeOf obj Is ChartObject Then
' If it's a chart
selectedObjectName = obj.Name
End If
ElseIf Selection.Count > 1 Then
' Check if a grouped shape is selected
If TypeName(Selection(1)) = "GroupObject" Then
' If it's a grouped shape
selectedObjectName = "Grouped Shape"
End If
End If
End If
' Display the name in a message box
If selectedObjectName <> "" Then
MsgBox "Selected Object Name: " & selectedObjectName
Else
MsgBox "No object selected."
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call GetSelectedObjectName
End Sub
|