Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
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.
GELÖST

Springe zum nächstem abcdef Begriff...

Frage Microsoft Microsoft Office

Mitglied: brotherkeeper

brotherkeeper (Level 1) - Jetzt verbinden

03.12.2009, aktualisiert 18.10.2012, 6528 Aufrufe, 44 Kommentare

ich habe eine spalte in der die werte 1, darunter 0, darunter 2, darunter 1 habe.
in etwa so:
1
0
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!?
44 Antworten
Mitglied: 76109
03.12.2009 um 18:54 Uhr
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.

01.
Option Explicit 
02.
 
03.
Const RngSearch = "H7:H40"  'Such- und Filterbereich (H7 = Überschrift) 
04.
 
05.
Private Sub FilteOn_Click() 
06.
    Dim Search As String, c As Range 
07.
     
08.
    Search = InputBox("Bitte Suchbegriff eingeben:", "Suchen") 
09.
     
10.
    If Search = "" Then Exit Sub 
11.
     
12.
    ActiveSheet.AutoFilterMode = False 
13.
     
14.
    Set c = ActiveSheet.Range(RngSearch).Find(Search, LookIn:=xlValues, LookAt:=xlWhole) 
15.
     
16.
    If c Is Nothing Then MsgBox "Suchbegriff nicht gefunden!", vbInformation, "Suchen":  Exit Sub 
17.
     
18.
    c.Select 
19.
     
20.
    Range(RngSearch).AutoFilter Field:=1, Criteria1:=Search 
21.
End Sub 
22.
 
23.
Private Sub FilterOff_Click() 
24.
    ActiveSheet.AutoFilterMode = False 
25.
End Sub
Die Konstante für den Such- und Filterbereich inklusive Überschrift entsprechend anpassen.

Gruß Dieter
Bitte warten ..
Mitglied: brotherkeeper
03.12.2009 um 19:12 Uhr
Sowas änliches... Nur will ich den zu suchenden begriff festlegen... Geht das?
Bitte warten ..
Mitglied: 76109
03.12.2009 um 19:56 Uhr
Keine Ahnung was Du jetzt meinst Wie, wer, wo und was festlegen???????
Bitte warten ..
Mitglied: brotherkeeper
04.12.2009 um 09:15 Uhr
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...
Bitte warten ..
Mitglied: 76109
04.12.2009 um 10:41 Uhr
Hallo brotherkeeper!

Das ergibt für mich zwar keinen Sinn, aber wenn's nur ein Begriff sein soll, dann in etwa so:
01.
Const RngSearch = "H7:H40"  'Such- und Filterbereich (H7 = Überschrift) 
02.
 
03.
Private Sub FilteOn_Click() 
04.
    Dim Search As String, c As Range 
05.
     
06.
    Search = "abcdefgh" 
07.
     
08.
    ActiveSheet.AutoFilterMode = False 
09.
     
10.
    Set c = ActiveSheet.Range(RngSearch).Find(Search, LookIn:=xlValues, LookAt:=xlWhole) 
11.
     
12.
    If Not c Is Nothing Then 
13.
        c.Select:  Range(RngSearch).AutoFilter Field:=1, Criteria1:=Search 
14.
   End If 
15.
End Sub 
16.
 
17.
Private Sub FilterOff_Click() 
18.
    ActiveSheet.AutoFilterMode = False 
19.
End Sub
Gruß Dieter
Bitte warten ..
Mitglied: brotherkeeper
04.12.2009 um 13:06 Uhr
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...
Bitte warten ..
Mitglied: brotherkeeper
04.12.2009 um 13:40 Uhr
und noch was (wenn ich schon einmal in fahrt bin...

))

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:
Bitte warten ..
Mitglied: brotherkeeper
04.12.2009 um 13:45 Uhr
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
Bitte warten ..
Mitglied: 76109
05.12.2009 um 11:09 Uhr
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?
Bitte warten ..
Mitglied: brotherkeeper
05.12.2009 um 14:46 Uhr
Ja, sind konstant...

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

Hier nur als Filterfunktion mit 2 Suchkriterien.
01.
Const ColCriteria1 = 1          'Spalte A 
02.
Const ColCriteria2 = 3          'Spalte C 
03.
 
04.
Const RngFilter = "A14:F47"     'Filterbereich, 1.Zeile (14) = Überschrift 
05.
 
06.
Const Msg1 = "Bitte die Suchbegriffe im Format [ab][ab;ab] eingeben:" 
07.
 
08.
Private Sub FilteOn_Click() 
09.
    Dim Text As Variant 
10.
     
11.
    ActiveSheet.AutoFilterMode = False 
12.
     
13.
    Text = Split(InputBox(Msg1, "Filter setzen"), ";") 
14.
     
15.
    If UBound(Text) < 0 Then Exit Sub 
16.
     
17.
    Cells(Range(RngFilter).Row, Range(RngFilter).Column).Select 
18.
     
19.
    Range(RngFilter).AutoFilter Field:=ColCriteria1, Criteria1:=Text(0) 
20.
     
21.
    If UBound(Text) = 1 Then 
22.
        Range(RngFilter).AutoFilter Field:=ColCriteria2, Criteria1:=Text(1) 
23.
    End If 
24.
End Sub 
25.
 
26.
Private Sub FilterOff_Click() 
27.
    ActiveSheet.AutoFilterMode = False 
28.
End Sub
Du kannst also 2 Suchbegriffe durch Semilikon getrennt eingeben, wobei der 2. Suchbegriff zudem noch optional ist.

Gruß Dieter
Bitte warten ..
Mitglied: brotherkeeper
05.12.2009 um 16:21 Uhr
Sehr geil

danke dir vielmals

HILFE!? = False

Bitte warten ..
Mitglied: Biber
05.12.2009 um 17:20 Uhr
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
Bitte warten ..
Mitglied: 76109
05.12.2009 um 20:13 Uhr
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?
01.
Sub GotoNextCell() 
02.
    Dim NextLine As Long 
03.
    NextLine = ActiveCell.End(xlDown).Row - 2 
04.
    If Not IsEmpty(ActiveCell) And NextLine > ActiveCell.Row Then 
05.
        Cells(NextLine, ActiveCell.Column).Select 
06.
    End If 
07.
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)?
01.
Sub GotoActiveCell() 
02.
    Application.Goto Reference:=ActiveCell 
03.
End Sub
Springt zur Aktiven Zelle.

Gruß Dieter
Bitte warten ..
Mitglied: brotherkeeper
07.12.2009 um 09:29 Uhr
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?
Bitte warten ..
Mitglied: brotherkeeper
07.12.2009 um 09:37 Uhr
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?
01.
> Sub GotoNextCell() 
02.
>     Dim NextLine As Long 
03.
>     NextLine = ActiveCell.End(xlDown).Row - 2 
04.
>     If Not IsEmpty(ActiveCell) And NextLine > ActiveCell.Row Then 
05.
>         Cells(NextLine, ActiveCell.Column).Select 
06.
>     End If 
07.
> End Sub 
08.
> 
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)?
01.
> Sub GotoActiveCell() 
02.
>     Application.Goto Reference:=ActiveCell 
03.
> End Sub 
04.
> 
Springt zur Aktiven Zelle.

Gruß Dieter


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

LG

B
Bitte warten ..
Mitglied: brotherkeeper
07.12.2009 um 09:44 Uhr
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?
Bitte warten ..
Mitglied: 76109
07.12.2009 um 12:00 Uhr
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:
01.
Sub GotoLastCell() 
02.
    Dim NextLine As Long 
03.
    NextLine = Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row - 2 
04.
    If NextLine > 1 Then Cells(NextLine, ActiveCell.Column).Select 
05.
End Sub
Gruß Dieter
Bitte warten ..
Mitglied: brotherkeeper
07.12.2009 um 12:23 Uhr
geht nun

ich danke dir vielmals

gruß

B
Bitte warten ..
Mitglied: 76109
07.12.2009 um 13:07 Uhr
Hallo brotherkeeper!

Boaaaah

In etwa so:
01.
	 
02.
Const ColCriteria1 = 1		'Spalte A, Spalte relativ zur 1. RngFilter-Spalte 
03.
Const ColCriteria2 = 3		'Spalte C, Spalte relativ zur 1. RngFilter-Spalte 
04.
 
05.
Const RngFilter = "A14:F47"		'Filterbereich, 1.Zeile (14) = Überschrift 
06.
 
07.
Private Sub FilteOn_Click() 
08.
    Dim Search1 As Variant, Search2 As Variant 
09.
     
10.
   'Search1 = "abcd"		'Suchbegriff 1 = Vorgabe Text 
11.
   'Search2 = "efgh"		'Suchbegriff 2 = Vorgabe Text 
12.
     
13.
   'Search1 = Date			'Suchbegriff 1 = Vorgabe heutiges Datum 
14.
   'Search2 = CDate("07.12.2009")	'Suchbegriff 2 = Vorgabe irgendein Datum 
15.
     
16.
    Search1 = Range("AA1")		'Suchbegriff 1 = Vorgabe Inhalt Zelle AA1 
17.
    Search2 = Range("AB1")		'Suchbegriff 1 = Vorgabe Inhalt Zelle AB1 
18.
     
19.
    ActiveSheet.AutoFilterMode = False 
20.
     
21.
    If IsEmpty(Search1) Or Search1 = "" Then Exit Sub 
22.
     
23.
    Cells(Range(RngFilter).Row, Range(RngFilter).Column).Select 
24.
     
25.
    Range(RngFilter).AutoFilter Field:=ColCriteria1, Criteria1:=Search1 
26.
     
27.
    If IsEmpty(Search2) Or Search2 = "" Then Exit Sub 
28.
   
29.
    Range(RngFilter).AutoFilter Field:=ColCriteria2, Criteria1:=Search2 
30.
 End Sub
Gruß Dieter

[edit] geändert [/edit]

PS. Der 2. Suchbegriff ist immer noch optional
Bitte warten ..
Mitglied: Biber
07.12.2009 um 13:37 Uhr
<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

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

Grüße
Biber
</OT>
Bitte warten ..
Mitglied: brotherkeeper
07.12.2009 um 13:48 Uhr
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"...

...

immer noch lust zu helfen?

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

Danke

B
Bitte warten ..
Mitglied: 76109
07.12.2009 um 15:07 Uhr
Hallo brotherkeeper!

Oh Herr vergib ihnen, denn sie wissen nicht was tun

Also, das defininiert den Filterbereich:
01.
Const ColCriteria1 = 1          'Spalte A - Entspricht der Spalte für Suchbegriff 1 
02.
Const ColCriteria2 = 3          'Spalte C - Entspricht der Spalte für Suchbegriff 2 
03.
 
04.
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
Bitte warten ..
Mitglied: brotherkeeper
07.12.2009 um 15:29 Uhr
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

Bitte warten ..
Mitglied: 76109
07.12.2009 um 16:11 Uhr
Hallo brotherkeeper!

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

Gruß Dieter
Bitte warten ..
Mitglied: 76109
07.12.2009 um 16:21 Uhr
Hallo brotherkeeper!

Jetzt hast Du mich aber reingelegt

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
Bitte warten ..
Mitglied: brotherkeeper
08.12.2009 um 08:55 Uhr
entschuldige...

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...


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
Bitte warten ..
Mitglied: 76109
08.12.2009 um 09:34 Uhr
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 mir

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 benutzen

Gruß Dieter

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

<$code>
Dein Code
<$/code>
ohne Dollarzeichen
Bitte warten ..
Mitglied: brotherkeeper
08.12.2009 um 11:29 Uhr
Also........................................................



ich habe jetzt einmal das probiert:

01.
Const ColCriteria1 = 1      'Spalte N (todo-datum) 
02.
Const ColCriteria2 = 2      'Spalte O (status) 
03.
 
04.
Const RngFilter = "N14:O10000"     'Filterbereich, 1.Zeile (14) = Überschrift 
05.
 
06.
Sub SucheHück() 
07.
    Dim Search1 As Variant, Search2 As Variant 
08.
     
09.
   'Search1 = Date        'Suchbegriff 1 = Vorgabe Text 
10.
   'Search2 = "offen"        'Suchbegriff 2 = Vorgabe Text 
11.
     
12.
   'Search1 = Date          'Suchbegriff 1 = Vorgabe heutiges Datum 
13.
   'Search2 = CDate("07.12.2009")   'Suchbegriff 2 = Vorgabe irgendein Datum 
14.
     
15.
    Search1 = Range("I2")      'Suchbegriff 1 = Vorgabe Inhalt Zelle Heute-funktion 
16.
    Search2 = Range("T15")      'Suchbegriff 1 = Vorgabe Inhalt Zelle Status-Offen 
17.
     
18.
    ActiveSheet.AutoFilterMode = False 
19.
     
20.
    If IsEmpty(Search1) Or Search1 = "" Then Exit Sub 
21.
     
22.
    Cells(Range(RngFilter).Row, Range(RngFilter).Column).Select 
23.
     
24.
    Range(RngFilter).AutoFilter Field:=ColCriteria1, Criteria1:=Search1 
25.
     
26.
    If IsEmpty(Search2) Or Search2 = "" Then Exit Sub 
27.
   
28.
    Range(RngFilter).AutoFilter Field:=ColCriteria2, Criteria1:=Search2 
29.
 End Sub
als auch
01.
Const ColCriteria1 = 1      'Spalte N (todo-datum) 
02.
Const ColCriteria2 = 2      'Spalte O (status) 
03.
 
04.
Const RngFilter = "N14:O10000"     'Filterbereich, 1.Zeile (14) = Überschrift 
05.
 
06.
Sub SucheHück() 
07.
    Dim Search1 As Variant, Search2 As Variant 
08.
     
09.
   Search1 = Date        'Suchbegriff 1 = Vorgabe Text 
10.
   Search2 = "offen"        'Suchbegriff 2 = Vorgabe Text 
11.
     
12.
   'Search1 = Date          'Suchbegriff 1 = Vorgabe heutiges Datum 
13.
   'Search2 = CDate("07.12.2009")   'Suchbegriff 2 = Vorgabe irgendein Datum 
14.
     
15.
    'Search1 = Range("I2")      'Suchbegriff 1 = Vorgabe Inhalt Zelle Heute-funktion 
16.
    'Search2 = Range("T15")      'Suchbegriff 1 = Vorgabe Inhalt Zelle Status-Offen 
17.
     
18.
    ActiveSheet.AutoFilterMode = False 
19.
     
20.
    If IsEmpty(Search1) Or Search1 = "" Then Exit Sub 
21.
     
22.
    Cells(Range(RngFilter).Row, Range(RngFilter).Column).Select 
23.
     
24.
    Range(RngFilter).AutoFilter Field:=ColCriteria1, Criteria1:=Search1 
25.
     
26.
    If IsEmpty(Search2) Or Search2 = "" Then Exit Sub 
27.
   
28.
    Range(RngFilter).AutoFilter Field:=ColCriteria2, Criteria1:=Search2 
29.
 End Sub
es läuft nicht! irgendwie zweifel ich langsam an wenig an mir...
Bitte warten ..
Mitglied: 76109
08.12.2009 um 12:09 Uhr
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
Bitte warten ..
Mitglied: 76109
08.12.2009 um 12:14 Uhr
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
Bitte warten ..
Mitglied: brotherkeeper
08.12.2009 um 13:28 Uhr
leider auch nicht...

auch nicht mit nur eiem suchbegriff...
01.
Const ColCriteria1 = 1      'Spalte N (todo-datum) 
02.
Const ColCriteria2 = 2      'Spalte O (status) 
03.
 
04.
Const RngFilter = "N14:O10000"     'Filterbereich, 1.Zeile (14) = Überschrift 
05.
 
06.
Sub SucheHück() 
07.
    Dim Search1 As Variant, Search2 As Variant 
08.
     
09.
   Search1 = "08.12.2009"        'Suchbegriff 1 = Vorgabe Text 
10.
   'Search2 = "offen"        'Suchbegriff 2 = Vorgabe Text 
11.
     
12.
   'Search1 = Date          'Suchbegriff 1 = Vorgabe heutiges Datum 
13.
   'Search2 = CDate("07.12.2009")   'Suchbegriff 2 = Vorgabe irgendein Datum 
14.
     
15.
    'Search1 = Range("I2")      'Suchbegriff 1 = Vorgabe Inhalt Zelle Heute-funktion 
16.
    'Search2 = Range("T15")      'Suchbegriff 1 = Vorgabe Inhalt Zelle Status-Offen 
17.
     
18.
    ActiveSheet.AutoFilterMode = False 
19.
     
20.
    If IsEmpty(Search1) Or Search1 = "" Then Exit Sub 
21.
     
22.
    Cells(Range(RngFilter).Row, Range(RngFilter).Column).Select 
23.
     
24.
    Range(RngFilter).AutoFilter Field:=ColCriteria1, Criteria1:=Search1 
25.
     
26.
    If IsEmpty(Search2) Or Search2 = "" Then Exit Sub 
27.
   
28.
    Range(RngFilter).AutoFilter Field:=ColCriteria2, Criteria1:=Search2 
29.
 End Sub
grrrrrrrrrrr....
Bitte warten ..
Mitglied: 76109
08.12.2009 um 13:42 Uhr
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 weg
Bitte warten ..
Mitglied: brotherkeeper
08.12.2009, aktualisiert 18.10.2012
das makro ist in einem Modul welches ich mit einem button verknüpft habe....

PS: Ich kann warten...



noch etwas (@biber: bitte den neue Eintrag von heute somit wieder löschen da mit dieser frage jetzt hier sonst doppelt. Vielen lieben Dank!!! http://www.administrator.de/forum/per-vba-die-zeilenh%c3%b6he-optimiere ...):
01.
Private Sub Workbook_Open() 
02.
Sheets(1).Range("S8").Value = Sheets(1).Range("S8").Value + 1 
03.
'Gruß() 
04.
    MsgBox "Viel Spaß!" 
05.
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...
Bitte warten ..
Mitglied: 76109
08.12.2009, aktualisiert 18.10.2012
Hallo brotherkeeper, hallo Biber!

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

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!!! http://www.administrator.de/forum/per-vba-die-zeilenh%c3%b6he-optimiere ...):
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:
01.
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.
01.
> Private Sub Workbook_Open() 
02.
> Sheets(1).Range("S8").Value = Sheets(1).Range("S8").Value + 1 
03.
> MsgBox "Viel Spaß!" 
04.
> End Sub 
05.
> 
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
Bitte warten ..
Mitglied: brotherkeeper
09.12.2009, aktualisiert 18.10.2012
Zitat von 76109:
Hallo brotherkeeper, hallo Biber!

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



> 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!!! http://www.administrator.de/forum/per-vba-die-zeilenh%c3%b6he-optimiere ...):
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...

> 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:
01.
> Sheets(1).Range("G15").WrapText = True 
02.
> 
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.
>
01.
> > Private Sub Workbook_Open() 
02.
> > Sheets(1).Range("S8").Value = Sheets(1).Range("S8").Value + 1 
03.
> > MsgBox "Viel Spaß!" 
04.
> > End Sub 
05.
> > 
> 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
Bitte warten ..
Mitglied: 76109
09.12.2009 um 09:37 Uhr
Hallo Manuel!

Zitat von brotherkeeper:
>ZWICK!....
Mhm, war wohl doch kein Traum
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 SP3
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 posten
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
Bitte warten ..
Mitglied: brotherkeeper
09.12.2009 um 10:13 Uhr
schau dir mal den code an...

Problem war die formatierung...

01.
Const RngFilter = "M14:O10000"     'Filterbereich, 1.Zeile (14) = Überschrift 
02.
 
03.
Sub SucheHückUpdate() 
04.
    Dim Search1 As String 
05.
    Dim Search2 As String 
06.
     
07.
    Search1 = Mid(Now, 1, 10) 
08.
    Search2 = "offen" 
09.
        
10.
    If IsEmpty(Search1) Or Search1 = "" _ 
11.
        Or IsEmpty(Search2) Or Search2 = "" Then Exit Sub 
12.
     
13.
    ActiveSheet.AutoFilterMode = False 
14.
     
15.
    Range(RngFilter).Select 
16.
    Selection.AutoFilter Field:=1, Criteria1:=CDate(Search1) 
17.
    Selection.AutoFilter Field:=3, Criteria1:=Search2 
18.
 End Sub
ich kriege da nur die markierung noch nicht weg...
Bitte warten ..
Mitglied: 76109
09.12.2009 um 10:49 Uhr
Hallo Manuel!

ich kriege da nur die markierung noch nicht weg...
Kein Wunder, wenn Du entgegen meines Codes den ganzen Bereich markierst:
01.
Range(RngFilter).Select 
markiert den Bereich "M14:O10000"
01.
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
Bitte warten ..
Mitglied: brotherkeeper
09.12.2009 um 11:16 Uhr
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!
Bitte warten ..
Mitglied: 76109
09.12.2009 um 11:42 Uhr
Hallo Manuel!

Häh?

Nein, ersetze die Codezeile 15
01.
Range(RngFilter).Select 
durch diese Codezeile
01.
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
Bitte warten ..
Mitglied: brotherkeeper
09.12.2009 um 12:50 Uhr
habe es mit dem befehl

Range("A1").Select

gelöst...

juhu, ich konnte auch mal was... ))
Bitte warten ..
Mitglied: 76109
09.12.2009 um 13:07 Uhr
Hallo Manuel!

Na dann, herzlichen Glückwunsch

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

Gruß Dieter
Bitte warten ..
Mitglied: brotherkeeper
09.12.2009 um 14:29 Uhr
Zitat von 76109:
Hallo Manuel!

Na dann, herzlichen Glückwunsch

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

Gruß Dieter

)

kommt aber bestimmt noch was...
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Microsoft Office
gelöst Excel Makro - Button "Springe zu Zeile mit heutigem Datum" (5)

Frage von hannsgmaulwurf zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...

Windows Server
Suche passender Treiber (12)

Frage von stolli zum Thema Windows Server ...

Peripheriegeräte
Wlan stört Funkmaus (11)

Frage von Falaffel zum Thema Peripheriegeräte ...

Peripheriegeräte
gelöst USB Festplatte verliert Laufwerksbuchstabe (9)

Frage von cese4321 zum Thema Peripheriegeräte ...