Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1584to1588
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Starten "Sub Worksheet_Change" über WENN-Ergebnis

Starten "Sub Worksheet_Change" über WENN-Ergebnis
19.10.2017 18:43:29
Jens
Hallo Experten,
ich habe folgendes Problem. Ich folgendes VBA Skript zum Ausblenden von Zeilen erstellt, dass ü _
ber eine Bedingung in Zelle Y1 gestartet werden soll.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$Y$1" Then
If Target.Value = "j" Then
Rows("16:16").Hidden = True
Rows("17:17").Hidden = False
Else
Rows("16:16").Hidden = False
Rows("17:17").Hidden = True
End If
End If
End Sub

1)Über berechnete Formel starten, wie?
Funtioniert zwar, allerdings nur wenn ich ein "j" direkt in die Zelle Y1 eingebe. Sobald ich den Wert in Y1 über eine WENN-Formel berechne, funktioniert es nicht mehr, obwohl in der Zelle Y1 ein "j" über die Formel angezeigt wird.
2)Wie kann auf ein Targetzelle in einem anderen Tabellenblatt referenziert werden?
Sicher wie immer ganz einfach, wenn man weiß wie es geht :-)
Hoffe auf Eure Hilfe,
Grüße, Jens

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Starten "Sub Worksheet_Change" über WENN-Ergebnis
19.10.2017 19:15:05
AlterDresdner
Hallo Jens,
wenn Du statt Target.value Target.Text verwendest, sollte 1. geklärt sein.
Zu 2.: Target ist immer auf dem aktuellen Blatt, um ein Target auf einem anderen Blatt anzusprechen, musst Du dort eine Worksheet_Change-Routine basteln.
Wenn es nur um den Wert einer zelle in einem anderen Blatt geht: Thisworkbook.sheets("xyz").range("C17") sollte helfen.
Gruß der AlteDresdner
AW: Starten "Sub Worksheet_Change"
20.10.2017 09:48:01
Jens
Hallo AlteDresdener,
leider funktioniert es auch nicht mit Target.Text.
Grundsätzlich funktioniert die Routine zwar (aber das tat sie auch schon mit Target.Value). Funktioniert aber beides nur wenn ich den Wert direkt in die Zelle eingebe und nicht wenn der Wert über eine Formel berechnet wird. Das Problem ist unabhängig davon ob Buchstaben oder Zahlen in der Steuerzelle ausgegeben werden.
Andere Ideen?
Grüße,
Jens
Anzeige
AW: Starten "Sub Worksheet_Change"
20.10.2017 09:58:44
onur
Wenn du meine Antwort gelesen hättest, würdest du nicht fragen.
AW: Starten "Sub Worksheet_Change"
20.10.2017 10:03:51
Jens
Hallo onur,
habe ich erst eben gesehen. Bin als Neuling hier noch ganz so firm, sorry.
Allerdings bin ich anscheinend auch zu unerfahren, Deinen Hinweis in eine Lösung umzusetzen. Sie meine Antwort auf Deinen Hinweis.
AW: Starten "Sub Worksheet_Change"
20.10.2017 10:12:44
onur
Oder einfach aus Woksheet_Change Worksheet_Calculate machen.
AW: Starten "Sub Worksheet_Change" über WENN-Ergebnis
19.10.2017 19:45:27
onur
Zu 1:
Change reagiert dur auf direkte Änderungen (durch user oder vba - nicht durch formel), wenn du DAS willst, musst du (wie schon gesagt) .value am besten ganz weglassen und das calculate-ereignis nehmen.
AW: Starten "Sub Worksheet_Change"
20.10.2017 10:01:06
Jens
Hallo onur,
Deine Zeilen erklären, warum es nicht funtioniert. Allerding bin ich mir nicht sicher, ob ich Deine Lösung verstanden habe.
Wenn ich in der 3. Zeile meines Beispiels aus Target.Value nur Target machen, funktioniert es leider immer noch nicht. Das mit den calculate-ereignis habe ich nicht verstanden. Kannst Du mir hier helfen?
Viele Grüße
Jens
Anzeige
AW: Starten "Sub Worksheet_Change"
20.10.2017 10:08:22
onur
Den ganzen code (ohne Sub ... und Exit Sub natürlich) aus dem Change-Ereignis ausschneiden und vom Change- auf das Calculate-Ereignis kopieren.
AW: Starten "Sub Worksheet_Change"
20.10.2017 10:41:58
Jens
frage ist noch offen, kann mir jemand helfen?
AW: Starten "Sub Worksheet_Change"
20.10.2017 10:45:10
onur
Liest du meine Antworten nicht?
Private Sub Worksheet_Calculate()
20.10.2017 11:08:52
Matthias
Hallo Jens
Code ins entsprechende Tabelleblatt:
Option Explicit
Private Sub Worksheet_Calculate()
With Range("$Y$1")
If .Value = "j" Then
Rows("16:16").Hidden = True
Rows("17:17").Hidden = False
Else
Rows("16:16").Hidden = False
Rows("17:17").Hidden = True
End If
End With
End Sub
Geht auch noch einen Tick kürzer, aber probiers mal so.
Gruß Matthias
Anzeige
und hier eine kürzere Variante ...
20.10.2017 11:18:22
Matthias

Option Explicit
Private Sub Worksheet_Calculate()
Application.ScreenUpdating = False
With Range("$Y$1")
Rows("16:16").Hidden = .Value = "j"
Rows("17:17").Hidden = .Value  "j"
End With
End Sub

AW: Private Sub Worksheet_Calculate()
20.10.2017 11:29:40
Jens
Hallo Mathias,
Danke für Deine Hilfe. Wenn den Code so in mein Blatt übernehme, erhalten ich allerdings einen
Laufzeit fehler '....lange Nummer':Die Methode 'Hidden' für das Objekt Rande' ist fehlgeschlagen
- Excel funktioniert nicht mehr - Programm neu starten
Was mache ich falsch?
Grüße, Jens
keine Probleme ...
20.10.2017 11:40:32
Matthias
Hallo
Funktioniert ohne Probleme
Hast Du denn

Private Sub Worksheet_Change()
auch komplett gelöscht?
Gruß Matthias
Anzeige
AW: keine Probleme ...
20.10.2017 12:17:22
Jens
Hallo Mathias,
habe es gerade in einer Test-xls ausprobiert und da scheint es auch bei mir fehlerfrei zu laufen.
Der Fehler scheint durch ein externes Excel Plugin (ThinkCell) in Kombination mit VBA verursacht zu sein.
Erst mal vielen Dank für Deine Unterstützung beim Code.
Gruß, Jens
AW: keine Probleme ...
22.10.2017 13:13:37
Hajo_Zi
Hallo Jens,
aus dem Beitrag hätte ich gelesen das es gelöst ist.
Falls nicht habe ich keine Information gefunden wie ich das nachbauen soll um es zu testen.
Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Der Name einer hochgeladenen Mappe wird im Beitrag automatisch angezeigt, sodass es bei Verwendung von aussagekräftigen Namen leichter fällt, sie später im Ablageordner wiederzufinden und sie gedanklich einem bestimmten Thema zuzuordnen. Namen wie Muster, Test, Mappe, Beispiel, Fehler, Kalender usw. sind so allgemein, dass eine Zuordnung zu einem Thema unmöglich gemacht wird.
Es sollte ein aussagekräftiger Name sein.

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung. o.w.T."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben, mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Beiträge von Werner, Luc, robert und folgende lese ich nicht.
Anzeige

300 Forumthreads zu ähnlichen Themen


Liebe Forumsmitglieder
mir ist aufgefallen dass Worksheet_Activate() nur bei Tabellen funktioniert. z.B.
Private Sub Worksheet_Activate() MsgBox "hallo" End Sub
Bei eingefügten Diagrammen (als eigene Seite) funktioniert das aber leider nicht.
Gibt es da auch eine Methode um...
Anzeige

Ein schönes Wochenende zuvor wünschend!
Aufgabenstellung:
Ich möchte in einer Zelle einen Wert schreiben, was ein Makro auslösen soll. In einer Zweiten soll dadurch automatisch eine Umrechenformel einfügt werden. Auf diese Weise kann man (trivial, nur als Beispiel) bei der Bedienung ein...


Hallo Könner,
mal wieder an einem Punkt angekommen, wo ich echt nicht weiß, ob die PCs was Magisches können.
Das Makro unten ist prima gelaufen. Und dann mal wieder nicht. Jetzt gerade mal wieder nicht, daher mein Hilferuf. Als mir das das erste Mal passiert ist, habe ich den ganze...
Anzeige

Hallo Leute,
habe mir vor einigen Wochen hier im Forum von Daniel helfen lassen und wollte nun den von ihm geposteten Script ein wenig auf meine Bedürfnisse umschreiben. Leider bin ich wohl zu blöd...
Es wäre Klasse, wenn mir jemand helfen könnte!
Ausgangslage:
Ich möchte in ein...

Hallo VBA-Künstler,
Ich habe in meiner Excelmappe schon ein längeres
Private Sub Worksheet_Change(ByVal Target As Range)
auf dem ersten Tabellenblatt eingebaut.
Bisher habe ich es nur so hinbekommen, dass die direkte Spalte angesprochen wird, in der man gerade etwas einträgt.
Frage zu Private Sub Worksheet_Activate()
Kann ich ein anderes Sub starten zB Application.Run "BLZusKopieren"
funktioniert bei mir nicht
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige