Registriert seit: 08.07.2016
Version(en): 2016
13.02.2017, 19:36
(Dieser Beitrag wurde zuletzt bearbeitet: 13.02.2017, 19:36 von o0Julia0o.)
hi, wie kann ich ein Textfeld samt Inhalt nur anzeigen lassen, wenn A1=1 ist?
Ich kann zwar so nur den Inhalt anzeigen lassen:
https://support.office.com/de-de/article...d112c2099fJedoch das leere Textfeld wird auch angezeigt, wenn das Feld mit dem Inhalt leer ist. Und das soll ja eben nicht sein.
lieben Dank
Julia :)
Registriert seit: 21.06.2016
Version(en): 2021
Hallo Julia,
das geht meines Wissens nur mit VBA. Ist das für dich in Ordnung?
Wenn das Feld A1 manuel geändert wird über das Change-Ereignis.
Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Range("A1").Value <> 1 Then
ActiveSheet.Shapes.Range(Array("TextBox 3")).Visible = False
Else
ActiveSheet.Shapes.Range(Array("TextBox 3")).Visible = True
End If
End Sub
Ansonsten über das Calculate Ereignis
Code:
Private Sub Worksheet_Calculate()
If Range("A1").Value <> 1 Then
ActiveSheet.Shapes.Range(Array("TextBox 3")).Visible = False
Else
ActiveSheet.Shapes.Range(Array("TextBox 3")).Visible = True
End If
End Sub
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
Registriert seit: 08.07.2016
Version(en): 2016
Danke Dir, Ego. Ich habe beide Varianten durchprobiert. Natürlich auf meine Textboxnummer(also Textbox 4) bezogen. Aber beide funktinieren nicht. Ich habe auch mal Textbox durch Textfeld 4 ersetzt, weil das Textfeld mir so angezeigt wird obenlinks.
Ich verstehe den Unterschied nicht zwischen den beiden Varianten.
Ich dachte das hier wäre auch nur der Name des Makros, also die 1. Zeile:
Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Registriert seit: 10.04.2014
Version(en): Office 2019
15.02.2017, 21:00
(Dieser Beitrag wurde zuletzt bearbeitet: 15.02.2017, 21:00 von Jockel.)
(13.02.2017, 20:48)Ego schrieb: Hallo Julia,
das geht meines Wissens nur mit VBA. Ist das für dich in Ordnung?
...
Hallo, warum sollte das nur mit VBA gehen..? Das kommt, denke ich, auf das konkrete Beispiel an ...
Gruß Jörg
stolzes Mitglied im ----Excel-Verein
Freund einer excellenten Power Query-Abfrage
Registriert seit: 21.06.2016
Version(en): 2021
15.02.2017, 21:08
(Dieser Beitrag wurde zuletzt bearbeitet: 15.02.2017, 21:23 von Ego.)
Hallo Julia,
"Worksheet_Change" und "Worksheet_Calculate" sind in Excelereignisse zu einem Arbeitsblatt.
Die Makros müssen im VBA-Editor unbedingt mit diesen Namen in das Modul zum entsprechenden Arbeitsblatt.
Falls in einem Arbeitsblatt eine Eingabe erfolgte, sucht Excel automatisch ob es in dem Modul diese Arbeitsblattes ein Makro mit dem Namen "Worksheet_Change" vorhanden ist und führt dieses aus.
Falls in einem Arbeitsblatt eine Zelle neu berechnet wurde, sucht Excel automatisch ob es in dem Modul diese Arbeitsblattes ein Makro mit dem Namen "Worksheet_Calculate" vorhanden ist und führt dieses aus.
Du kannst den code dieser Makros auch in ein anderes Makro schreiben, dann must du dieses Makro nur selbst anstossen.
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
Registriert seit: 21.06.2016
Version(en): 2021
Hallo Jockel,
was ist an diesem Beispiel nicht konkret genug?
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo,
das Ganze könnte auch so zusammengestutzt werden:
Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
ActiveSheet.Shapes("Textfeld 1").Visible = Range("A1").Value = 1
End Sub
Wobei ich mir angewöhnt habe, bei Change auf Änderungen einer bestimmten Zelle oder einer bestimmten Zelle in einem Bereich zu schauen um eine bestimmte Aktion zu starten.
Viele Worte für das hier:
Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address(0, 0) = "A1" Then
ActiveSheet.Shapes("Textfeld 1").Visible = Range("A1").Value = 1
End If
End Sub
Gruß Atilla
Registriert seit: 08.07.2016
Version(en): 2016
15.02.2017, 21:59
(Dieser Beitrag wurde zuletzt bearbeitet: 15.02.2017, 22:00 von o0Julia0o.)
(15.02.2017, 21:08)Ego schrieb: "Worksheet_Change" und "Worksheet_Calculate" sind in Excelereignisse zu einem Arbeitsblatt.
So sieht das aus:
[url=
Dateiupload bitte im Forum! So geht es: Klick mich!]
Wenn ich jetzt hinter Private_Sub Benotung schreibe, dann gilt dieses Makro nur für das Arbeitsblatt "Benotung"?
Wenn ich jetzt hinter Private_Sub Change schreibe, dann gilt dieses Makro nur für das Arbeitsblatt "Change"?
Und dieses (ByVal Target As Excel.Range) hat dann eine tatsächliche Funktion? Also das heißt, wenn ich in dem Arbeitsblatt in dem angegebenem Feld etwas ändere, dann wird das Marko ausgeführt?
Und das andereMakro (ohne (ByVal Target As Excel.Range) auch, wenn auf dem Arbeitsblatt in dem angegebenem Feld =B1 steht und ich B1 ändere?
(15.02.2017, 21:08)Ego schrieb: Ego
Die Makros müssen im VBA-Editor unbedingt mit diesen Namen in das Modul zum entsprechenden Arbeitsblatt.
Das habe ich nicht verstanden. Wie mache ich das? Ich habe in VBA 8 Module. Die sind nach und nach automatisch hinzugekommen, wenn ich Makros aufgezeichnet & gelöscht habe. In ein solches Modul habe ich auch deine Codes geschrieben.
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo Julia,
dat geht so nich!
schau mal unter folgendem Link, besonders Beispiel2:
Dropdowns in Modulen
Gruß Atilla
Registriert seit: 10.04.2014
Version(en): Office 2019
(15.02.2017, 21:11)Ego schrieb: Hallo Jockel,
was ist an diesem Beispiel nicht konkret genug?
Hallo, es kommt immer darauf an, was der TE will für mich ist es ein Unterschied zwischen Betreff und geposteter Datei. Mein Beispiel mit einem Textfeld, wenn in A1 eine 1 steht, wäre also vergebene "Liebesmüh' ".. ...so oder so braucht's kein VBA...
Gruß Jörg
stolzes Mitglied im ----Excel-Verein
Freund einer excellenten Power Query-Abfrage