Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

DropDown im nächsten Sheet entsprechende Tabelle ausblenden
#11

.xlsm   ExcelVBAAnfänger.xlsm (Größe: 23,63 KB / Downloads: 4)

dann schau dir an wie ich es meine. Das Makro für das Worksheetchange Ereignis gehört in den Codebereich des Blattes wo Changeevents ausgewertet werden sollen. in diesem Fall Sheet(Haus)
Antworten Top
#12
Guten morgen ralf_b,

erst mal vielen Dank, dass du dir die Mühen machst.

Dann Programm hat bei mir auf dem Tabellenblatt "Material" einwandfrei funktioniert. Aber auf der Haus Seite die ersten beiden leider nicht.
Das Problem ist jetzt, dass ich leider deinen Code nicht verstehe.

Mir kommt es nämlich so vor, dass du mit dem Code nur die Tabellen auf der Material Seite  "Visible" machst und nicht auf der Hausseite die Inforamtionen mit ausblendest.
Kannst du mich da bitte auf klären?

Viele Grüße
ExcelVBAAnfänger
Antworten Top
#13

.xlsm   ExcelVBAAnfänger (1).xlsm (Größe: 22,21 KB / Downloads: 2)

schau mal dieses update, hab den code umgeschrieben und die Wörterfarbe sollte auch funktionieren. weis nicht warum das in der Uploaddatei nicht ging.
der Code ist kommentiert damit du weist was da abgeht.
Antworten Top
#14
Vielen Dank rafl_b,

es funktioniert jetzt einwandrei, ich versuche es jetzt auf meine Hauptdatei anzuwenden.

Aber jetzt zum Verständnis, wirklich verstanden habe ich es nicht, da ich mich mit VBA noch nicht wirklich aus kenne, aber ich werde mich schon noch darein fuchsen.
Könntest du mir bitte nur noch sagen, wo ich die Codezeile finde, die dafür da ist, um auf dem Tabellenblatt "Haus", die Informationen zu dem jewiligen Haus bei "Nein" ausblendet.

Viele Grüße
ExcelVBAAnfänger

So ich habe jetzt den ganzen Code auf meine Datei angewendet, also eins zu eins kopiert außer halt die Namen und die Zellen geändert.

Wenn ich dann aber im Dropdown Menü etwas ändere, bekomme ich den Laufzeitfehler 9 und die 3. letzte Zeile also : Worksheets("Material").Rows(sRows).Hidden = bSchalter"
wird gelblich makiert.

Könnte es dran liegen, dass bei mir, dass .Rows(SRows) bei mir automatisch groß geschrieben wird?


Viele Grüße
ExcelVBAAnfänger
Antworten Top
#15
bin kein Hellseher. 

das die Wörterfarbe im Haus  mittels bedingte Formatierung geändert wird, habe ich dir mitgeteilt. recherchiere bitte selbst was es damit auf sich hat. 

SRows   gibt es evtl schon in deinem Code und daher dann der Fehler. Also die Variable umbenennen und dann sollte es gehen.

Worksheets() ist eine Liste mit allen deinen Arbeitsblättern.
Worksheets("Namex") ist dann also die Referenz auf eine bestimmtes Blatt

Darauf aufbauend greift man auf dessen Eigenschaften zu. mittels rows()  = Liste alle Zeilen  und Rows("20:30")  dannentsprechedn zeilen 20  bis 30. 

die Eigenschaft hidden setzt die Zeilenhöhe auf Null.  true und false sind nur Ausdrücke für 0 oder 1 . 

Cells(zeilennr, Spaltennr) greift auf eine bestimmte Zelle in der Liste aller Zellen eines Blattes zu.  

With vereinfacht das codeschreiben im Bereich zwischen With Worksheets("Xy") und end with  kann vereinfacht auf Objekte des Blates zugegriffen werden wennman eine Punkt davor setzt.   Worksheets("yx"). cells(1,1)   ist das selbe wie .cells(1,1)
Antworten Top
#16
Vielen Vielen Dank ralf_b,

du hast auf jeden Fall einen Code geschrieben der funktioniert und auch viel kürzer ist als meiner.
Und es klappt auch alles so weit.

Bei mir hat es ja aber auch vorher funktioniert, mit meinem langen und vlt auch unübersichtlichen Code.
Das einzige was ja nicht funktioniert hat war, dass wenn ich im Blatt "Material" das geändert haben möchte, musste ich immer im Visual Basic Fenster das Playzeichen drücken. Und dabei habe ich auch bei "Haus" alles im Code mit Sub Worksheet_Calculate laufen lassen (bei "Haus funktioniert es einwandfrei). Habe dann den Code für "Material" umgeändert so wie du es gemacht hast, aber leider funktioniert es immer noch nicht (Worksheet_Change_Change(ByVal Target As Range).

Gibt es da vlt noch einen kleinen Tipp, wie ich das Sub umbennen kann?

Viele Grüße
ExcelVBAAnfänger
Antworten Top
#17
steht das da so Worksheet_Change_Change(ByVal Target As Range)
oder so Worksheet_Change(ByVal Target As Range)

des Change-Event wird nicht umbenannt. es ist ein Excel internes Makro. Und es muß im Codebereich des Arbeitsblattes, wo es arbeiten soll, eingefügt werden. Also nicht in  einem Modul. 

Was auch immer du anders machst. Ich kann das nicht nachvollziehen.      
Antworten Top
#18
Morgen ralf_b,

es steht schon so da: Worksheet_Change(ByVal Target As Range).

Was ich halt nicht verstehe ist, wenn ich den Code in ein Modul packe, klappt es einwandfrei wenn ich jedes mal die Playtaste drücke,
aber dann wenn ich es automatisch machen will, klappt es halt nicht mehr und mir wird : Sub oder Funktion nicht definiert angezeigt.

Habe das mit dem Farben auf Calculate laufen, klappt auch einwandfrei und das mit dem Hidden auf Change(ByVal Target As Range) laufen.

Wenn ich aber beides auf Change laufen lasse, kommt: Mehrdeutiger Name und wenn ich dann das mit dem Hidden Sub_Change_Change nenne, klappt das zweite Makro gar nicht, aber es wird kein Fehler angezeigt.

Viele Grüße
ExcelVBAAnfänger
Antworten Top
#19
Ich stochere nicht gern im Trüben.  Das du einen Fehler einbaust ist Fakt. Scheinbar verstehst du das Programmkonzept mit den Events nicht.
Ein Event kann nicht in einem Modul laufen.  Vollständig lautet die Zeile  "Private Sub Worksheet_Change(ByVal Target As Range)" im Codebereich des Arbeitsblattes.


Zitat:...Wenn ich aber beides auf Change laufen lasse, kommt: Mehrdeutiger Name ...
was und wie  auch immer du da was "laufen läßt" - ist fehlerbehaftet. Mehrdeutiger Name weil eine Bezeichnung mehrfach vorhanden ist.  



Zitat:... und wenn ich dann das mit dem Hidden Sub_Change_Change nenne,...
wenn du eine systemeigene Sub  umbenennst dann denkt vba erstmal das du eine neue unbekannte  Sub erstellt hast und versucht sie entsprechend abzuarbeiten.  dann wird Target nicht gefüllt weil es eben kein Event mehr ist. 


Da du echte Probleme beim Übernehmen des Beispieles hast, wäre es an der Zeit mal deine Echte Mappe auf den Tisch zu legen.  Evtl. per Mail.
Antworten Top
#20
Guten Morgen ralf_b,

vielen Dank noch mal, aber leider kann ich dir das Original nicht zu kommen lassen, auch nicht als E-Mail.
Ich werde mich am Freitag mit der IT-Abteilung zusammen setzen und hoffentlich wissen die weiter.

Viele grüße
ExcelVBAAnfänger
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste