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!

 VBA: ALternativtext finden
				
![[-]](https://www.clever-excel-forum.de/images/collapse.png)