Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Makro startet nicht - Bezug auf eine Formel


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

    GrußformelHomepage

      

    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

    Beiträge aus dem Excel-Forum zum Thema "Makro startet nicht - Bezug auf eine Formel"