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!?
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!?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
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
44 Kommentare
Neuester Kommentar
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.
Die Konstante für den Such- und Filterbereich inklusive Überschrift entsprechend anpassen.
Gruß Dieter
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
Keine Ahnung was Du jetzt meinst Wie, wer, wo und was festlegen???????
Hallo brotherkeeper!
Das ergibt für mich zwar keinen Sinn, aber wenn's nur ein Begriff sein soll, dann in etwa so:
Gruß Dieter
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
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?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...
Hallo brotherkeeper!
Hier nur als Filterfunktion mit 2 Suchkriterien.
Du kannst also 2 Suchbegriffe durch Semilikon getrennt eingeben, wobei der 2. Suchbegriff zudem noch optional ist.
Gruß Dieter
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
Moin brotherkeeper,
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 alsModerator Mensch doch mal kurz zur Besinnlichkeit und zum Nachdenken aufrufen..
Grüße
Biber
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.@Biber: war deiner meinung nach etwas falsch an "HILFE?!" oder was meinst du mit deinem kommentar?
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
Grüße
Biber
Hallo brotherkeeper!
Springt in der Spalte, die gerade selektiert ist, in die drittletzte Zeile (-2).
Springt zur Aktiven Zelle.
Gruß Dieter
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?
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
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)?
scrollbalken mich in der tabelle umgeschaut habe)?
Sub GotoActiveCell()
Application.Goto Reference:=ActiveCell
End Sub
Gruß Dieter
Hallo brotherkeeper!
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:
Gruß Dieter
Zitat von @brotherkeeper:
Springt in der Spalte, die gerade selektiert ist, in die drittletzte Zeile (-2).
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.Springt in der Spalte, die gerade selektiert ist, in die drittletzte Zeile (-2).
geht bei mir nich... da bewegt sich gar nichts...
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
Hallo brotherkeeper!
Boaaaah
In etwa so:
Gruß Dieter
[edit] geändert [/edit]
PS. Der 2. Suchbegriff ist immer noch optional
Boaaaah
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 optional
<OT>
Moin brotherkeeper,
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
Grüße
Biber
</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.Hey Biber
... kann ich nur sagen, daß es nicht so gemeint war wie du es aufgenommen hast...
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...
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>
Hallo brotherkeeper!
Oh Herr vergib ihnen, denn sie wissen nicht was tun
Also, das defininiert den Filterbereich:
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
Oh Herr vergib ihnen, denn sie wissen nicht was tun
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
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
Hallo brotherkeeper!
Du scheints da nichts falsch zu machen. Im Moment verstehe ich's auch noch nicht?
Gruß Dieter
Du scheints da nichts falsch zu machen. Im Moment verstehe ich's auch noch nicht?
Gruß Dieter
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
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
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=7wenn 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?
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
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
Const RngFilter = "N14:O10000" sieht mehr eher wie eine Null (0) aus anstatt nem O
Edit, ist wohl doch ein "O"
Gruß Dieter
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
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
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
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
Hallo brotherkeeper, hallo Biber!
Ich glaube, irgendwie bin ich im falschen Film. Ist auch keiner da, der mich mal zwickt
Füge am Anfang vom Filter-Code eine MsgBox mit sinnlosem text ein und starte das Makro. MsgBox macht sich zum testen immer gut.
Aber solche Dinge kannst Du doch sehr einfach mit der Makroaufzeichnung herausbekommen?
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
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!!! Per VBA die Zeilenhöhe optimieren):
Auch von mir ein großes Dankeschön:'(noch etwas (@biber: bitte den neue Eintrag von heute somit wieder löschen da mit dieser frage jetzt hier sonst doppelt.
Vielen lieben Dank!!! Per VBA die Zeilenhöhe optimieren):
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: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?
Sheets(1).Range("G15").WrapText = True
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.eventuel per doppelklick wieder temporär beschreibbar machen)... Hat jemand hier ein idee wie...?
> Private Sub Workbook_Open()
> Sheets(1).Range("S8").Value = Sheets(1).Range("S8").Value + 1
> MsgBox "Viel Spaß!"
> End Sub
>
Oder Du hast die falsche bzw. eine uralte Excel-Version. Welche Excel-Version verwendest Du?
Gruß Dieter
Hallo Manuel!
Mhm, war wohl doch kein Traum
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.
Gruß Dieter
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 SP3Ein 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 postenWenn 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
Hallo Manuel!
markiert den Bereich "M14:O10000"
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
ich kriege da nur die markierung noch nicht weg...
Kein Wunder, wenn Du entgegen meines Codes den ganzen Bereich markierst:Range(RngFilter).Select
Cells(Range(RngFilter).Row, Range(RngFilter).Column).Select
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
Hallo Manuel!
Häh?
Nein, ersetze die Codezeile 15
durch diese Codezeile
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
Häh?
Nein, ersetze die Codezeile 15
Range(RngFilter).Select
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
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
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