Thema Datum  Von Nutzer Rating
Antwort
21.11.2024 09:04:51 Jutta
NotSolved
Blau Makro starten bei Eingabe eines Wertes in eine Zelle
21.11.2024 13:45:49 GTA
NotSolved
21.11.2024 15:48:28 Gast83196
NotSolved

Ansicht des Beitrags:
Von:
GTA
Datum:
21.11.2024 13:45:49
Views:
27
Rating: Antwort:
  Ja
Thema:
Makro starten bei Eingabe eines Wertes in eine Zelle

Hallo Jutta

Da ich schonmal etwas ähnliches hatte, habe ich mein Script mal auf deine Bedürfnisse angepasst.

Für die 50 verschiedenen Formen müsstest du 50x Case Situationen definieren.

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ws As Worksheet
    Dim shp As Shape
    Dim objType As Integer
    
    ' Überprüfen, ob die Änderung in Spalte D liegt
    If Not Intersect(Target, Me.Columns("D")) Is Nothing Then
        ' Sicherstellen, dass der Wert eine Zahl ist
        If IsNumeric(Target.Value) Then
            objType = Target.Value ' Der Wert in der Zelle
            
            ' Entferne existierende Formen an der Position (optional)
            For Each shp In Me.Shapes
                If Not Intersect(shp.TopLeftCell, Target) Is Nothing Then
                    shp.Delete
                End If
            Next shp
            
            ' Prüfen, ob der Wert innerhalb der möglichen Formen liegt
            If objType >= 1 And objType <= 50 Then
                ' Füge die Form hinzu
                Select Case objType
                    Case 1
                        Set shp = Me.Shapes.AddShape(msoShapeRectangle, Target.Left, Target.Top, 50, 20)
                    Case 2
                        Set shp = Me.Shapes.AddShape(msoShapeOval, Target.Left, Target.Top, 50, 50)
                    Case 3
                        Set shp = Me.Shapes.AddShape(msoShapeRightArrow, Target.Left, Target.Top, 50, 20)
                    ' Weitere Formen hinzufügen nach Bedarf...
                    Case Else
                        MsgBox "Formtyp ist nicht definiert."
                End Select
                
                ' Optional: Name oder Position anpassen
                'shp.Placement = xlMoveAndSize
                'shp.Name = "Shape_" & objType
            Else
                MsgBox "Bitte eine Zahl zwischen 1 und 50 eingeben."
            End If
        End If
    End If
End Sub

Zum Grusse


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
21.11.2024 09:04:51 Jutta
NotSolved
Blau Makro starten bei Eingabe eines Wertes in eine Zelle
21.11.2024 13:45:49 GTA
NotSolved
21.11.2024 15:48:28 Gast83196
NotSolved