Informationen und Beispiele zum Thema TextBox | |
---|---|
![]() |
TextBox-Seite mit Beispielarbeitsmappe aufrufen |
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
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