brotherkeeper
Goto Top

Springe zum nächstem abcdef Begriff...

ich habe eine spalte in der die werte 1, darunter 0, darunter 2, darunter 1 habe.
in etwa so:
1

2
1

wie kann ich per button und vba nun in einer festgelegten spalte einen festgelegten begriff suchen und in den fokus holen? wie kann ich das ganze mit einem 2 button genauso machen nur auf den davorigen treffer?

Ergebniss soll sein, daß ich mit klick auf button 1 auf die erste zelle in der spalte springe mit dem wert 1, beim erneuten klicken auf die nächste zelle in der gleichen spalte mit dem wert eins und beim klicken auf den button 2 wieder zurück auf den ersten...? Hierbei handelt es sich um eine festgelete spalte und um festgelete werte... Gerne aber auch einen Lösung bei der der eintrag aus eine zelle als referenz genommen und anschließend gesucht wird...

verständlich?

eventuell kann mir jemand aber auch sagen wie ich nur zeilen einer befüllten tabelle anzeigen kann die einen bestimmten wert in der spalte (zB) 12... Quasi sowas wie per makro einen filter setzen...

HILFE!?
Kommentar vom Moderator Biber am 03.12.2009 um 20:21:59 Uhr
HILFE!?
Wenn du das nächste Mal diese Signatur verwendest --> ist der Beitrag Asche.

Content-ID: 130831

Url: https://administrator.de/contentid/130831

Ausgedruckt am: 26.11.2024 um 13:11 Uhr

76109
76109 03.12.2009 um 18:54:17 Uhr
Goto Top
Hallo brotherkeeper!

Du kannst das mal testen, ob das in etwa Deinen Vorstellungen entspricht?

Du brauchst 2 Buttons <Filter Ein> und <Filter Aus>. Mit <Filter Ein> wird ein Suchbegriff abgefragt und wenn gefunden gefiltert.

Mit <Filter Aus> wird der Filter-Anzeige logischer Weise aufgehoben. Das bedeutet aber nicht, dass nach jedem Suchbegriff der Filter ausgeschaltet werden muss. D.h. es können fortlaufend Suchabfragen mit <Filter Ein> durchgeführt werden.

Option Explicit

Const RngSearch = "H7:H40"  'Such- und Filterbereich (H7 = Überschrift)  

Private Sub FilteOn_Click()
    Dim Search As String, c As Range
    
    Search = InputBox("Bitte Suchbegriff eingeben:", "Suchen")  
    
    If Search = "" Then Exit Sub  
    
    ActiveSheet.AutoFilterMode = False
    
    Set c = ActiveSheet.Range(RngSearch).Find(Search, LookIn:=xlValues, LookAt:=xlWhole)
    
    If c Is Nothing Then MsgBox "Suchbegriff nicht gefunden!", vbInformation, "Suchen":  Exit Sub  
    
    c.Select
    
    Range(RngSearch).AutoFilter Field:=1, Criteria1:=Search
End Sub

Private Sub FilterOff_Click()
    ActiveSheet.AutoFilterMode = False
End Sub

Die Konstante für den Such- und Filterbereich inklusive Überschrift entsprechend anpassen.

Gruß Dieter
brotherkeeper
brotherkeeper 03.12.2009 um 19:12:17 Uhr
Goto Top
Sowas änliches... Nur will ich den zu suchenden begriff festlegen... Geht das?
76109
76109 03.12.2009 um 19:56:50 Uhr
Goto Top
Keine Ahnung was Du jetzt meinstface-sad Wie, wer, wo und was festlegen???????
brotherkeeper
brotherkeeper 04.12.2009 um 09:15:21 Uhr
Goto Top
Mit <Filter Ein> wird ein Suchbegriff abgefragt und wenn gefunden gefiltert

ich würde gerne statt der abfrage, das zu suchende wort/bergriff im makro vorgeben...
76109
76109 04.12.2009 um 10:41:41 Uhr
Goto Top
Hallo brotherkeeper!

Das ergibt für mich zwar keinen Sinn, aber wenn's nur ein Begriff sein soll, dann in etwa so:
Const RngSearch = "H7:H40"  'Such- und Filterbereich (H7 = Überschrift)  

Private Sub FilteOn_Click()
    Dim Search As String, c As Range
    
    Search = "abcdefgh"  
    
    ActiveSheet.AutoFilterMode = False
    
    Set c = ActiveSheet.Range(RngSearch).Find(Search, LookIn:=xlValues, LookAt:=xlWhole)
    
    If Not c Is Nothing Then
        c.Select:  Range(RngSearch).AutoFilter Field:=1, Criteria1:=Search
   End If
End Sub

Private Sub FilterOff_Click()
    ActiveSheet.AutoFilterMode = False
End Sub

Gruß Dieter
brotherkeeper
brotherkeeper 04.12.2009 um 13:06:02 Uhr
Goto Top
ok...

ich kriege das nicht zum laufen...

ich habe einen command.button eingebaut, habe diesen mit dem von dir beschriebenen module verknüft und klicke mir eine wolf... was mache ich falsch?

falscher alarm...

danke dir

PS... wie kann ich den such begriff kombinieren mit einem 2ten wert...

nach dem motto: wenn in A ein 1 und in C der gleichen zeile ein 5 dann zeigen...

PS2: ich habe nun folgendes auch eingetragen um beide möglichkeiten zu nutzen un bekomme leider eine fehlermeldung bei
Set c = ActiveSheet.Range(RngSearch).Find(Search, LookIn:=xlValues, LookAt:=xlWhole)

komplett:
Sub FilterOff_Click()
ActiveSheet.AutoFilterMode = False
End Sub

Option Explicit

Const RngSearch = "D15:R10000" 'Such- und Filterbereich (D14 = Überschrift)

Sub SucheParameter()
Dim Search As String, c As Range

Search = InputBox("Bitte Suchbegriff eingeben:", "Suchen")

If Search = "" Then Exit Sub

ActiveSheet.AutoFilterMode = False

Set c = ActiveSheet.Range(RngSearch).Find(Search, LookIn:=xlValues, LookAt:=xlWhole)

If c Is Nothing Then MsgBox "Suchbegriff nicht gefunden!", vbInformation, "Suchen": Exit Sub

c.Select

Range(RngSearch).AutoFilter Field:=1, Criteria1:=Search
End Sub

wo genau bin ich zu blöd? das sind die vor- und nachteile der autodidakten...
brotherkeeper
brotherkeeper 04.12.2009 um 13:40:59 Uhr
Goto Top
und noch was (wenn ich schon einmal in fahrt bin...

face-smile))

das habe ich (ganz blauäugig wie ich bin) versucht:

Const RngSearch = "N14:N10000" 'Such- und Filterbereich (D14 = Überschrift)
Sub SucheHück()
Dim Search As String, c As Range

Search = heute

ActiveSheet.AutoFilterMode = False

Set c = ActiveSheet.Range(RngSearch).Find(Search, LookIn:=xlValues, LookAt:=xlWhole)

If Not c Is Nothing Then
c.Select: Range(RngSearch).AutoFilter Field:=1, Criteria1:=Search
End If
End Sub

jeden nicht-lai ist klar: der fehler liegt hier:
Search = heute

was ich möchte ist glaube ich auch klar (-> zeige alles von/für heute)...

mein problem: wie mach ich das?

eure bzw dieter-lösung:
brotherkeeper
brotherkeeper 04.12.2009 um 13:45:30 Uhr
Goto Top
und wie würde der befehl aussehen:
1) die nächste leere zelle in einer spalte zu finden und 3 zellen nach oben zu springen und den cursor in den fokus holen?

und

2) wie kann ich per code die "normal" markierte zelle wieder in den fokus holen (wenn ich zum beispiel über den scrollbalken mich in der tabelle umgeschaut habe)?

:-P
76109
76109 05.12.2009 um 11:09:34 Uhr
Goto Top
Zitat von @brotherkeeper:
PS... wie kann ich den such begriff kombinieren mit einem 2ten wert...
nach dem motto: wenn in A ein 1 und in C der gleichen zeile ein 5 dann zeigen...
Uff, sind die Spalten A und C konstant? D.h immer in Spalte A suchen und Wert in Spalte C vergleichen?
brotherkeeper
brotherkeeper 05.12.2009 um 14:46:48 Uhr
Goto Top
Ja, sind konstant...

@Biber: war deiner meinung nach etwas falsch an "HILFE?!" oder was meinst du mit deinem kommentar?
76109
76109 05.12.2009 um 15:15:09 Uhr
Goto Top
Hallo brotherkeeper!

Hier nur als Filterfunktion mit 2 Suchkriterien.
Const ColCriteria1 = 1          'Spalte A  
Const ColCriteria2 = 3          'Spalte C  

Const RngFilter = "A14:F47"     'Filterbereich, 1.Zeile (14) = Überschrift  

Const Msg1 = "Bitte die Suchbegriffe im Format [ab][ab;ab] eingeben:"  

Private Sub FilteOn_Click()
    Dim Text As Variant
    
    ActiveSheet.AutoFilterMode = False
    
    Text = Split(InputBox(Msg1, "Filter setzen"), ";")  
    
    If UBound(Text) < 0 Then Exit Sub
    
    Cells(Range(RngFilter).Row, Range(RngFilter).Column).Select
    
    Range(RngFilter).AutoFilter Field:=ColCriteria1, Criteria1:=Text(0)
    
    If UBound(Text) = 1 Then
        Range(RngFilter).AutoFilter Field:=ColCriteria2, Criteria1:=Text(1)
    End If
End Sub

Private Sub FilterOff_Click()
    ActiveSheet.AutoFilterMode = False
End Sub

Du kannst also 2 Suchbegriffe durch Semilikon getrennt eingeben, wobei der 2. Suchbegriff zudem noch optional ist.

Gruß Dieter
brotherkeeper
brotherkeeper 05.12.2009 um 16:21:07 Uhr
Goto Top
Sehr geil

danke dir vielmals

HILFE!? = False

face-smile
Biber
Biber 05.12.2009 um 17:20:34 Uhr
Goto Top
Moin brotherkeeper,

Zitat von @brotherkeeper:
@Biber: war deiner meinung nach etwas falsch an "HILFE?!" oder was meinst du mit deinem kommentar?
Ja, Sprechblasen wie "HILFE?!" halte ich für fehl am Platz unter Menschen, die sich hier im Forum gegenseitig für voll nehmen und einander auf Augenhöhe und mit Respekt begegnen.

Wenn du -wie in diesem Fall- ein Problemchen mit Excel hast und selbst keine Lösung findest... okay, natürlich versucht hier jede/r zu helfen.
Aber: das tun alle, weil jede/r von uns genau diese Situation auch selbst schon hunderte Male erlebt hat. Ist normal. Nix Dramatisches.

Und allen Ernstes: wenn unser kleiner blauer Planet nicht mal implodiert, wenn wir einen Westerwelle zum Außenminister machen,
dann wird wohl auch kaum die Hölle zufrieren, wenn bei dir nicht innerhalb von 3 Minuten ein Excel-Makro zum Hin- und Herspringen auf dem Tisch liegt.

Wir alle nehmen -sonst wären wir hier nicht angemeldet - Computer"probleme" durchaus ernst. So ernst, wie sie es verdienen.

Aber wenn jemand - wenn 1 Milliarde von 6 Milliarden Menschen auf dieser unserer Erde hungert - bei einen Excel-Auswahl-Makro meint um "HILFE?!" rufen zu müssen....

Sorry, da möchte ich als Moderator Mensch doch mal kurz zur Besinnlichkeit und zum Nachdenken aufrufen..

Grüße
Biber
76109
76109 05.12.2009 um 20:13:11 Uhr
Goto Top
Hallo brotherkeeper!

Zitat von @brotherkeeper:
und wie würde der befehl aussehen:
1) die nächste leere zelle in einer spalte zu finden und 3 zellen nach oben zu springen und den cursor in den fokus holen?
Sub GotoNextCell()
    Dim NextLine As Long
    NextLine = ActiveCell.End(xlDown).Row - 2
    If Not IsEmpty(ActiveCell) And NextLine > ActiveCell.Row Then
        Cells(NextLine, ActiveCell.Column).Select
    End If
End Sub
Springt in der Spalte, die gerade selektiert ist, in die drittletzte Zeile (-2).
2) wie kann ich per code die "normal" markierte zelle wieder in den fokus holen (wenn ich zum beispiel über den
scrollbalken mich in der tabelle umgeschaut habe)?
Sub GotoActiveCell()
    Application.Goto Reference:=ActiveCell
End Sub
Springt zur Aktiven Zelle.

Gruß Dieter
brotherkeeper
brotherkeeper 07.12.2009 um 09:29:41 Uhr
Goto Top
Hey Biber

Du hast meine "Sprechblase" zu kritisch aufgenommen... Oder ich habe Sie falsch eingesetzt... Ohne politisches oder humanitäres einzubringen kann ich nur sagen, daß es nicht so gemeint war wie du es aufgenommen hast...

Zitat von @Biber:
Moin brotherkeeper,

> Zitat von @brotherkeeper:
> ----
> @Biber: war deiner meinung nach etwas falsch an "HILFE?!" oder was meinst du mit deinem kommentar?
Ja, Sprechblasen wie "HILFE?!" halte ich für fehl am Platz unter Menschen, die sich hier im Forum gegenseitig
für voll nehmen und einander auf Augenhöhe und mit Respekt begegnen.

Sie sollte nnicht respektlos wirken... wenn ja entschuldige ich mich sehr gerne hiermit...

Wenn du -wie in diesem Fall- ein Problemchen mit Excel hast und selbst keine Lösung findest... okay, natürlich versucht
hier jede/r zu helfen.
Aber: das tun alle, weil jede/r von uns genau diese Situation auch selbst schon hunderte Male erlebt hat. Ist normal. Nix
Dramatisches.

Und allen Ernstes: wenn unser kleiner blauer Planet nicht mal implodiert, wenn wir einen Westerwelle zum Außenminister
machen,
dann wird wohl auch kaum die Hölle zufrieren, wenn bei dir nicht innerhalb von 3 Minuten ein Excel-Makro zum Hin- und
Herspringen auf dem Tisch liegt.

ich habe die Sprechblase nicht nach 3 Minuten gepostet sondern schon beim ersten Schreiben (wie gesagt nicht respektlos o.ä.)... Ich habe Sie vielmehr so gemeint wie ich Sie in jedem Forum meinen würde: hilfe -> ich bräuchte hilfe; Großgeschrieben: weil ich nicht weiter wusste; und die sonderzeichen ?! sollte es als Hilfewunsch und nicht als Hilfe-Befehl "abwerten"...


Wir alle nehmen -sonst wären wir hier nicht angemeldet - Computer"probleme" durchaus ernst. So ernst, wie sie es
verdienen.

Aber wenn jemand - wenn 1 Milliarde von 6 Milliarden Menschen auf dieser unserer Erde hungert - bei einen Excel-Auswahl-Makro
meint um "HILFE?!" rufen zu müssen....

Sorry, da möchte ich als Moderator Mensch doch mal kurz zur Besinnlichkeit und zum Nachdenken aufrufen..

Dazu musst du weder den Mensch noch den Moderator hervorheben... Dennoch sei mir auch eine Kritik in Deine Richtung erlaubt... Eine normalen User wie mich direkt in aller öffentlichkeit (direkt im Forum und nicht per PM) in der Art und weise zu drohen halte ich für mehr als unangebracht und als ein "missbrauch" der Adminrolle... Ich schätze, daß eine Mensch mit mehr als 8000 Kommentaren diesen Begriff "nur" blöd aufgenommen hat... Ich habe keinen beschimpft, beleidigt, aufgestachelt, bedroht oder sonstiges getan...


Grüße
Biber

Grüße Brotherkeeper

PS: Friede?
brotherkeeper
brotherkeeper 07.12.2009 um 09:37:21 Uhr
Goto Top
Zitat von @76109:
Hallo brotherkeeper!

> Zitat von @brotherkeeper:
> und wie würde der befehl aussehen:
> 1) die nächste leere zelle in einer spalte zu finden und 3 zellen nach oben zu springen und den cursor in den fokus
holen?
> Sub GotoNextCell()
>     Dim NextLine As Long
>     NextLine = ActiveCell.End(xlDown).Row - 2
>     If Not IsEmpty(ActiveCell) And NextLine > ActiveCell.Row Then
>         Cells(NextLine, ActiveCell.Column).Select
>     End If
> End Sub
> 
Springt in der Spalte, die gerade selektiert ist, in die drittletzte Zeile (-2).
geht bei mir nich... da bewegt sich gar nichts...
> 2) wie kann ich per code die "normal" markierte zelle wieder in den fokus holen (wenn ich zum beispiel über
den
> scrollbalken mich in der tabelle umgeschaut habe)?
> Sub GotoActiveCell()
>     Application.Goto Reference:=ActiveCell
> End Sub
> 
Springt zur Aktiven Zelle.

Gruß Dieter


super... mal wieder danke hierfür...

LG

B
brotherkeeper
brotherkeeper 07.12.2009 um 09:44:45 Uhr
Goto Top
Hallo Dieter...

Danke, allerdings möchte ich auch diesen befehl hinter einem button "verstecken" und dem user nicht die wahl der Suche geben sonder diese vordefinieren (zB Konstante 1 in spalte 1 den Wert Offen und konstante 2 in spalte 3 den kürzel MK -> soll bedeuten zeige mir alle offenen punkte von MK...)

wie kann ich denn als ein "konstante" das heutige datum eintragen

oder

wie kann ich als eine konstante den eintrag ein zelle (zB AA100) nehmen?
76109
76109 07.12.2009 um 12:00:45 Uhr
Goto Top
Hallo brotherkeeper!

Zitat von @brotherkeeper:
Springt in der Spalte, die gerade selektiert ist, in die drittletzte Zeile (-2).
geht bei mir nich... da bewegt sich gar nichts...
Also, ich habe es so verstanden: Gehe von der aktiven Zelle nach unten zur nächsten leeren Zelle und dann 3 Zellen nach oben. Das habe ich umgesetzt in: Gehe von der aktiven Zelle zur letzten Zelle mit Inhalt, also eine Zelle vor der leeren Zelle und dann 2 Zellen nach oben. Das geht also nur, wenn sich zwischen der aktiven Zelle und der letzten Zelle mit Inhalt mindesten eine Diiferenz von 3 ergibt.

Die Aktive Zelle darf nicht leer sein.

Beispiele:
Zelle D10 ist aktiv, D10:D12 mit Inhalt D13 Leer - Geht nicht, weil Differenz < 3 und Goto-Zelle = D10
Zelle D10 ist aktiv, D10:D13 mit Inhalt D14 Leer - Geht, weil Differenz = 3 und Goto-Zelle = D11
Zelle D10 ist aktiv, D10:D14 mit Inhalt D15 Leer - Geht, weil Differenz > 3 und Goto-Zelle = D12
Zelle D10 ist aktiv, D10:D15 mit Inhalt D16 Leer - Geht, weil Differenz > 3 und Goto-Zelle = D13
usw.

Ich bin davon ausgegangen, dass es sich um Zellblöcke handelt z.B. 10 Zeilen mit Inhalt, dann eine Leerzeile und nächster Block mit Inhalt, aber wenns denn die allerletzte Zeile - 2 sein soll, dann so:
Sub GotoLastCell()
    Dim NextLine As Long
    NextLine = Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row - 2
    If NextLine > 1 Then Cells(NextLine, ActiveCell.Column).Select
End Sub

Gruß Dieter
brotherkeeper
brotherkeeper 07.12.2009 um 12:23:53 Uhr
Goto Top
geht nun

ich danke dir vielmals

gruß

B
76109
76109 07.12.2009 um 13:07:22 Uhr
Goto Top
Hallo brotherkeeper!

Boaaaahface-smile

In etwa so:
	
Const ColCriteria1 = 1		'Spalte A, Spalte relativ zur 1. RngFilter-Spalte  
Const ColCriteria2 = 3		'Spalte C, Spalte relativ zur 1. RngFilter-Spalte  

Const RngFilter = "A14:F47"		'Filterbereich, 1.Zeile (14) = Überschrift  

Private Sub FilteOn_Click()
    Dim Search1 As Variant, Search2 As Variant
    
   'Search1 = "abcd"		'Suchbegriff 1 = Vorgabe Text  
   'Search2 = "efgh"		'Suchbegriff 2 = Vorgabe Text  
    
   'Search1 = Date			'Suchbegriff 1 = Vorgabe heutiges Datum  
   'Search2 = CDate("07.12.2009")	'Suchbegriff 2 = Vorgabe irgendein Datum  
    
    Search1 = Range("AA1")		'Suchbegriff 1 = Vorgabe Inhalt Zelle AA1  
    Search2 = Range("AB1")		'Suchbegriff 1 = Vorgabe Inhalt Zelle AB1  
    
    ActiveSheet.AutoFilterMode = False
    
    If IsEmpty(Search1) Or Search1 = "" Then Exit Sub  
    
    Cells(Range(RngFilter).Row, Range(RngFilter).Column).Select
    
    Range(RngFilter).AutoFilter Field:=ColCriteria1, Criteria1:=Search1
    
    If IsEmpty(Search2) Or Search2 = "" Then Exit Sub  
  
    Range(RngFilter).AutoFilter Field:=ColCriteria2, Criteria1:=Search2
 End Sub

Gruß Dieter

[edit] geändert [/edit]

PS. Der 2. Suchbegriff ist immer noch optionalface-wink
Biber
Biber 07.12.2009 um 13:37:12 Uhr
Goto Top
<OT>
Moin brotherkeeper,

Zitat von @brotherkeeper:
Hey Biber

... kann ich nur sagen, daß es nicht so gemeint war wie du es aufgenommen hast...
Okay, hab ich verstanden.
Dennoch sei mir auch eine Kritik in Deine Richtung erlaubt...
Eine normalen User wie mich direkt in aller öffentlichkeit (direkt im Forum und nicht per PM) in der Art und weise zu drohen
halte ich für mehr als unangebracht und als ein "missbrauch" der Adminrolle...
Ich schätze, daß eine Mensch mit mehr als 8000 Kommentaren diesen Begriff "nur" blöd aufgenommen hat...
Ich habe keinen beschimpft, beleidigt, aufgestachelt, bedroht oder sonstiges getan...

Auch hier: Ja, hast wohl Recht. Vielleicht habe ich da überreagiert.
Worauf ich ja nur hinweisen wollte war: Hey, das hier ist nicht die reale Welt, sondern nur irgendein Forum mit Computer"problemen".
Und da hielt und halte ich die mit einem "HILFE?" angedeutete Wichtigkeit und Bedeutung für unangemessen.

Drohen oder meine "Wichtigkeit" oder "Macht" demonstrieren wollte ich nicht - das wäre genauso daneben.
Vielleicht hätte ich eine Smiley dazupappen sollen face-wink

PS: Friede?
Natürlich - ich plustere mich meist nur zwei Minuten lang auf. danach bin ich ganz flauschig.

Grüße
Biber
</OT>
brotherkeeper
brotherkeeper 07.12.2009 um 13:48:50 Uhr
Goto Top
Hey...

:-P

alsoooooooooooooo, das habe ich gemacht:
TEIL 1:
Const ColCriteria1 = 14 'Spalte N
Const ColCriteria2 = 15 'Spalte O

Const RngFilter = "N14:O10000" 'Filterbereich, 1.Zeile (14) = Überschrift

Sub SucheHück()
Dim Search1 As Variant, Search2 As Variant

Search1 = "offen" 'Suchbegriff 1 = Vorgabe Text
'Search2 = "efgh" 'Suchbegriff 2 = Vorgabe Text

Search1 = Date 'Suchbegriff 1 = Vorgabe heutiges Datum
'Search2 = CDate("07.12.2009") 'Suchbegriff 2 = Vorgabe irgendein Datum

'Search1 = Range("T15") 'Suchbegriff 1 = Vorgabe Inhalt Zelle AA1
'Search2 = Range("I2") 'Suchbegriff 1 = Vorgabe Inhalt Zelle AB1

ActiveSheet.AutoFilterMode = False

If IsEmpty(Search1) Then Exit Sub

Cells(Range(RngFilter).Row, Range(RngFilter).Column).Select

Range(RngFilter).AutoFilter Field:=ColCriteria1, Criteria1:=Search1

If Not IsEmpty(Search2) Then
Range(RngFilter).AutoFilter Field:=ColCriteria2, Criteria1:=Search2
End If
End Sub
TEIL 2
und zwar einmal mit der variante
Search1 = "offen" 'Suchbegriff 1 = Vorgabe Text
'Search2 = "efgh" 'Suchbegriff 2 = Vorgabe Text

Search1 = Date 'Suchbegriff 1 = Vorgabe heutiges Datum
'Search2 = CDate("07.12.2009") 'Suchbegriff 2 = Vorgabe irgendein Datum

'Search1 = Range("T15") 'Suchbegriff 1 = Vorgabe Inhalt Zelle AA1
'Search2 = Range("I2") 'Suchbegriff 1 = Vorgabe Inhalt Zelle AB1
und einmal mit der variante
'Search1 = "offen" 'Suchbegriff 1 = Vorgabe Text
'Search2 = "efgh" 'Suchbegriff 2 = Vorgabe Text

'Search1 = Date 'Suchbegriff 1 = Vorgabe heutiges Datum
'Search2 = CDate("07.12.2009") 'Suchbegriff 2 = Vorgabe irgendein Datum

Search1 = Range("T15") 'Suchbegriff 1 = Vorgabe Inhalt Zelle AA1
Search2 = Range("I2") 'Suchbegriff 1 = Vorgabe Inhalt Zelle AB1
ich bekomme aber leider eine Fehlermeldung an
Range(RngFilter).AutoFilter Field:=ColCriteria1, Criteria1:=Search1
TEIL 3
dann stellt sich mir die Frage, wenn ich in einer zweiten suchinstanz 2 spalten die nich aneinander grenzen duchsuchen möchte, kann ich das durch einfaches erweitern der Zeile
Const ColCriteria1 = 14 'Spalte N
Const ColCriteria2 = 15 'Spalte O

Const RngFilter = "N14:O10000" 'Filterbereich, 1.Zeile (14) = Überschrift
mit der ergebniss
Const ColCriteria1 = 13 'Spalte M
Const ColCriteria2 = 15 'Spalte O

Const RngFilter = "M14:M10000" 'Filterbereich, 1.Zeile (14) = Überschrift
Const RngFilter = "O14:O10000" 'Filterbereich, 1.Zeile (14) = Überschrift
also ohne Spalte "O"...

... face-sad

immer noch lust zu helfen? face-smile

PS: Wo kann man eigentlich einen vernünftige Kurs hierzu belegen? Würde auch gerne mal ein wenig mehr helfen dürfen...

Danke

B
76109
76109 07.12.2009 um 15:07:26 Uhr
Goto Top
Hallo brotherkeeper!

Oh Herr vergib ihnen, denn sie wissen nicht was tunface-smile

Also, das defininiert den Filterbereich:
Const ColCriteria1 = 1          'Spalte A - Entspricht der Spalte für Suchbegriff 1  
Const ColCriteria2 = 3          'Spalte C - Entspricht der Spalte für Suchbegriff 2  

Const RngFilter = "A14:X47"     'Filterbereich, 1.Zeile (14) = Überschrift  
Wobei RngFilter den gesamten Bereich umfasst, der gefiltert werden soll und logischer Weise müssen sich auch die Spalten ColCriteria1 und ColCriteria2 in diesem Bereich befinden. D.h. wenn RngFilter = "A14:X47", dann können die Suchspalten (ColCriteria1 und 2) eine x-beliebige Spalte zwischen A und X sein.

Der Suchbegriff 1 bezieht sich auf die Spalte ColCriteria1 und Der Suchbegriff 2 bezieht sich auf die Spalte ColCriteria2. Was ist denn daran so schwer?

Die Suchbegriffe Search1 und Search2 müssen beide definiert sein. Wenn Search2 leer sein soll, dann schreibe Search2 = ""

Kurse werden in der Regel an den Volkshochschulen und in Tageszeitungen angeboten

Gruß Dieter

PS. Hab beim letzten Code was vergessen und geändert
brotherkeeper
brotherkeeper 07.12.2009 um 15:29:38 Uhr
Goto Top
schwer ist, das ich nicht kapiere was ich falsch mache...

das habe ich nun:

Const ColCriteria1 = 14 'Spalte N
Const ColCriteria2 = 15 'Spalte O

Const RngFilter = "N14:O10000" 'Filterbereich, 1.Zeile (14) = Überschrift

Sub SucheHück()
Dim Search1 As Variant, Search2 As Variant

Search1 = Date 'Suchbegriff 1 = Vorgabe Text
Search2 = "offen" 'Suchbegriff 2 = Vorgabe Text

'Search1 = Date 'Suchbegriff 1 = Vorgabe heutiges Datum
'Search2 = CDate("07.12.2009") 'Suchbegriff 2 = Vorgabe irgendein Datum

'Search1 = Range("T15") 'Suchbegriff 1 = Vorgabe Inhalt Zelle AA1
'Search2 = Range("I2") 'Suchbegriff 1 = Vorgabe Inhalt Zelle AB1

ActiveSheet.AutoFilterMode = False

If IsEmpty(Search1) Then Exit Sub

Cells(Range(RngFilter).Row, Range(RngFilter).Column).Select

Range(RngFilter).AutoFilter Field:=ColCriteria1, Criteria1:=Search1

If Not IsEmpty(Search2) Then
Range(RngFilter).AutoFilter Field:=ColCriteria2, Criteria1:=Search2
End If
End Sub

und ich bekomme nach wie vor die Fehlermeldung bei
Range(RngFilter).AutoFilter Field:=ColCriteria1, Criteria1:=Search1

face-sad
76109
76109 07.12.2009 um 16:11:44 Uhr
Goto Top
Hallo brotherkeeper!

Du scheints da nichts falsch zu machen. Im Moment verstehe ich's auch noch nichtface-smile?

Gruß Dieter
76109
76109 07.12.2009 um 16:21:23 Uhr
Goto Top
Hallo brotherkeeper!

Jetzt hast Du mich aber reingelegtface-smile

Ist ja logisch. Die Spalten ColCriterial1 und ColCriterial2 müssen relativ zur ersten RngFilter-Spalte sein. Dh. Spalte N = 1 und Spalte O = 2

Der letzte Code (siehe oben) enthält Änderungen.

Gruß Dieter
brotherkeeper
brotherkeeper 08.12.2009 um 08:55:19 Uhr
Goto Top
entschuldige... face-smile

Das habe ich nun...

Const ColCriteria1 = 1 'Spalte N (Datum)
Const ColCriteria2 = 2 'Spalte O (Status)

Const RngFilter = "N14:O10000" 'Filterbereich, 1.Zeile (14) = Überschrift

er spuckt zwar keine fehlermeldung mehr aus, aber er zeigt mir auch nicht das ergebnis...

wenn ich dich richtig verstanden habe meinst du mit relativ, das Const ColCriteria1 sich auf die erste spalte der definierten bereichs bezieht (in meinem fall N) richtig?

ich kapier das nicht, ich bin nicht dumm aber ich kapier es nicht... face-sad


Anbei der ganze code:

Const ColCriteria1 = 1 'Spalte N
Const ColCriteria2 = 2 'Spalte O

Const RngFilter = "N15:O10000" 'Filterbereich, 1.Zeile (14) = Überschrift

Sub SucheHück()
Dim Search1 As Variant, Search2 As Variant

Search1 = Date 'Suchbegriff 1 = Vorgabe Text
Search2 = "offen" 'Suchbegriff 2 = Vorgabe Text

'Search1 = Date 'Suchbegriff 1 = Vorgabe heutiges Datum
'Search2 = CDate("07.12.2009") 'Suchbegriff 2 = Vorgabe irgendein Datum

'Search1 = Range("T15") 'Suchbegriff 1 = Vorgabe Inhalt Zelle AA1
'Search2 = Range("I2") 'Suchbegriff 1 = Vorgabe Inhalt Zelle AB1

ActiveSheet.AutoFilterMode = False

If IsEmpty(Search1) Then Exit Sub

Cells(Range(RngFilter).Row, Range(RngFilter).Column).Select

Range(RngFilter).AutoFilter Field:=ColCriteria1, Criteria1:=Search1

If Not IsEmpty(Search2) Then
Range(RngFilter).AutoFilter Field:=ColCriteria2, Criteria1:=Search2
End If
End Sub
76109
76109 08.12.2009 um 09:34:48 Uhr
Goto Top
Zitat von @brotherkeeper:
wenn ich dich richtig verstanden habe meinst du mit relativ, das Const ColCriteria1 sich auf die erste spalte der definierten
bereichs bezieht (in meinem fall N) richtig?
Richtig.-) Beispiel: RngFilter("F10:L20") dann ist F=1, G =2, H=3, I=4, J=5,K=6, L=7

Und wenn jetzt in einer Zeile in Spalte N das heutige Datum und in Spalte O "offen" steht, dann sollte es gehen. Zumindest geht's bei mirface-wink

Die Funtion Date gibt das aktuelle Datum (heute) zurück.

Wenn RngFilter("N15:O10000"), dann ist die 1. Zeile die Überschrift, indem Fall also Zeile 15 und der Filterbereich ist Range(N16:O10000)

Destotrotz verwende bitte den Code, den ich weiter oben geändert habe (geschrieben am 07.12.2009, 13:07:22 Uhr)

Vielleicht solltest Du mal im Sheet unter <Daten><Filter><AutoFilter> die Filter-Funktion zum probieren verwenden und die Makroaufzeichnung zum besseren Verständnis benutzenface-wink

Gruß Dieter

PS. Verwende bei Codezeilen die Code-Tags z.B.

<$code>
Dein Code
<$/code>
ohne Dollarzeichen
brotherkeeper
brotherkeeper 08.12.2009 um 11:29:09 Uhr
Goto Top
Also........................................................

face-confused

ich habe jetzt einmal das probiert:

Const ColCriteria1 = 1      'Spalte N (todo-datum)  
Const ColCriteria2 = 2      'Spalte O (status)  

Const RngFilter = "N14:O10000"     'Filterbereich, 1.Zeile (14) = Überschrift  

Sub SucheHück()
    Dim Search1 As Variant, Search2 As Variant
    
   'Search1 = Date        'Suchbegriff 1 = Vorgabe Text  
   'Search2 = "offen"        'Suchbegriff 2 = Vorgabe Text  
    
   'Search1 = Date          'Suchbegriff 1 = Vorgabe heutiges Datum  
   'Search2 = CDate("07.12.2009")   'Suchbegriff 2 = Vorgabe irgendein Datum  
    
    Search1 = Range("I2")      'Suchbegriff 1 = Vorgabe Inhalt Zelle Heute-funktion  
    Search2 = Range("T15")      'Suchbegriff 1 = Vorgabe Inhalt Zelle Status-Offen  
    
    ActiveSheet.AutoFilterMode = False
    
    If IsEmpty(Search1) Or Search1 = "" Then Exit Sub  
    
    Cells(Range(RngFilter).Row, Range(RngFilter).Column).Select
    
    Range(RngFilter).AutoFilter Field:=ColCriteria1, Criteria1:=Search1
    
    If IsEmpty(Search2) Or Search2 = "" Then Exit Sub  
  
    Range(RngFilter).AutoFilter Field:=ColCriteria2, Criteria1:=Search2
 End Sub

als auch
Const ColCriteria1 = 1      'Spalte N (todo-datum)  
Const ColCriteria2 = 2      'Spalte O (status)  

Const RngFilter = "N14:O10000"     'Filterbereich, 1.Zeile (14) = Überschrift  

Sub SucheHück()
    Dim Search1 As Variant, Search2 As Variant
    
   Search1 = Date        'Suchbegriff 1 = Vorgabe Text  
   Search2 = "offen"        'Suchbegriff 2 = Vorgabe Text  
    
   'Search1 = Date          'Suchbegriff 1 = Vorgabe heutiges Datum  
   'Search2 = CDate("07.12.2009")   'Suchbegriff 2 = Vorgabe irgendein Datum  
    
    'Search1 = Range("I2")      'Suchbegriff 1 = Vorgabe Inhalt Zelle Heute-funktion  
    'Search2 = Range("T15")      'Suchbegriff 1 = Vorgabe Inhalt Zelle Status-Offen  
    
    ActiveSheet.AutoFilterMode = False
    
    If IsEmpty(Search1) Or Search1 = "" Then Exit Sub  
    
    Cells(Range(RngFilter).Row, Range(RngFilter).Column).Select
    
    Range(RngFilter).AutoFilter Field:=ColCriteria1, Criteria1:=Search1
    
    If IsEmpty(Search2) Or Search2 = "" Then Exit Sub  
  
    Range(RngFilter).AutoFilter Field:=ColCriteria2, Criteria1:=Search2
 End Sub

es läuft nicht! face-sad irgendwie zweifel ich langsam an wenig an mir...
76109
76109 08.12.2009 um 12:09:10 Uhr
Goto Top
Hallo brotherkeeper!

Const RngFilter = "N14:O10000" sieht mehr eher wie eine Null (0) aus anstatt nem O

Edit, ist wohl doch ein "O"

Gruß Dieter
76109
76109 08.12.2009 um 12:14:10 Uhr
Goto Top
Hallo brotherkeeper!

Hast Du in Spalte N auch wirklich nur ein Datum ohne Zeit stehen. Mal manuell das Datum eingeben "8.12.2009" oder einen einfachen Text zum testen nehmen.

Ansonsten gibt die Fuktion NOW das aktuelle Datum und die Uhrzeit zurück.

Gruß Dieter
brotherkeeper
brotherkeeper 08.12.2009 um 13:28:51 Uhr
Goto Top
leider auch nicht...

auch nicht mit nur eiem suchbegriff...
Const ColCriteria1 = 1      'Spalte N (todo-datum)  
Const ColCriteria2 = 2      'Spalte O (status)  

Const RngFilter = "N14:O10000"     'Filterbereich, 1.Zeile (14) = Überschrift  

Sub SucheHück()
    Dim Search1 As Variant, Search2 As Variant
    
   Search1 = "08.12.2009"        'Suchbegriff 1 = Vorgabe Text  
   'Search2 = "offen"        'Suchbegriff 2 = Vorgabe Text  
    
   'Search1 = Date          'Suchbegriff 1 = Vorgabe heutiges Datum  
   'Search2 = CDate("07.12.2009")   'Suchbegriff 2 = Vorgabe irgendein Datum  
    
    'Search1 = Range("I2")      'Suchbegriff 1 = Vorgabe Inhalt Zelle Heute-funktion  
    'Search2 = Range("T15")      'Suchbegriff 1 = Vorgabe Inhalt Zelle Status-Offen  
    
    ActiveSheet.AutoFilterMode = False
    
    If IsEmpty(Search1) Or Search1 = "" Then Exit Sub  
    
    Cells(Range(RngFilter).Row, Range(RngFilter).Column).Select
    
    Range(RngFilter).AutoFilter Field:=ColCriteria1, Criteria1:=Search1
    
    If IsEmpty(Search2) Or Search2 = "" Then Exit Sub  
  
    Range(RngFilter).AutoFilter Field:=ColCriteria2, Criteria1:=Search2
 End Sub

grrrrrrrrrrr....
76109
76109 08.12.2009 um 13:42:04 Uhr
Goto Top
Hallo brotherkeeper!

Und wo steht das Makro in einem Modul oder Tabellenblatt und wie startest Du es?

Gruß Dieter

PS. Bin schon auf'm Sprung und muss jetzt leider wegface-wink
brotherkeeper
brotherkeeper 08.12.2009, aktualisiert am 18.10.2012 um 18:40:15 Uhr
Goto Top
das makro ist in einem Modul welches ich mit einem button verknüpft habe....

PS: Ich kann warten...

face-smile

noch etwas (@biber: bitte den neue Eintrag von heute somit wieder löschen da mit dieser frage jetzt hier sonst doppelt. Vielen lieben Dank!!! face-smile Per VBA die Zeilenhöhe optimieren):
Private Sub Workbook_Open()
Sheets(1).Range("S8").Value = Sheets(1).Range("S8").Value + 1  
'Gruß()  
    MsgBox "Viel Spaß!"  
End Sub
leider zählt der zähler nicht die zu zählende zahl... wo ist der fehler?

und

Ein kleine Frage zum Thema Formatierung...

Ich erstelle ein Art von Protokoll... In diesem werden verschiedene Informationen per Userform eingegeben... Nun passiert es, daß ein Eintrag in einer Zelle nicht reinpasst. die Zelle habe ich bereits mit dem Zusazt "Zeilenumbruch" versehen. Leider ist aber trotzdem nur die erste zeile lesbar. Da ich nun die Einträge per Userform eintrage, würde ich das modul gerne um einen befehl wie "passe zeilehöhe automatisch an" ergänzen... Wie würde dieser aussehen?

Ferner würde ich auch gerne bei jedem eintrag einzelne zellen der dann hinzugefügten zeile schützen/sperren (und eventuel per doppelklick wieder temporär beschreibbar machen)... Hat jemand hier ein idee wie...?

PS: freue mich meine mittlerweile gesammelten module bald hier publizieren zu können...
76109
76109 08.12.2009, aktualisiert am 18.10.2012 um 18:40:16 Uhr
Goto Top
Hallo brotherkeeper, hallo Biber!

Ich glaube, irgendwie bin ich im falschen Film. Ist auch keiner da, der mich mal zwicktface-smile

Zitat von @brotherkeeper:
noch etwas (@biber: bitte den neue Eintrag von heute somit wieder löschen da mit dieser frage jetzt hier sonst doppelt.
Vielen lieben Dank!!! face-smile Per VBA die Zeilenhöhe optimieren):
Auch von mir ein großes Dankeschön:'(

das makro ist in einem Modul welches ich mit einem button verknüpft habe....
Befindet sich der Button im Sheet oder in einer UserForm?
Füge am Anfang vom Filter-Code eine MsgBox mit sinnlosem text ein und starte das Makro. MsgBox macht sich zum testen immer gut.
Ich erstelle ein Art von Protokoll... In diesem werden verschiedene Informationen per Userform eingegeben... Nun passiert es,
daß ein Eintrag in einer Zelle nicht reinpasst. die Zelle habe ich bereits mit dem Zusazt "Zeilenumbruch"
versehen. Leider ist aber trotzdem nur die erste zeile lesbar. Da ich nun die Einträge per Userform eintrage, würde ich
das modul gerne um einen befehl wie "passe zeilehöhe automatisch an" ergänzen... Wie würde dieser
aussehen?
Also, bei mir funktioniert die Automatische Anpassung mit dem Zeilenumbruch? Der Code würde z.B. so lauten:
Sheets(1).Range("G15").WrapText = True  
Aber solche Dinge kannst Du doch sehr einfach mit der Makroaufzeichnung herausbekommen?
Ferner würde ich auch gerne bei jedem eintrag einzelne zellen der dann hinzugefügten zeile schützen/sperren (und
eventuel per doppelklick wieder temporär beschreibbar machen)... Hat jemand hier ein idee wie...?
Also, eine einzelne Zelle kann nicht gesperrt werden. Du kannst für eine Zelle nur festlegen, ob sie gesperrt ist, wenn das Arbeitsblatt geschützt ist. Und wenn Du bei jeder Aktion, erstmal den Arbeitsblattschutz aufheben musst, dann denke ich nicht, dass das besonders sinnvoll ist, zumal Du bei jedem Makro, das eine Aktion im Arbeitsblatt durchführt, auch jedesmal erst der Arbeitsblattschutz aufgehoben werden muss. Das Zweckentfremden der standardmäßigen Doppelklick-Funktion finde ich auch nicht sinnvoll. Das könnte manchen Benutzer ziemlich verwirren.
> Private Sub Workbook_Open()
> Sheets(1).Range("S8").Value = Sheets(1).Range("S8").Value + 1  
> MsgBox "Viel Spaß!"  
> End Sub
> 
leider zählt der zähler nicht die zu zählende zahl... wo ist der fehler?
Und wo ist diese Makro eingefügt. Sollte eigentlich funktionieren, sofern Makros akttviert sind die Mappe auch gespeichert wird.
Oder Du hast die falsche bzw. eine uralte Excel-Version. Welche Excel-Version verwendest Du?

Gruß Dieter
brotherkeeper
brotherkeeper 09.12.2009, aktualisiert am 18.10.2012 um 18:40:16 Uhr
Goto Top
Zitat von @76109:
Hallo brotherkeeper, hallo Biber!

Ich glaube, irgendwie bin ich im falschen Film. Ist auch keiner da, der mich mal zwicktface-smile
ZWICK!....

face-smile

> Zitat von @brotherkeeper:
> noch etwas (@biber: bitte den neue Eintrag von heute somit wieder löschen da mit dieser frage jetzt hier sonst
doppelt.
> Vielen lieben Dank!!! face-smile Per VBA die Zeilenhöhe optimieren):
Auch von mir ein großes Dankeschön:'(
das kommt irgendwie nicht ehrlich rüber( :'( ), aber für einmal kaffe trinken wird es reichen... Sagt bescheid wenn ihr mal in bonn seid... face-wink

> das makro ist in einem Modul welches ich mit einem button verknüpft habe....
Befindet sich der Button im Sheet oder in einer UserForm?
Sheet...
Füge am Anfang vom Filter-Code eine MsgBox mit sinnlosem text ein und starte das Makro. MsgBox macht sich zum testen immer
gut.
Habe ich... Msg-Box geht auch auf... Die Spalten zucken auch beim ausführen des Codes, aber es wird kein Treffer angezeigt...
> Ich erstelle ein Art von Protokoll... In diesem werden verschiedene Informationen per Userform eingegeben... Nun passiert
es,
> daß ein Eintrag in einer Zelle nicht reinpasst. die Zelle habe ich bereits mit dem Zusazt "Zeilenumbruch"
> versehen. Leider ist aber trotzdem nur die erste zeile lesbar. Da ich nun die Einträge per Userform eintrage,
würde ich
> das modul gerne um einen befehl wie "passe zeilehöhe automatisch an" ergänzen... Wie würde dieser
> aussehen?
Also, bei mir funktioniert die Automatische Anpassung mit dem Zeilenumbruch? Der Code würde z.B. so lauten:
> Sheets(1).Range("G15").WrapText = True  
> 
Wenn ich das als einzelnen zeile in den Eintragungscode eintrage, sehe ich zwar das er berechnet, aber nichts ändert...?
Aber solche Dinge kannst Du doch sehr einfach mit der Makroaufzeichnung herausbekommen?
> Ferner würde ich auch gerne bei jedem eintrag einzelne zellen der dann hinzugefügten zeile schützen/sperren
(und
> eventuel per doppelklick wieder temporär beschreibbar machen)... Hat jemand hier ein idee wie...?
Also, eine einzelne Zelle kann nicht gesperrt werden. Du kannst für eine Zelle nur festlegen, ob sie gesperrt ist, wenn das
Arbeitsblatt geschützt ist. Und wenn Du bei jeder Aktion, erstmal den Arbeitsblattschutz aufheben musst, dann denke ich
nicht, dass das besonders sinnvoll ist, zumal Du bei jedem Makro, das eine Aktion im Arbeitsblatt durchführt, auch jedesmal
erst der Arbeitsblattschutz aufgehoben werden muss. Das Zweckentfremden der standardmäßigen Doppelklick-Funktion finde
ich auch nicht sinnvoll. Das könnte manchen Benutzer ziemlich verwirren.
>
> > Private Sub Workbook_Open()
> > Sheets(1).Range("S8").Value = Sheets(1).Range("S8").Value + 1  
> > MsgBox "Viel Spaß!"  
> > End Sub
> > 
> leider zählt der zähler nicht die zu zählende zahl... wo ist der fehler?
Und wo ist diese Makro eingefügt. Sollte eigentlich funktionieren, sofern Makros akttviert sind die Mappe auch gespeichert
wird.
Oder Du hast die falsche bzw. eine uralte Excel-Version. Welche Excel-Version verwendest Du?
wir müssen sparen... Die version ist die 2003 SP3. Und es zählt weder das öffnen nochh das speichern...

Gruß Dieter
Gruß Manuel
76109
76109 09.12.2009 um 09:37:49 Uhr
Goto Top
Hallo Manuel!

Zitat von @brotherkeeper:
ZWICK!....
Mhm, war wohl doch kein Traumface-smile
wir müssen sparen... Die version ist die 2003 SP3. Und es zählt weder das öffnen nochh das speichern...
Ich spare auch und hab noch Office 2002 SP3face-wink
Ein Mitglied, wenn ich mich recht erinnere mit Nickname "Iwan", hat mal geschrieben, dass manche Dinge die z.B. in der Version 2007 und 2002 funktionieren, in der Version 2003 nicht funktionieren und umgekehrt. Kann ich leider nicht testen, hab eben noch Version 2002 und meine nächste Version wird Office 2010 sein.

Hast Du Workbook_Open auch in "Diese Arbeitsmappe" eingefügt, sonst funktioniert es nicht.
Habe ich... Msg-Box geht auch auf... Die Spalten zucken auch beim ausführen des Codes, aber es wird kein Treffer angezeigt...
Gehe doch mal ins Sheet und starte die Makroaufzeichnung und mache das ganze mal manuell über <Bereich markieren><Daten><Filter><Autofilter> dann in den Filter-Buttons die Suchbegriffe auswählen und nach der Anzeige das Makro stoppen. Und am besten den Code postenface-wink
Wenn ich das als einzelnen zeile in den Eintragungscode eintrage, sehe ich zwar das er berechnet, aber nichts ändert...?
Was funktioniert denn jetzt nich? Die Zellvergrößerung oder die Berechnung. Wenn Du in eine Zelle einen langen Text eingibst und dann über <Zellen formatieren><Ausrichtung><Zeilenumbruch> auswählst, wird dann die Zellgröße automatisch angepasst oder nicht?

Gruß Dieter
brotherkeeper
brotherkeeper 09.12.2009 um 10:13:44 Uhr
Goto Top
schau dir mal den code an...

Problem war die formatierung...

Const RngFilter = "M14:O10000"     'Filterbereich, 1.Zeile (14) = Überschrift  

Sub SucheHückUpdate()
    Dim Search1 As String
    Dim Search2 As String
    
    Search1 = Mid(Now, 1, 10)
    Search2 = "offen"  
       
    If IsEmpty(Search1) Or Search1 = "" _  
        Or IsEmpty(Search2) Or Search2 = "" Then Exit Sub  
    
    ActiveSheet.AutoFilterMode = False
    
    Range(RngFilter).Select
    Selection.AutoFilter Field:=1, Criteria1:=CDate(Search1)
    Selection.AutoFilter Field:=3, Criteria1:=Search2
 End Sub

ich kriege da nur die markierung noch nicht weg...
76109
76109 09.12.2009 um 10:49:05 Uhr
Goto Top
Hallo Manuel!

ich kriege da nur die markierung noch nicht weg...
Kein Wunder, wenn Du entgegen meines Codes den ganzen Bereich markierst:
Range(RngFilter).Select 
markiert den Bereich "M14:O10000"
Cells(Range(RngFilter).Row, Range(RngFilter).Column).Select 
markiert nur die Zelle "M14"

Das mit der Formatierung kann ich nicht ganz nachvollziehen, es sei denn Du schreibst das Datum per UserForm in die Zelle als Text. Wenn Du ein Datum direkt in eine Zelle schreibst, dann ist die Zellformatierung wurscht, da ein Datum oder die Zeit intern als Double-Zahl dargestellt wird und nur die Anzeige formatiert ist. Wenn Du das Datum über UserForm in die Zelle schreibst, dann ist das Datum als Text in die Zelle geschrieben. In dem Fall das Datum so in die Zelle schreiben z.B. Range("A1") = CDate(TextBox).

Und die Variablen Search1 und Search2 dann wieder As Variant deklarieren.

Gruß Dieter
brotherkeeper
brotherkeeper 09.12.2009 um 11:16:20 Uhr
Goto Top
kann ich denn statt
Range(RngFilter).Select
den code:
Range(RngFilter).AutoFilter Field:=ColCriteria2, Criteria1:=Search2
eintragen geht es auch nicht... wäre zu einfach gewesen!
76109
76109 09.12.2009 um 11:42:19 Uhr
Goto Top
Hallo Manuel!

Häh?

Nein, ersetze die Codezeile 15
Range(RngFilter).Select 
durch diese Codezeile
Cells(Range(RngFilter).Row, Range(RngFilter).Column).Select 

Dadurch wird die nur die allererste Zelle im Filter-Bereich selektiert. Der Grund dafür ist der, dass wenn sich der Zell-Cursor in einer Zelle im Suchbereich befindet und diese Zelle nicht zufällig eine Zelle ist, die dem Suchbegriff entspricht, Du dann einen komischen Strich zu sehen bekommst. Daher der Zell-Cursor in die erste Zelle, weil er da aus dem Weg ist und nicht stört.

Gruß Dieter
brotherkeeper
brotherkeeper 09.12.2009 um 12:50:54 Uhr
Goto Top
habe es mit dem befehl

Range("A1").Select

gelöst...

juhu, ich konnte auch mal was... face-smile))
76109
76109 09.12.2009 um 13:07:26 Uhr
Goto Top
Hallo Manuel!

Na dann, herzlichen Glückwunschface-smile

Auf das Erreignis hin, bin ich dann mal eben weg zum nächsten Kiosk und drink nen dreifachen Doppelkornface-wink

Gruß Dieter
brotherkeeper
brotherkeeper 09.12.2009 um 14:29:22 Uhr
Goto Top
Zitat von @76109:
Hallo Manuel!

Na dann, herzlichen Glückwunschface-smile

Auf das Erreignis hin, bin ich dann mal eben weg zum nächsten Kiosk und drink nen dreifachen Doppelkornface-wink
6 Körner??

Gruß Dieter

face-smile)

kommt aber bestimmt noch was...