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
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
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
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
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
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)
Top
#7
Hallo Tina,

(13.04.2021, 08: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
Top


Gehe zu:


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