Microsoft Excel

Herbers Excel/VBA-Archiv

Makro Zeilen ausblenden bei 2 Bedingungen

Betrifft: Makro Zeilen ausblenden bei 2 Bedingungen von: Andreas
Geschrieben am: 03.08.2014 18:06:57

Hallo Excelfreunde,
Ich bin neu hier im Forum und hoffe einer kann mir helfen.
suche Makro zu Folgenden Sachverhalt:
In meiner Tabelle stehen in Spalte F und G ab Zeile 14 bis 333 (wobei nicht alle Zeilen bis 333 belegt sind, Datumswerte zB.
F14 = 03.03.2014 G14 = 05.03.2014
F15 = 10.03.2014 G15 = 19.03.2014
F16 = 10.03.2014 G16 = 20.03.2014
F17 = 24.03.2014 G17 = 30.03.2014
usw. usw.

jetzt möchte in Zelle F11 ein beliebiges Anfangsdatum und in Zelle G11 ein beliebiges Enddatum reinschreiben.
Anhand dieser beiden Dat Werte soll meine Tabelle von F14:G333 durchsucht werden und wenn der Wert in Spalte F Gleich oder Größer des eingetragenen Wertes in Zelle F11 und wenn der Wert in Spalte G Gleich oder Kleiner des eingetragenen Wertes in Zelle G11 in gleicher Zeile ist sollen diese Zeilen eingeblendet bleiben und alle anderen Zeilen sollen ausgeblendet werden.
Dieses Makro möchte ich dann einer Schaltfläche zufügen.
Wo muß ich dann gegebenenfalls dieses Makro einfügen?
Tabellenblatt, Diese Arbeitsmappe oder Modul?
Ich möchte dieses Makro auf verschiedene Tabellenblätter und einem Auswertungstabellenblat anwenden können.

Für Eure Bemühung bedanke ich mich bereits jetzt und hoffe das mir bei dieser Aufgabe einer helfen kann
https://www.herber.de/bbs/user/91857.xlsx

besten Dank Andreas

  

Betrifft: AW: Makro Zeilen ausblenden bei 2 Bedingungen von: Hajo_Zi
Geschrieben am: 03.08.2014 18:08:57

Hallo Andreas,

warum nicht Autofilter?

GrußformelHomepage


  

Betrifft: AW: Makro Zeilen ausblenden bei 2 Bedingungen von: Andreas
Geschrieben am: 03.08.2014 18:13:15

Die Datei sollen auch andere Kollegen mit benutzen und da hätte ich das gern per Makro mit einer Schaltfläche

Danke Andreas


  

Betrifft: AW: Makro Zeilen ausblenden bei 2 Bedingungen von: Hajo_Zi
Geschrieben am: 03.08.2014 18:15:05

Hallo Andreas,

Du kennst Duich alsdo mit VBA aus, warum sonst soll es mit VBA gelöst werden.
http://excel-inn.de/dateien/vba_beispiele/autofilterbereich_dynamische_anpassung.zip

Gruß Hajo


  

Betrifft: AW: Makro Zeilen ausblenden bei 2 Bedingungen von: Andreas
Geschrieben am: 03.08.2014 18:34:11

Hallo Hajo,
Ich bin gerade dabei mir VBA Kenntnisse anzueignen Ich habe mir das Buch gekauft VBA mit Excel von Christian Friedrich.
Ich habe mir auch Deine Datei angeschaut da geht das aber mit dem Autofilter nicht wie ich das haben möchte.
Es sollen eben per Schaltfläche alle Zeilen eingeblendet bleiben die in der gleichen Zeile die Bedingung erfüllen
Also wenn zB. in F14 03.03.2014 steht und in G14 10.03.2014
dann soll laut Bedingung in Zelle F11 zB.01.03.2014 und in Zelle G11 zB. 30.03.2014 alle Zeilen eingeblendet bleiben die diese Bedingung erfüllen. Alle anderen Zeilen sollen ausgeblendet werden.

Ich habe VAB nein angegeben weil ich eben noch nicht gut genug bin.
Sorry
Gruß Andreas


  

Betrifft: AW: Makro Zeilen ausblenden bei 2 Bedingungen von: Andreas
Geschrieben am: 03.08.2014 20:15:31

Hallo Excelfreunde,

dieses Makro habe ich bereits um Zeilen auszublenden wenn eine Bedingung in Spalte erfüllt ist in diesem Fall steht In der Zelle eine 1

Sub DatenAusblenden()
Application.ScreenUpdating = False
For i = 14 To Cells(Rows.Count, 55).End(xlUp).Row  'hier beginnt das Makro ab Zeile 14 den  _
Befehl auszuführen
  If Cells(i, 55).Value = 1 Then  'wenn in Spalte C Wert 1 steht wird Zeile ausgeblendet
  'If Cells(i, 3).Value = 2 Then  'wenn in Spalte C Wert 2 steht wird Zeile ausgeblendet
  'If Cells(i, 53).Value < 3 Then
    Rows(i).EntireRow.Hidden = True
  End If
Next i
Application.ScreenUpdating = True
End Sub
Wie gesagt ich möchte das aber jetzt so haben wie zuvor schon beschrieben.
Wäre für eine Hilfe wirklich dankbar.
Ich denke in der Datei die ich hochgeladen habe kann mein Anliegen hoffentlich nachvollzogen werden.

Gruß Andreas


  

Betrifft: AW: Makro Zeilen ausblenden bei 2 Bedingungen von: Robert
Geschrieben am: 04.08.2014 08:39:06

Hallo Andreas,

wenn ich das richtig verstehe willst du dein Makro nur so modifizieren, dass nur eine von 3 Bedingungen erfüllt sein muss um die Zeile auszublenden.

Das ginge z.B. so:

Sub DatenAusblenden()
Application.ScreenUpdating = False
For i = 14 To Cells(Rows.Count, 55).End(xlUp).Row  'hier beginnt das Makro ab Zeile 14 den  _
Befehl auszuführen
  If Cells(i, 55).Value = 1 OR Cells(i, 3).Value = 2 OR Cells(i, 53).Value < 3  _
Then
    Rows(i).EntireRow.Hidden = True
  End If
Next i
Application.ScreenUpdating = True
End Sub
Der Code Springt an, wenn eine der Drei Bedingungen zutrifft und blendet die Zeile dann aus.
Sollen alle drei Bedingungen erfüllt sein um die Zeile auszublenden, statt OR entsprechend mit AND arbeiten.

Viele Grüße
Robert


  

Betrifft: AW: Makro Zeilen ausblenden bei 2 Bedingungen von: Andreas
Geschrieben am: 04.08.2014 11:19:12

Hallo Robert,
das ist es nicht was ich suche

wie bereits in meiner 1.Frage Datei hängt mit an, möchte ich das das Makro mir folgende Zeilen eingeblendet lassen soll wenn alle beiden Bedingungen erfüllt sind.
1. in Zelle G11 soll zB. das Datum 01.03.2014 geschrieben werden
2. in Zelle F11 soll zB. da Datum 30.03.2014 geschrieben werden

Jetzt soll anhand der beiden Bedingungen Spalte G14:G333 und F14:F333 durchlaufen werden und wenn die Bedingungen aus Zelle G11 in der Spalte G14:G333 das Datum gleich oder größer ausgibt und in der dazugehörigen Zeile in Spalte F14:F333 das Datum gleich oder kleiner anhand der Zelle F11 ist soll die entsprechende Zeile eingeblendet bleiben und alle anderen Zeilen welche der Bedingung nicht entsprechen oder leer sind ausgblendet werden

zB:
Bedingung eintragen in Zelle G11 Datum "01.03.2014"
Bedingung eintragen in Zelle F11 Datum "30.03.2014"

in Zeile Spalte G14 steht Datum "04.03.2014" in Spalte F14 steht Datum "10.03.2014 Zeile soll eingeblendet bleiben
in Zeile Spalte G15 steht Datum "10.03.2014" in Spalte F15 steht Datum "28.03.2014 Zeile soll ebenfalls eingeblendet bleiben
in Zeile Spalte G16 steht Datum "02.04.2014 in Spalte F16 steht Datum "15.04.2014 Zeile soll jetzt ausgeblendet werden.

Ich will also erreichen wenn ich auf eine Schaltfläche klicke das mir dann noch die Mitarbeiter angezeigt werden welche die Bedingungen erfüllen all andere Zeilen sollen ausgblendet werden.

Ich hoffe das ich das jetzt verständlich erklärt habe.
kannst Du, könnt Ihr mir da helfen?

Gruß Andreas


  

Betrifft: AW: Makro Zeilen ausblenden bei 2 Bedingungen von: Andreas
Geschrieben am: 04.08.2014 12:24:53

Hallo Robert,
das ist es nicht was ich suche

wie bereits in meiner 1.Frage Datei hängt mit an, möchte ich das das Makro mir folgende Zeilen eingeblendet lassen soll wenn alle beiden Bedingungen erfüllt sind.
1. in Zelle G11 soll zB. das Datum 01.03.2014 geschrieben werden
2. in Zelle F11 soll zB. da Datum 30.03.2014 geschrieben werden

Jetzt soll anhand der beiden Bedingungen Spalte G14:G333 und F14:F333 durchlaufen werden und wenn die Bedingungen aus Zelle G11 in der Spalte G14:G333 das Datum gleich oder größer ausgibt und in der dazugehörigen Zeile in Spalte F14:F333 das Datum gleich oder kleiner anhand der Zelle F11 ist soll die entsprechende Zeile eingeblendet bleiben und alle anderen Zeilen welche der Bedingung nicht entsprechen oder leer sind ausgblendet werden

zB:
Bedingung eintragen in Zelle G11 Datum "01.03.2014"
Bedingung eintragen in Zelle F11 Datum "30.03.2014"

in Zeile Spalte G14 steht Datum "04.03.2014" in Spalte F14 steht Datum "10.03.2014 Zeile soll eingeblendet bleiben
in Zeile Spalte G15 steht Datum "10.03.2014" in Spalte F15 steht Datum "28.03.2014 Zeile soll ebenfalls eingeblendet bleiben
in Zeile Spalte G16 steht Datum "02.04.2014 in Spalte F16 steht Datum "15.04.2014 Zeile soll jetzt ausgeblendet werden.

Ich will also erreichen wenn ich auf eine Schaltfläche klicke das mir dann noch die Mitarbeiter angezeigt werden welche die Bedingungen erfüllen all andere Zeilen sollen ausgblendet werden.

Ich hoffe das ich das jetzt verständlich erklärt habe.
kannst Du, könnt Ihr mir da helfen?
hatte vergessen den Beitrag noch als offen zu vermerken Sorry

Gruß Andreas


  

Betrifft: AW: Makro Zeilen ausblenden bei 2 Bedingungen von: Robert
Geschrieben am: 04.08.2014 13:21:16

Hallo Andreas,

Jetzt habe ich verstanden.
Du hast die Zellen F11 und G11, in denen du Start und Ende eines Zeitraumes angibst.
Nun sollen alle Zellen, deren Daten in F respektive G außerhalb des angegebenen Zeitraums liegen, ausgeblendet werden, und die, bei denen beide Daten innerhalb des Zeitraumes Liegen sollen eingeblendet bleiben.

So weit weg war mein Makro dann aber nicht :)

Versuche er dieses:

Sub DatenAusblenden()
Application.ScreenUpdating = False
Dim i As Integer
Dim VonSpalte As Integer
Dim BisSpalte As Integer
Dim StartDatum As Range
Dim EndDatum As Range

StartDatum = Range("F11")
EndDatum = Range("G11")

VonSpalte = 1 'Spalte "Zeitraum Von" als Nummer
BisSpalte = 1 'Spalte "Zeitraum Bis" als Nummer

For i = 14 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
    If Cells(i, VonSpalte) <= StartDatum Or Cells(i, BisSpalte) >= EndDatum Then
        Rows(i).EntireRow.Hidden = True
    Else
        Rows(i).EntireRow.Hidden = False
    End If
Next i
Application.ScreenUpdating = True
End Sub
Variablen entsprechend bearbeiten.

Viele Grüße
Robert


  

Betrifft: AW: Makro Zeilen ausblenden bei 2 Bedingungen von: Andreas
Geschrieben am: 04.08.2014 14:05:38

Hallo Robert,
ja Du hast richtig verstanden was ich will

habe das Makro in meiner Datei in das Tabellenblatt eingefügt das ich filtern möchte.
jetzt kommt aber wenn ich das Makro ausführe die Fehlermeldung "Objektvariable oder With-Blockvariable nicht festgelegt"
in der Excel Hilfe konnte ich aber mit der Erklärung nichts anfangen
"With....End With"

habe vonSpalte = 1 auf vonSpalte = 6 geändert für Stalte "F" und
habe bisSpalte = 1 auf bisSpalte = 7 geändert für Spalte "G"

funktioniert aber bei mir nicht
wie muß ich also nach Deiner Meinung nach die Variablen anpassen?

brauche unbedingt noch Hilfe

Gruß Andreas


  

Betrifft: AW: Makro Zeilen ausblenden bei 2 Bedingungen von: Robert
Geschrieben am: 04.08.2014 14:13:56

Hallo Andreas,

da hab ich wohl einen Knick in der Logik bei meinen Rangevariablen.
so läufts durch, dann musst du eben die Zellen mit Start bzw. Enddatum im Code selbst und nicht komfortabel oben ändern.:

Option Explicit

Sub DatenAusblenden()
Application.ScreenUpdating = False
Dim i As Integer
Dim VonSpalte As Integer
Dim BisSpalte As Integer
Dim StartDatum As Range
Dim EndDatum As Range

VonSpalte = 1 'Spalte "Zeitraum Von" als Nummer
BisSpalte = 1 'Spalte "Zeitraum Bis" als Nummer

For i = 14 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
    If Cells(i, VonSpalte) <= Range("F11") Or Cells(i, BisSpalte) >= Range("G11") Then 'erst  _
Startdatum, dann Enddatum
        Rows(i).EntireRow.Hidden = True
    Else
        Rows(i).EntireRow.Hidden = False
    End If
Next i
Application.ScreenUpdating = True
End Sub
Viele Grüße
Robert


  

Betrifft: AW: Makro Zeilen ausblenden bei 2 Bedingungen von: Andreas
Geschrieben am: 04.08.2014 14:45:40

Hallo Robert,
ja so funktioniert das besten
genau so habe ich mir das vorgestellt.

wie ich beim testen festgestellt habe bleiben die Zeilen mit erfüllter Bedingung korrekt eingeblendet.

wie kann ich es jetzt aber noch hinkriegen das auch noch zusätzlich die Zeilen eingeblendet bleiben wenn in Spalte F noch kein Enddatum steht, sondern der Text "ohne" aus einer Formel

Soll heißen das ich in Spalte G ein Beginn Datum einfüge und in Spalte F dann ein Enddatum einfüge.
so zB.
Zeile G15 das Datum 10.03.2014 F15 steht dann noch aus einer Formel "ohne" diese Zeile soll dann ebenfalls noch mit eingeblendet sein

kann man das irgendwie noch mit in das Makro einbauen?

brauche nochmals Hilfe dazu
Gruß Andreas


  

Betrifft: AW: Makro Zeilen ausblenden bei 2 Bedingungen von: Robert
Geschrieben am: 04.08.2014 14:19:02

Hallo Andreas,

Flüchtigkeitsfehler:

Statt

StartDatum = Range("F11")
 EndDatum = Range("G11")

Schreibe:
Set StartDatum = Range("F11")
Set EndDatum = Range("G11")
viele Grüße
Robert


  

Betrifft: AW: Makro Zeilen ausblenden bei 2 Bedingungen von: Andreas
Geschrieben am: 04.08.2014 15:07:53

Hallo Robert, Hallo Exelfreunde

habe das Makro von Robert jetzt nochmals angepasst (bis dahin erst mal vielen Dank an Robert für die gute Unterstützung)

Sub DatenAusblenden()
Application.ScreenUpdating = False
Dim i As Integer
Dim VonSpalte As Integer
Dim BisSpalte As Integer
Dim StartDatum As Range
Dim EndDatum As Range

Set StartDatum = Range("F11")
Set EndDatum = Range("G11")

VonSpalte = 6 'Spalte "Zeitraum Von" als Nummer
BisSpalte = 7 'Spalte "Zeitraum Bis" als Nummer

For i = 14 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
    If Cells(i, VonSpalte) <= StartDatum Or Cells(i, BisSpalte) >= EndDatum Or Cells(i,  _
BisSpalte) = "ohne" Then
        Rows(i).EntireRow.Hidden = True
    Else
        Rows(i).EntireRow.Hidden = False
    End If
Next i
Application.ScreenUpdating = True
End Sub

und an die If Anweisung noch eine Oder Bedingung eingefügt
Or Cells(i, BisSpalte) = "ohne" Then

diese Anweisung funktioniert aber nicht. Was ist da noch falsch oder muß geändert werden?

brauche nochmal Hilfe dazu

Gruß Andreas


  

Betrifft: AW: Makro Zeilen ausblenden bei 2 Bedingungen von: Robert
Geschrieben am: 04.08.2014 15:37:09

Hallo Andreas,

Sollte funktionieren.
Was heißt denn "funktioniert nicht"? Gibt es eine Fehlermeldung? oder einfach nur nicht das gewünschte Ergebnis? Logikfehler?

Dein Code oben sagt:
Wenn in der Spalte Bis "ohne" steht, blende die Zeile aus, ansonsten lasse sie eingeblendet

Viele Grüße
Robert


  

Betrifft: AW: Makro Zeilen ausblenden bei 2 Bedingungen von: Andreas
Geschrieben am: 04.08.2014 15:43:22

Hallo Robert,

ja es ist einfach nur nicht das gewünschte Ergebnis? Logikfehler?

Dein Code oben sagt:
Wenn in der Spalte Bis "ohne" steht, blende die Zeile aus, ansonsten lasse sie eingeblendet

es soll gerade umgekehrt sein
wenn in der Spalte Bis "ohne" steht soll sie auch eingeblendet bleiben

Viele Grüße Andreas


  

Betrifft: AW: Makro Zeilen ausblenden bei 2 Bedingungen von: Robert
Geschrieben am: 04.08.2014 15:59:52

Hallo Andreas,

dachte ich mir fast, Logikfehler...
Bisher funktioniert der Code, in dem er sagt, wenn die Daten Außerhalb der Range liegen, dann verstecke die Zeilen.

Um die zusätzliche bedingung einzubauen muss man die Logik umkehren. Das bedeutet, wenn die Daten innerhalb liegen, lasse sie eingeblendet, ansonsten blende aus.

Sieht dann so aus: (die Größer kleiner Zeichen sind jetzt andersrum und die Aktionen mit .hidden sind vertauscht). Ich nehme an wenn das Startdatum nicht passt, soll der Bereich trotz "ohne" nicht angezeigt werden (deswegen die Klammer um die OR Bedingung)?

Option Explicit

Sub DatenAusblenden()
 Application.ScreenUpdating = False
 Dim i As Integer
 Dim VonSpalte As Integer
 Dim BisSpalte As Integer
 Dim StartDatum As Range
 Dim EndDatum As Range
 
 Set StartDatum = Range("F11")
 Set EndDatum = Range("G11")
 
 VonSpalte = 6 'Spalte "Zeitraum Von" als Nummer
 BisSpalte = 7 'Spalte "Zeitraum Bis" als Nummer
 
 For i = 14 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
     If Cells(i, VonSpalte) >= StartDatum And (Cells(i, BisSpalte) <= EndDatum Or Cells(i, _
 BisSpalte) = "ohne") Then
         Rows(i).EntireRow.Hidden = False
     Else
         Rows(i).EntireRow.Hidden = True
     End If
 Next i
 Application.ScreenUpdating = True
 End Sub

ungetestet, sollte aber klappen.

Viele Grüße
Robert


  

Betrifft: AW: Makro Zeilen ausblenden bei 2 Bedingungen von: Andreas
Geschrieben am: 04.08.2014 16:13:51

Hallo Robert,

ja das war es was ich wollte
klappt bestens
vielen herzlichen Dank Du hast mir sehr geholfen
Damit ist mein Anliegen gelöst

liebe Grüße vielleicht bis bald
Andreas


 

Beiträge aus den Excel-Beispielen zum Thema "Makro Zeilen ausblenden bei 2 Bedingungen"