28.09.2024, 13:40
Hallo!
Ich brauche mal wieder eure Hilfe zum Thema VBA.
Ich habe einen Zellbereich von G8 bis ZZ1000, in dem sich irgendwo ein Bild befindet.
=BILD("https://cdn-icons-png.flaticon.com/128/626/626013.png";"O";0)
Es wird also das Bild und als Alternativtext "O" ausgegeben.
Nun soll das Makro diesen Zellbereich durchsuchen und die Zelle mit dem Alternativtext "O" finden. Sofern sich in der Zelle darunter kein "-" befindet und im Tabellenblatt "#Parameter" Zelle B3 eine 1 enthält, soll das Makro nun darunter die Formel "=IMAGE(""https://cdn-icons-png.flaticon.com/128/626/626013.png"",""O"",0)" einfügen.
Mein Problem ist allerdings - dieser Code findet die Zelle nicht. Debug.Print kommt bis shapes. Kann ich den Alternativtext so gar nicht abfragen?
Danke!
Ich brauche mal wieder eure Hilfe zum Thema VBA.
Ich habe einen Zellbereich von G8 bis ZZ1000, in dem sich irgendwo ein Bild befindet.
=BILD("https://cdn-icons-png.flaticon.com/128/626/626013.png";"O";0)
Es wird also das Bild und als Alternativtext "O" ausgegeben.
Nun soll das Makro diesen Zellbereich durchsuchen und die Zelle mit dem Alternativtext "O" finden. Sofern sich in der Zelle darunter kein "-" befindet und im Tabellenblatt "#Parameter" Zelle B3 eine 1 enthält, soll das Makro nun darunter die Formel "=IMAGE(""https://cdn-icons-png.flaticon.com/128/626/626013.png"",""O"",0)" einfügen.
Mein Problem ist allerdings - dieser Code findet die Zelle nicht. Debug.Print kommt bis shapes. Kann ich den Alternativtext so gar nicht abfragen?
Code:
Option Explicit
Sub Abwärts()
Dim wsHauptseite As Worksheet
Dim wsParameter As Worksheet
Dim shp As Shape
Dim found As Boolean
' Arbeitsblätter festlegen
Set wsHauptseite = ThisWorkbook.Sheets("Hauptseite")
Set wsParameter = ThisWorkbook.Sheets("#Parameter")
Debug.Print "Blätter festgelegt"
' Kontrolle ob Parameter B3 ist 1
If wsParameter.Range("B3").Value = 1 Then
found = False
Debug.Print "Parameter B3 ist 1"
' Schleife durch Hauptseite
For Each shp In wsHauptseite.Shapes
Debug.Print "shapes"
' Kontrolle ob shapes Alternativtext ist O
If shp.AlternativeText = "O" Then
gefunden = True
Debug.Print "Alternativtext ist O"
' Kontrolle ob in letzter Zeile
If shp.TopLeftCell.Row < 1000 Then
' Kontrolle ob Zelle darunter ist "-"
If wsHauptseite.Cells(shp.TopLeftCell.Row + 1, shp.TopLeftCell.Column).Value <> "-" Then
' Bildformel einfügen
wsHauptseite.Cells(shp.TopLeftCell.Row + 1, shp.TopLeftCell.Column).Formula2 = "=IMAGE(""https://cdn-icons-png.flaticon.com/128/626/626013.png"",""O"",0)"
End If
End If
Exit For
End If
Next shp
If Not found Then
MsgBox "Kein Bild mit Alternativtext 'O' gefunden.", vbInformation, "Information"
End If
End If
On Error GoTo 0
Exit Sub
ErrorHandler:
MsgBox "Fehler " & Err.Number & ": " & Err.Description, vbExclamation, "Fehler"
End Sub
Danke!