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

Wertänderung Zelle - Ereignis andere Tabelle

Wertänderung Zelle - Ereignis andere Tabelle
05.05.2019 09:51:12
Sarah
Hallo zusammen,
erstmal großes Kompliment an das Forum und die Seite insgesamt, ich liebe sie! Beste Quelle für Excel und VBA im gesamten Netz!!!
Ich stehe bei dem folgenden Problem total auf dem Schlauch und habe auch schon das Forum durchsucht, nur leider helfen mir die Ergebnisse nicht wirklich weiter, weil das Problem vor dem Monitor sitzt, sprich, meine Kenntnisse reichen nicht aus um die anderen Lösungen umzusetzen.
Ich möchte gerne folgendes programmieren:
In einer Exceltabelle habe ich ein Tabellenblatt "Daten" in dem ich die Grunddaten des Kunden eingebe. Hier habe ich bereits ein Dropdown-Menü zur Vorsteuer mit den Möglichkeiten "Ja" "Nein" und leer eingefügt.
Nunmehr möchte ich auf einem weiteren Tabellenblatt "Rechnung" die Rechnung erstellen. Je nachdem, ob der Kunde zum Abzug der Vorsteuer berechtigt ist oder nicht, soll die Zeile 22 ausgeblendet werden, in der die Vorsteuer berechnet wird.
Ich habe die folgenden Zeilen geschrieben:
Private Sub Worksheet_SheetChange(ByVal Target As Range)
If Worksheets("Daten").Range("C31").Value = "Ja" Then
Worksheets("Rechnung").Rows("23:23").EntireRow.Hidden = True
Else: .Rows("23:23").EntireRow.Hidden = False
End If
End Sub

Der Code befindet sich im Worksheet "Rechnung". Und es funktioniert nicht. Quizfrage, wieso? Egal, ob ich den Code in "Daten" oder "Rechnung" schreibe, Excel blendet mir die Zeile 23 weder aus noch ein.
Oder muss der Code in Workbook?
Muss ich Variablen definieren? Wenn ja, warum, denn ich dachte, dass ich durch meine Direktverweise sozusagen alles Notwendige getan habe, damit der Code laufen kann.
Besten Dank im Voraus für die Hilfe!

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wertänderung Zelle - Ereignis andere Tabelle
05.05.2019 09:55:26
Hajo_Zi
es reicht
ich würde den Code nur ausführen falls C31 geändert wurde.
Worksheets("Rechnung").Rows("23:23").EntireRow.Hidden=Worksheets("Daten").Range("C31").Value
nur wenige schauen auf Deinen Rechner und sehen die Datei.
Die meisten bauen Deine Datei nicht nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Die meisten möchten es am Original testen um den gleichen Fehler zu erhalten.
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Anzeige
AW: Wertänderung Zelle - Ereignis andere Tabelle
05.05.2019 10:04:53
Sarah
Hallo Hajo,
vielen Dank für die schnelle Antwort. Ich werde mal probieren über die Forumsfunktion die Datei hochzuladen. Könnte aber ein bisschen dauern.....
Viele Grüße
Sarah
AW: Wertänderung Zelle - Ereignis andere Tabelle
05.05.2019 09:59:20
Sepp
Hallo Sarah,
der Code gehört in das Modul der Tabelle 'Daten'.
Private Sub Worksheet_SheetChange(ByVal Target As Range)

  If Target.Address(0, 0) = "C31" Then
    Worksheets("Rechnung").Rows(23).EntireRow.Hidden = Target.Value = "Ja"
  End If

End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


Anzeige
Korrektur
05.05.2019 10:15:10
Sepp
Hallo Sarah,
wie Karin schon angemerkt hat, sollte es so lauten.
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address(0, 0) = "C31" Then
    Worksheets("Rechnung").Rows(23).EntireRow.Hidden = Target.Value = "Ja"
  End If
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


Anzeige
Das Ereignis im Codemodul...
05.05.2019 10:00:58
Beverly
Hi Sarah,
...des Tabellenblattes heißt Worksheet_Change und nicht Worksheet_SheetChange.
Versuche es mal mit folgendem Code im Codemodul des Tabellenblattes "Daten" (ungetestet):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(False, False) = "C31" Then
If Target.Value = "Ja" Then
Worksheets("Rechnung").Rows("23:23").EntireRow.Hidden = True
Else
Worksheets("Rechnung").Rows("23:23").EntireRow.Hidden = False
End If
End If
End Sub


AW: Das Ereignis im Codemodul...
11.05.2019 10:16:52
Sarah
Hallo zusammen,
vielen Dank für die Ganze Hilfe und ich habe inzwischen die Lösung gefunden. Ich hatte die Zelle 31 mit einer Listenauswahl belegt. Als ich in der Liste von "Ja" auf "Nein" geklickt habe und die Zelle allerdings nicht verließ, arbeitete logischerweise der Code auch nicht. Erst als ich mit der Maus eine andere Zelle aktivierte, ging der Code... Wie gesagt, oftmals sitzt das Problem vor dem Monitor.
Euch ein schönes Wochenende!
Gruß Sarah
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige