Anzeige
Archiv - Navigation
1868to1872
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

2 Module aufrufen behindern sich selbst

2 Module aufrufen behindern sich selbst
04.02.2022 16:13:23
Icefish232
Hallo,
ich habe ein paar Module geschrieben, die alleine auch funktionieren, wenn sie aber in einem Modul über "call" hintereinander abgerufen werden, dann funktioniert es nicht. Explizit betrifft es die Module 2 und 3, die abgerufen werden sollen. Die Bedingungen von 2 sollen bei 3 behalten werden.
Insgesamt sieht das übergeordnete Modul so aus:

Sub Button2_Click()
Call ZeilenhoeheAnpassen
Call nichtbenötigteTKausblendenaufBriefNiveauG
Call TeilkompetenzenAusblenden
Call leereBriefeAusblenden
Call BriefenachNiveauG
End Sub
Nr2: Es sollen Zeilen ausgeblendet werden, wenn eine Bedingung in Spalte C nicht erfüllt ist:

Sub nichtbenötigteTKausblendenaufBriefNiveauG()
Dim xRg As Range
ActiveSheet.Unprotect "Schiller"
Application.ScreenUpdating = False
For Each xRg In Range("C14:C23")
If xRg.Value = "---" Then
xRg.EntireRow.Hidden = True
Else
xRg.EntireRow.Hidden = False
End If
Next xRg
Application.ScreenUpdating = True
ActiveSheet.Protect "Schiller"
End Sub
und zweitens sollen dann noch Spalten ausgeblendet werden, wenn eine Bedingung in einer anderen Spalte nicht erfüllt werden.

Sub TeilkompetenzenAusblenden()
Dim xRg As Range
ActiveSheet.Unprotect "Schiller"
Application.ScreenUpdating = False
For Each xRg In Range("A14:A23")
If xRg.Value Like "*Teilkompetenz*" Then
xRg.EntireRow.Hidden = True
Else
xRg.EntireRow.Hidden = False
End If
Next xRg
Application.ScreenUpdating = True
ActiveSheet.Protect "Schiller"
End Sub
Über eine Hilfe freue ich mich :)
Herzlichen Dank

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 2 Module aufrufen behindern sich selbst
04.02.2022 16:19:50
ralf_b
beide zusammenfassen

For Each xRg In Range("A14:A23")
If xRg.Value Like "*Teilkompetenz*" or xRg.offset(,3).Value = "---" Then
xRg.EntireRow.Hidden = True
.....

AW: 2 Module aufrufen behindern sich selbst
04.02.2022 20:26:57
Icefish232
Ok, sowas habe ich noch nie zusammengefasst.
Mein Code sieht nun so aus:

Sub nichtbenötigteTKausblendenaufBriefNiveauG()
Dim xRg As Range
ActiveSheet.Unprotect "Schiller"
Application.ScreenUpdating = False
For Each xRg In Range("A14:A23")
If xRg.Value Like "*Teilkompetenz*" Or xRg.Offset(, 3).Value = "---" Then
xRg.EntireRow.Hidden = True
Else
xRg.EntireRow.Hidden = False
End If
Next xRg
Application.ScreenUpdating = True
ActiveSheet.Protect "Schiller"
End Sub
Die erste Bedingung (ganze Spalten, in denen in (A14:A23) das Wort "Teilkompetenz" vorkommt, werden ausgeblendet und somit die 1. Bedingung erfüllt, die zweite allerdings nicht. Die Zeilen werden nicht ausgeblendet, obwohl in Spalte C "---" Einträge vorhanden sind. Was genau beschreibt das (,3)?
Anzeige
AW: 2 Module aufrufen behindern sich selbst
04.02.2022 20:41:18
Icefish232

Sub nichtbenötigteTKausblendenaufBriefNiveauG()
Dim xRg As Range
ActiveSheet.Unprotect "Schiller"
Application.ScreenUpdating = False
For Each xRg In Range("A14:C23")
If xRg.Value Like "*Teilkompetenz*" Or xRg.Value Like "---" Then
xRg.EntireRow.Hidden = True
Else
xRg.EntireRow.Hidden = False
End If
Next xRg
Application.ScreenUpdating = True
ActiveSheet.Protect "Schiller"
End Sub
mit dieser Lösung (Range anzupassen) wird nur die 2. Bedingung erfüllt, also Zeilen ausgeblendet, in denen in Spalte C "---" vorkommt, nicht aber die Zeilen, die in Spalte A "*Teilkompetenz*" stehen haben.
Danke für die Hilfe in jedem Fall!
Anzeige
AW: 2 Module aufrufen behindern sich selbst
04.02.2022 22:11:55
ralf_b
hallo,
offset(versatz zeilenanzahl,versatz spaltenanzahl) verschiebt den betrachteten Bereich. Das hast du sicher schon selbst recherchiert. Ist ja kein Ding das in ner Suchmaschine zu finden. Deine for-Schleife durchläuft die Spalte A und schaut dabei auch in die Zelle vom Spalte C. Jetzt wo ich das schreibe, fällt mir ein das du aus der 3 mal eine 2 machen könntest. A B(1) C(2) = wäre A.offset(, 2)
gern geschehen.
AW: 2 Module aufrufen behindern sich selbst
04.02.2022 22:41:26
Icefish232
vielen Dank!
Es lag an der 2 statt der 3! Super Hilfe, Problem gelöst und wieder was dazu gelernt!
Danke, Ralf!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige