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.

selbständige Aktualisierung VBA - Zeilen ausblenden
#1
Hallo,

ich habe folgendes Problem:

Mit diesem VBA-Code blende ich unnötige Zeilen aus:

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
Dim xRg As Range
Application.ScreenUpdating = False
For Each xRg In Range("A14:A23")
If xRg.Value = "0" Then
xRg.EntireRow.Hidden = True

Else
xRg.EntireRow.Hidden = False
End If
Next xRg
Application.ScreenUpdating = True
End Sub


Allerdings möchte ich, dass die Zeilen aus- und eingeblendet werden, sobald sich etwas ändert. Also, dass wenn etwas in der Zelle A14 steht, dass die Zeile 14 dann eingeblendet wird. Momentan geht das nur wenn ich in das ungeschützte Tabellenblatt gehe und mit Enter in einer der Zellen "aktiviere".

Kann mir da jemand helfen?
LG Tina
Antworten Top
#2
Hallo Tina,

wie kommt denn etwas in Zelle A14, wenn die Zeile ausgeblendet ist?
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#3
Hallo Tina,

das hier ( Klick mich! ) muss nur geringfügig geändert werden. Wink

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • so.egal
Antworten Top
#4
Hallo,
durch die Verknüpfung mit einem anderen Tabellenblatt.

LG Tina

...mit Worksheet_Calculate?

Ich lerne dazu. 

Nuss geknackt:

Private Sub Worksheet_Calculate()
'Updateby Extendoffice
Dim xRg As Range
Application.ScreenUpdating = False
For Each xRg In Range("A14:A23")
If xRg.Value = "0" Then
xRg.EntireRow.Hidden = True

Else
xRg.EntireRow.Hidden = False
End If
Next xRg
Application.ScreenUpdating = True
End Sub
Antworten Top
#5
Hallo nochmal,

jetzt hab ich das Problem, dass es bei jeder Eingabe läd und so die Bedienung der Eingabetabelle stark verlangsamt. Gibt es eine Möglichkeit, dass das Macro erst anspringt, wenn ich den Tab anwähle und nicht bei jeder Eingabe?

LG Tina
Antworten Top
#6
Hallöchen,

Zitat:durch die Verknüpfung mit einem anderen Tabellenblatt.

Dann musst Du auf die Änderung im anderen Tabellenblatt reagieren, also dort das Change-Ereignis nutzen und im Code dann auf das "EinAusBelndBlatt" verweisen

For Each xRg In Sheets("EinAusBelndBlatt").Range("A14:A23")

usw. (oder With nutzen)
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#7
Hallo Tina,

(13.04.2021, 07:54)so.egal schrieb: Gibt es eine Möglichkeit, dass das Macro erst anspringt, wenn ich den Tab anwähle und nicht bei jeder Eingabe?

dann schiebe den Code in das

Private Sub Worksheet_Activate() - Ereignis.

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • so.egal
Antworten Top


Gehe zu:


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