Herbers Excel-Forum - das Archiv

Makro startet nicht - Bezug auf eine Formel

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
TextBox


Betrifft: Makro startet nicht - Bezug auf eine Formel
von: Andreas Meier

Geschrieben am: 13.09.2019 14:32:25
Hallo zusammen,
Mein Ziel ist eine Reihe von Datenblättern zu erstellen, die jeweils 2 Fotos enthalten.
Die Daten dazu werden aus einer Tabelle über sverweise in das jeweilige Datenblatt gespeist.
Beim manuellen Ändern der Produktbezeichnung stellen sich die passenden Werte ein. Die Fotos werden über folgenden Code geladen:
  • 
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim myPict As Picture
    Dim PictureLoc As String
    Dim myPict2 As Picture
    Dim PictureLoc2 As String
    If Target.Address = Range("D8").Address Then
    ActiveSheet.Pictures.Delete
    PictureLoc = "V:\ordner1\" & Range("D8").Value & ".jpg"
    PictureLoc2 = "V:\ordner2\" & Range("D8").Value & ".jpg"
    With Range("B27")
    Set myPict = ActiveSheet.Pictures.Insert(PictureLoc)
    '.RowHeight = myPict.Height
    myPict.Top = .Top
    myPict.Left = .Left
    myPict.Height = 310
    myPict.Width = 310
    'myPict.Placement = xlMoveAndSize
    End With
    With Range("H27")
    Set myPict2 = ActiveSheet.Pictures.Insert(PictureLoc2)
    '.RowHeight = myPict2.Height
    myPict2.Top = .Top
    myPict2.Left = .Left
    myPict2.Height = 120
    myPict2.Width = 120
    'myPict2.Placement = xlMoveAndSize
    End With
    End If
    End Sub
    


  • Soweit so gut, der Code funktioniert. Der Knackpunkt ist, dass Zelle D8, die das Makro startet manuell geändert werden muss, damit sich die Fotos ändern. Der Inhalt von D8 ist jedoch ebenfalls ein sverweisergebnis, dass sich automatisch ändert, wenn der Produktname geändert wird.
    Ich komme zum Punkt: Wie kann ich das Makro starten, wenn sich Zelle D8 ohne manuelle Eingabe ändert?
    Über einen Tipp wäre ich hocherfreut!

    Betrifft: AW: Makro startet nicht - Bezug auf eine Formel
    von: 1712932.html
    Geschrieben am: 13.09.2019 14:38:17
    benutze
    Private Sub Worksheet_Calculate()
    was aufwendig ist.
    Beispiele dazu
    http://hajo-excel.de/vba_bild_auswahl.htm

    Betrifft: AW: ActiveX-Textfeld
    von: 1712933.html
    Geschrieben am: 13.09.2019 14:40:54
    Hallo,
    bekanntlich startet der "Change-Event" nicht, wenn sich der Wert einer Zelle durch eine Formel ändert.
    Ein Work-around ist, ein (unsichtbares) ActiveX-Textfeld anzulegen und mit der gewünschten Zelle zu verbinden. Das Text-Feld "Change-Event" erkennt Änderungen auch per Formel.
    mfg

    Betrifft: AW: Makro startet nicht - Bezug auf eine Formel
    von: 1712934.html

    Geschrieben am: 13.09.2019 14:41:22
    Hallo Andreas,
    das geht nicht, da eine Formelberechnung das Worksheet_Change Ereignis nicht ausloest.
    Du koenntest das Calculate-Ereignis benutzen, aber dann wird das Makro auch gestartet, wenn andere Formeln neu berechnet werden.
    Du koenntes aber eine andere Zelle benutzen, wo immer etwas manuell eingetragen oder geaendert wird, um das Eriegnis auszuloesen.
    Gruss Torsten

    Betrifft: AW: Makro startet nicht - Bezug auf eine Formel
    von: 1712955.html

    Geschrieben am: 13.09.2019 15:33:50
    Schönen Dank für die Vorschläge:
    Der workaround (-> Fennek) scheint mir aktuell am schnellsten zu bewältigen zu sein, auch wenn er wahrscheinlich nicht den saubersten Weg darstellt.
    Die Textbox habe ich erstellt (https://www.herber.de/forum/archiv/1596to1600/1596577_Textfelder_verknuepfen.html).
    Allerdings: Wie wird "TextBox1" aus dem Makro heraus angesteuert?
    So hat es jedenfalls nicht funktioniert:
    If Target.Address = Range("TextBox1").Address Then
    ActiveSheet.Pictures.Delete
    PictureLoc = "V:\ordner1\" & Range("TextBox1").Value & ".jpg"
    

    Betrifft: AW: Change-Event der Textbox
    von: 1712965.html
    Geschrieben am: 13.09.2019 16:04:44
    Hallo,
    ein "Sheet_Change-Event" ist nicht möglich, aber die ActiveX-Textbox hat ebenfalls ein "Change-Event".
    mfg

    Betrifft: AW: Makro startet nicht - Bezug auf eine Formel
    von: 1712966.html
    Geschrieben am: 13.09.2019 16:06:40
    HI
    wenn du über die TextBox gehst, muss der Code natürlich ins ChangeEvent der TextBox
    eine Prüfung a la "If Target.Address = ..." ist nicht erforderlich, weil du jetzt kein allgemeines Change-Event für alle Zellen mehr hast, sondern du hast ein Spezifisches Change-Event für genau diese eine TextBox, und wenn dieses auslöst, musst auch immer das Makro ausgeführt werden, weil sich dann diese Zelle geändert hat.
    demzufolge gibt es auch keine TARGET-Variable mehr, weil ja eindeutig ist, was sich geändert hat, nämlich der Wert dieser TextBox.
    Gruß Daniel

    Excel-Beispiele zum Thema "Makro startet nicht - Bezug auf eine Formel"
    Anzeigen von Werten und Formeln Zeile einfügen und Formeln und Werte übernehmen
    Formeln mit Zelladressen speichern Zeilenumbruch in Formel erzwingen
    Aktueller Arbeitsblattname in Formel Variable in Formel einbauen
    Ein Zeichen in einer Formel suchen Variable in Excel-Formel einbauen.
    Summenformel unter Zahlenreihe eintragen Arbeitszeittabelle und SVERWEIS-Formel
    Bewerten Sie hier bitte das Excel-Portal