Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1680to1684
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
VBA für Zeile ausblenden
24.03.2019 17:19:15
Frank
Hallo Zusammen,
ich brauche einen VBA, der mir, wenn in Spalte J ein "j" steht, die Zeile entsprechend ausblendet.
Ich kenne die Möglichkeit dies über den Filter zu regeln, was bei einer Liste keine Mühe macht. Ich habe aber täglich 30 Listen, die in bestimmten Bereichen Schreibgeschützt sind und in denen sich auch nach bestimmten Regeln auch Zeilen automatisch sperren. Und das macht Mühe wenn ich eine Zeile ausblenden will.
Sonnigen Gruß
Frank

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA für Zeile ausblenden
24.03.2019 18:30:47
Sepp
Hallo Frank,
der Code bearbeitet immer das aktive Tabellenblatt!
Das Passwort musst du natürlich anpassen.
Modul Modul2
Option Explicit 
 
Sub hideLines() 
  Dim rng As Range, varValues As Variant, lngIndex As Long, lngLast As Long 
 
On Error GoTo ErrorHandler 
  Application.ScreenUpdating = False 
  With ActiveSheet 
    .Unprotect "password" 
    lngLast = Application.Max(2, .Cells(.Rows.Count, 10).End(xlUp).Row) 
    If lngLast > 2 Then 
      varValues = .Range("J2:J" & lngLast) 
    Else 
      Redim varValues(1 To 1, 1 To 1): varValues(1, 1) = .Range("J2") 
    End If 
    .Range("J2:J" & lngLast).EntireRow.Hidden = False 
    For lngIndex = 1 To Ubound(varValues, 1) 
      If LCase(Trim(varValues(lngIndex, 1))) = "j" Then 
        If rng Is Nothing Then 
          Set rng = .Cells(lngIndex + 1, 1) 
        Else 
          Set rng = Union(rng, .Cells(lngIndex + 1, 1)) 
        End If 
      End If 
    Next 
    If Not rng Is Nothing Then rng.EntireRow.Hidden = True 
    .Protect "password" 
  End With 
   
ErrorHandler: 
  Application.ScreenUpdating = True 
  Set rng = Nothing 
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


 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: VBA für Zeile ausblenden
24.03.2019 19:45:22
Frank
Hallo Sepp,
vielen Dank für die schnelle Antwort, dein Code funktioniert, in dem ich über "Entwicklertools" ... "Sub/UserForm ausführen" gehe, dann werden die Zeilen ausgeblendet.
Ich glaube ich habe in meinem Text wesentliche Wörter vergessen, der Code soll automatisch ausgeführt werden, wenn die Datei geöffnet wird. --Sorry--
AW: VBA für Zeile ausblenden
24.03.2019 19:55:01
cysu11
Hallo Frank,
du musst den Code unter "DieseArbeitsmappe" kopieren und
"Sub hideLines()"
mit
"Private Sub Workbook_Open()"
tauschen.
LG
Alexandra
AW: VBA für Zeile ausblenden
24.03.2019 20:11:19
Frank
Hallo Alexandra,
vielen lieben Dank für den Hinweis, es funktioniert.
allerdings nur, wenn 'Kalender' ...
24.03.2019 20:30:31
Sepp
... das aktive Blatt ist!
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: VBA für Zeile ausblenden
24.03.2019 19:58:17
Sepp
Hallo Frank,
soll der Code in allen Blättern laufen? Habe alle Blätter das selbe Passwort?
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: VBA für Zeile ausblenden
24.03.2019 20:16:21
Frank
Hallo Sepp,
es wird nur immer für das eine Tabellenblatt "Kalender" mit dem Passwort "dragon" benötigt.
AW: VBA für Zeile ausblenden
24.03.2019 20:29:32
Sepp
Hallo Frank,
in das Modul 'DieseArbeitsmappe'.
Microsoft Excel Objekt DieseArbeitsmappe
Option Explicit 
 
Private Sub Workbook_Open() 
  Dim rng As Range, varValues As Variant, lngIndex As Long, lngLast As Long 
 
  Const PASSWORD As String = "dragon" 
   
  On Error GoTo ErrorHandler 
  Application.ScreenUpdating = False 
    With Me.Worksheets("Kalender") 
      .Unprotect PASSWORD 
      .Range("J:J").EntireRow.Hidden = False 
      lngLast = Application.Max(2, .Cells(.Rows.Count, 10).End(xlUp).Row) 
      If lngLast > 2 Then 
        varValues = .Range("J2:J" & lngLast) 
      Else 
        Redim varValues(1 To 1, 1 To 1): varValues(1, 1) = .Range("J2") 
      End If 
      For lngIndex = 1 To Ubound(varValues, 1) 
        If LCase(Trim(varValues(lngIndex, 1))) = "j" Then 
          If rng Is Nothing Then 
            Set rng = .Cells(lngIndex + 1, 1) 
          Else 
            Set rng = Union(rng, .Cells(lngIndex + 1, 1)) 
          End If 
        End If 
      Next 
      If Not rng Is Nothing Then rng.EntireRow.Hidden = True 
      .Protect PASSWORD 
    End With 
   
ErrorHandler: 
  Application.ScreenUpdating = True 
  Set rng = Nothing 
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


 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: VBA für Zeile ausblenden
24.03.2019 22:19:23
Frank
Super, vielen Dank das funktioniert.

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige