Autor
|
Thema: integriertes Suchfeld (22533 mal gelesen)
|
Ben222 Mitglied Dipl.-Ing. Maschinenbau (FH)
Beiträge: 99 Registriert: 04.10.2005 Windows 2000/ XP OneSpaceDisigner BeckerCAD 4.0 PRO-E
|
erstellt am: 24. Sep. 2009 08:36 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, ich habe da mal eine Frage.... Ist es möglich ein Suchfeld in ein Excelfile (2007) zu integrieren?? Und wenn ja - wie Sollte so wie auf den Bilder funktionieren.... Also, ich geb den Suchbegriff in einem definierten Feld ein und die Suche blendet dann nur noch die Zeilen ein, in denen dieser Begriff vorkommt. Wäre echt super, wenn das irgendwie machbar wäre Ben ------------------ "Und jetzt, ohne blumige Worte zu verschwenden, ohne gross aufzutragen: Hier kommt er, der Fahnder der Stille, der Beschützer italienischer Jungfräulichkeit, die Exekutive unseres Allmächtigen, der große, der einzige Sir Beeeeeeeeeeeeennn222!" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 24. Sep. 2009 08:54 <-- editieren / zitieren --> Unities abgeben: Nur für Ben222
|
Ben222 Mitglied Dipl.-Ing. Maschinenbau (FH)
Beiträge: 99 Registriert: 04.10.2005 Windows 2000/ XP OneSpaceDisigner BeckerCAD 4.0 PRO-E
|
erstellt am: 24. Sep. 2009 09:04 <-- editieren / zitieren --> Unities abgeben:
hallo, naja, würde es gerne als makro haben hab schon etwas gesucht - bisher aber noch nichts gefunden.... problem ist.... bin der totale excel-inder
------------------ "Und jetzt, ohne blumige Worte zu verschwenden, ohne gross aufzutragen: Hier kommt er, der Fahnder der Stille, der Beschützer italienischer Jungfräulichkeit, die Exekutive unseres Allmächtigen, der große, der einzige Sir Beeeeeeeeeeeeennn222!" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Beverly Mitglied Dipl.-Geologe (Rentner)
Beiträge: 394 Registriert: 11.08.2007
|
erstellt am: 24. Sep. 2009 09:32 <-- editieren / zitieren --> Unities abgeben: Nur für Ben222
Hi, eine Möglichkeit (funktioniert nicht nur mit Excel2007): Code: Private Sub Worksheet_Change(ByVal Target As Range) Dim loZeile As Long If Target.Address = "$C$3" Then Application.ScreenUpdating = False ActiveSheet.UsedRange.Rows.Hidden = False If Target <> "" Then For loZeile = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row To 6 Step -1 Cells(loZeile, 1).EntireRow.Hidden = Application.CountIf(Rows(loZeile), Target) = 0 Next loZeile End If Application.ScreenUpdating = True End If End Sub
------------------ Bis später, Karin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
arossbach Mitglied Ingenieur Masch.bau
Beiträge: 1181 Registriert: 13.06.2001 Wildfire 3 M230 PDMLink 9.1 simufact.forming 10.1.1 Windows XP Professional 2002 Service Pack 2 Dell Precision WorkStation 390 3,25 GB RAM Grafik: Quadro FX 3500
|
erstellt am: 24. Sep. 2009 09:56 <-- editieren / zitieren --> Unities abgeben: Nur für Ben222
'Hallo Ben, 'ja, so etwas finde ich auch manchmal praktisch, besonders bei mehreren Tabelleblättern. Wenn Du Dir einen Button auf Deine Tabelle legst und MultiSeek damit ausführst ist das schon recht komfortabel. 'StandardModule: basMain 'über mehrere Tabellenblätter suchen: Sub MultiSeek() Dim wks As Worksheet Dim rng As Range Dim sAddress As String, sFind As String sFind = InputBox("gesuchtes Wort eingeben:", "Suchen", "Suchbegriff") For Each wks In Worksheets Set rng = wks.Cells.Find( _ what:=sFind, _ lookat:=xlWhole, _ LookIn:=xlFormulas) If Not rng Is Nothing Then sAddress = rng.Address Do Application.Goto rng, True If MsgBox( _ prompt:="Weiter", _ Buttons:=vbYesNo + vbQuestion _ ) = vbNo Then Exit Sub Set rng = Cells.FindNext(after:=ActiveCell) If rng.Address = sAddress Then Exit Do Loop End If Next wks MsgBox prompt:="Nichts gefunden!" End Sub 'Gruß '-Axel-
------------------ -Axel- Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ben222 Mitglied Dipl.-Ing. Maschinenbau (FH)
Beiträge: 99 Registriert: 04.10.2005 Windows 2000/ XP OneSpaceDisigner BeckerCAD 4.0 PRO-E
|
erstellt am: 24. Sep. 2009 10:23 <-- editieren / zitieren --> Unities abgeben:
danke erstmal für die antworten ok, das mit dem multiseek ist schonmal nicht so schlecht... aber leider nicht so richtig das was ich suche.... es sollte halt so sein wie oben beschrieben.... also die oberen zeilen sind fest.... erst ab dem schwarzen strich (siehe bild a1) sollten die zeilen ein/ausgeblendet werden. denke das das ein supi makro wäre, was bestimmt vielen weiterhelfen würde... ------------------ "Und jetzt, ohne blumige Worte zu verschwenden, ohne gross aufzutragen: Hier kommt er, der Fahnder der Stille, der Beschützer italienischer Jungfräulichkeit, die Exekutive unseres Allmächtigen, der große, der einzige Sir Beeeeeeeeeeeeennn222!" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ben222 Mitglied Dipl.-Ing. Maschinenbau (FH)
Beiträge: 99 Registriert: 04.10.2005 Windows 2000/ XP OneSpaceDisigner BeckerCAD 4.0 PRO-E
|
erstellt am: 24. Sep. 2009 10:33 <-- editieren / zitieren --> Unities abgeben:
@karin: oook..... und wie und wo soll ich das jetzt wann wohin machen bitte ein bissle mehr erklärung.... bin halt ned sooo fit wenn es um das thema geht
------------------ "Und jetzt, ohne blumige Worte zu verschwenden, ohne gross aufzutragen: Hier kommt er, der Fahnder der Stille, der Beschützer italienischer Jungfräulichkeit, die Exekutive unseres Allmächtigen, der große, der einzige Sir Beeeeeeeeeeeeennn222!" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Beverly Mitglied Dipl.-Geologe (Rentner)
Beiträge: 394 Registriert: 11.08.2007
|
erstellt am: 24. Sep. 2009 10:33 <-- editieren / zitieren --> Unities abgeben: Nur für Ben222
Hi Ben, der von mit gepostete Code funktioniert ohne Button - mache einen Rechtsklick auf den Tabellenreiter und kopiere ihn in das Codefenster. Sobald du in C3 etwas einträgst werden die entsprechenden Zeilen "gefiltert". ------------------ Bis später, Karin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ben222 Mitglied Dipl.-Ing. Maschinenbau (FH)
Beiträge: 99 Registriert: 04.10.2005 Windows 2000/ XP OneSpaceDisigner BeckerCAD 4.0 PRO-E
|
erstellt am: 24. Sep. 2009 10:38 <-- editieren / zitieren --> Unities abgeben:
hi karin, ok, hab ich so gemacht.... code mit rechtsklick auf tabellenreiter eingefügt... in c3 was reingeschrieben und enter gedrückt... ...es passiert nix ------------------ "Und jetzt, ohne blumige Worte zu verschwenden, ohne gross aufzutragen: Hier kommt er, der Fahnder der Stille, der Beschützer italienischer Jungfräulichkeit, die Exekutive unseres Allmächtigen, der große, der einzige Sir Beeeeeeeeeeeeennn222!" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 24. Sep. 2009 10:45 <-- editieren / zitieren --> Unities abgeben: Nur für Ben222
|
Ben222 Mitglied Dipl.-Ing. Maschinenbau (FH)
Beiträge: 99 Registriert: 04.10.2005 Windows 2000/ XP OneSpaceDisigner BeckerCAD 4.0 PRO-E
|
erstellt am: 24. Sep. 2009 10:49 <-- editieren / zitieren --> Unities abgeben:
ja, habe es als .xlsm gespeichert hab nochmal ein bild angehängt... so sieht es aus.... in c3 steht hans.... jetzt sollten doch eigentlich zeile 10 und 17 ein- und die restlichen ausgeblendet werden, oder??? ------------------ "Und jetzt, ohne blumige Worte zu verschwenden, ohne gross aufzutragen: Hier kommt er, der Fahnder der Stille, der Beschützer italienischer Jungfräulichkeit, die Exekutive unseres Allmächtigen, der große, der einzige Sir Beeeeeeeeeeeeennn222!" [Diese Nachricht wurde von Ben222 am 24. Sep. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Beverly Mitglied Dipl.-Geologe (Rentner)
Beiträge: 394 Registriert: 11.08.2007
|
erstellt am: 24. Sep. 2009 10:54 <-- editieren / zitieren --> Unities abgeben: Nur für Ben222
|
Ben222 Mitglied Dipl.-Ing. Maschinenbau (FH)
Beiträge: 99 Registriert: 04.10.2005 Windows 2000/ XP OneSpaceDisigner BeckerCAD 4.0 PRO-E
|
erstellt am: 24. Sep. 2009 11:21 <-- editieren / zitieren --> Unities abgeben:
supi... ok so weit klappt es jetzt auch bei mir :-) jetzt hab ich des mal in mein "richtiges" file eingebaut... tja da ist das ober eck fest von a bis d und von 1 bis 12.... hab dein makro angepasst... sitzt jetzt auf c4... sucht aber nur noch in den spalten a bis d?? in dem file wo du mir geschickt hast... hab ich das auch mal simuliert... also das mit den feststehenden zeilen und spalten... hier geht es noch ich probier mal noch ein bissle...
warst aber echt ne super hilfe... dankeschön!!!
------------------ "Und jetzt, ohne blumige Worte zu verschwenden, ohne gross aufzutragen: Hier kommt er, der Fahnder der Stille, der Beschützer italienischer Jungfräulichkeit, die Exekutive unseres Allmächtigen, der große, der einzige Sir Beeeeeeeeeeeeennn222!" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Beverly Mitglied Dipl.-Geologe (Rentner)
Beiträge: 394 Registriert: 11.08.2007
|
erstellt am: 24. Sep. 2009 11:29 <-- editieren / zitieren --> Unities abgeben: Nur für Ben222
|
Ben222 Mitglied Dipl.-Ing. Maschinenbau (FH)
Beiträge: 99 Registriert: 04.10.2005 Windows 2000/ XP OneSpaceDisigner BeckerCAD 4.0 PRO-E
|
erstellt am: 24. Sep. 2009 12:43 <-- editieren / zitieren --> Unities abgeben:
das ist eine gute frage?? keine ahnung such ich aber nach irgendwas, was zwischen a und d liegt funktioniert es.... ausserhalb also z.b in h finder er nichts und zeigt auch nichts... komisch ------------------ "Und jetzt, ohne blumige Worte zu verschwenden, ohne gross aufzutragen: Hier kommt er, der Fahnder der Stille, der Beschützer italienischer Jungfräulichkeit, die Exekutive unseres Allmächtigen, der große, der einzige Sir Beeeeeeeeeeeeennn222!" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ben222 Mitglied Dipl.-Ing. Maschinenbau (FH)
Beiträge: 99 Registriert: 04.10.2005 Windows 2000/ XP OneSpaceDisigner BeckerCAD 4.0 PRO-E
|
erstellt am: 24. Sep. 2009 12:46 <-- editieren / zitieren --> Unities abgeben:
vielleicht gibtb es probleme mit anderen makros? nee - hab alle makros geschlöscht... geht trotzdem nicht
------------------ "Und jetzt, ohne blumige Worte zu verschwenden, ohne gross aufzutragen: Hier kommt er, der Fahnder der Stille, der Beschützer italienischer Jungfräulichkeit, die Exekutive unseres Allmächtigen, der große, der einzige Sir Beeeeeeeeeeeeennn222!" [Diese Nachricht wurde von Ben222 am 24. Sep. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Beverly Mitglied Dipl.-Geologe (Rentner)
Beiträge: 394 Registriert: 11.08.2007
|
erstellt am: 24. Sep. 2009 12:51 <-- editieren / zitieren --> Unities abgeben: Nur für Ben222
Hi Ben, dann solltest du vielleicht mal deine Mappe hochladen, denn es nützt ja nichts, wenn es bei mir funktioniert und ich nicht nachvollziehen kann, weshalb es bei dir nicht geht, weil ich deine Mappe ja nicht kenne. ------------------ Bis später, Karin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ben222 Mitglied Dipl.-Ing. Maschinenbau (FH)
Beiträge: 99 Registriert: 04.10.2005 Windows 2000/ XP OneSpaceDisigner BeckerCAD 4.0 PRO-E
|
erstellt am: 24. Sep. 2009 13:00 <-- editieren / zitieren --> Unities abgeben:
will die eigentlich nicht veröffentlichen kann ich sie dir per mail schicken?? ------------------ "Und jetzt, ohne blumige Worte zu verschwenden, ohne gross aufzutragen: Hier kommt er, der Fahnder der Stille, der Beschützer italienischer Jungfräulichkeit, die Exekutive unseres Allmächtigen, der große, der einzige Sir Beeeeeeeeeeeeennn222!" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
arossbach Mitglied Ingenieur Masch.bau
Beiträge: 1181 Registriert: 13.06.2001
|
erstellt am: 24. Sep. 2009 13:15 <-- editieren / zitieren --> Unities abgeben: Nur für Ben222
|
Ben222 Mitglied Dipl.-Ing. Maschinenbau (FH)
Beiträge: 99 Registriert: 04.10.2005 Windows 2000/ XP OneSpaceDisigner BeckerCAD 4.0 PRO-E
|
erstellt am: 24. Sep. 2009 13:32 <-- editieren / zitieren --> Unities abgeben:
HABS passt alles - vielen dank an alle!! vorallem aber an karin!!!!! danke!!!!!! ------------------ "Und jetzt, ohne blumige Worte zu verschwenden, ohne gross aufzutragen: Hier kommt er, der Fahnder der Stille, der Beschützer italienischer Jungfräulichkeit, die Exekutive unseres Allmächtigen, der große, der einzige Sir Beeeeeeeeeeeeennn222!" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
carsten-3m Mitglied Dipl.-Ing. Mbau (Produktmanagement, Patent- und Normwesen)
Beiträge: 950 Registriert: 08.05.2007 Excel 2010
|
erstellt am: 24. Sep. 2009 15:39 <-- editieren / zitieren --> Unities abgeben: Nur für Ben222
Äh... ja und? Wie ist denn nun die Lösung? "Ich habs" wird dem nächsten, der hier auf dem Brett sucht, bestimmt nicht sonderlich helfen können. Also, bitte kurz rückmelden wie, wo und was. Danke! ------------------ Seit Pro/E Version 1 dabei, auwei... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
arossbach Mitglied Ingenieur Masch.bau
Beiträge: 1181 Registriert: 13.06.2001
|
erstellt am: 24. Sep. 2009 16:40 <-- editieren / zitieren --> Unities abgeben: Nur für Ben222
|
Ben222 Mitglied Dipl.-Ing. Maschinenbau (FH)
Beiträge: 99 Registriert: 04.10.2005 Windows 2000/ XP OneSpaceDisigner BeckerCAD 4.0 PRO-E
|
erstellt am: 25. Sep. 2009 10:13 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen..... Naja - weis gar nicht ob ich das sagen kann *schäm* Bei all den Profis hier.... Ich musste "einfach" (da in einer Zelle oft mehr drin steht als ein wort) ein * vor und nach dem Suchwort einfügen... Tja - das wars auch schon... bin ich halt nicht gleich drauf gekommen, ansonsten hätte es sofort funktionier... So ist des halt als Totalahnungsloser Danke nochmal an alle!!
------------------ "Und jetzt, ohne blumige Worte zu verschwenden, ohne gross aufzutragen: Hier kommt er, der Fahnder der Stille, der Beschützer italienischer Jungfräulichkeit, die Exekutive unseres Allmächtigen, der große, der einzige Sir Beeeeeeeeeeeeennn222!" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied | |
mikey20333 Mitglied
Beiträge: 5 Registriert: 04.10.2012
|
erstellt am: 04. Okt. 2012 21:38 <-- editieren / zitieren --> Unities abgeben: Nur für Ben222
Hallo ich habe ein kleines Problem mit diesem Makro und zwar habe ich in mehrere Wörter in einer Zelle stehen. Bsp.: T-555 (danach mit alt Enter oder vielen leerzeichen das nächste plan usw. außerdem möchte ich das makro so anpassen das er nur einen bestimmten bereich in der Registerkarte suchen soll. bsp.: Nur in Zelle B11 bis B150 vielleicht kann mir da jemand weiterhelfen. danke lg mk
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
skyzem Mitglied
Beiträge: 400 Registriert: 30.08.2006 Win 7 Enterprise x64 Cornerstone 5.3.0.5 Minitab 16.2.1.0 Excel 2010 Notepad++ 6.3.1 Putty 0.63 Calc.exe
|
erstellt am: 05. Okt. 2012 08:22 <-- editieren / zitieren --> Unities abgeben: Nur für Ben222
Was wäre denn dein Vorschlag? Wenn es nicht wichtig ist, die Anzahl Leerzeichen zu behalten, würd ich diese durch alt+Enter ersetzen. Das erleichter die Suche schon ziemlich Dann könntest du in VBA mittels split() und ubound() Werte suchen und identifizieren. Z.b. so: Sub alt_enter_split() a = Split(Cells(1, 1).Value, Chr(10)) b = UBound(a) For i = 0 To b MsgBox a(i) Next End Sub Gruss ------------------ MfG skyzem
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Beverly Mitglied Dipl.-Geologe (Rentner)
Beiträge: 394 Registriert: 11.08.2007
|
erstellt am: 05. Okt. 2012 09:03 <-- editieren / zitieren --> Unities abgeben: Nur für Ben222
Hi, Code: Private Sub Worksheet_Change(ByVal Target As Range) Dim loZeile As Long If Target.Address = "$C$3" Then Application.ScreenUpdating = False If Target <> "" Then For loZeile = 150 To 11 Step -1 If InStr(Cells(loZeile, 2), Target) > 0 Then Rows(loZeile).Hidden = False Next loZeile End If Application.ScreenUpdating = True End If End Sub
------------------ Bis später, Karin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mikey20333 Mitglied
Beiträge: 5 Registriert: 04.10.2012
|
erstellt am: 05. Okt. 2012 19:38 <-- editieren / zitieren --> Unities abgeben: Nur für Ben222
Hi danke an alle habe gestern, noch ein weiteres Makro gefunden und das dann für meine Excel Liste angepasst. Ich weiß nicht ob ich den link hier posten darf aber ich versuchs mal http://www.office-loesung.de/ftopic353435_0_0_asc.php#2338805 das einzige was nicht funktioniert ist wenn ich den blattschutz aktiviere, dann funktioniert das makro nicht mehr
und ich weiß leider nicht wo ich den blattschutz ins makro einfügen soll. das geht ja angeblich mit protect und unprotect sheet. das funktioniert bei mir aber nicht. Ich habe die datei mit makro mal angehängt. hoffe das mir vielleicht jemand helfen kann. lg mk
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mikey20333 Mitglied
Beiträge: 5 Registriert: 04.10.2012
|
erstellt am: 07. Okt. 2012 20:23 <-- editieren / zitieren --> Unities abgeben: Nur für Ben222
hi hat niemand einen tip für mich habe auch schon mit dem call befehl was getestet nur leider bekomme ich immer wieder fehlermeldungen. habe mal folgendes getestet Sub Blattschutz_ein() Sheets("Tabelle1").Protect Password:="blau" End Sub Sub Blattschutz_aus() Sheets("Tabelle1").Unprotect Password:="blau" End Sub und dann mit dem call befehl Call BlattschutzAus lg mk
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mikey20333 Mitglied
Beiträge: 5 Registriert: 04.10.2012
|
erstellt am: 07. Okt. 2012 22:26 <-- editieren / zitieren --> Unities abgeben: Nur für Ben222
Hallo habe jetzt nach 3 h suche endlich mein makro eingefügt und auch so angepasst das alles funktioniert. ich würde es euch gerne hochladen jedoch kann leider keine datei anhängen, Vielleicht kann ich es auf einen anderem Weg bereitstellen, damit auch die anderen nutzer was davon haben. denn über den Anhang datei anhängen funktionierts nicht da wird nur alles als txt. datei hochgeladen und ich bekomme eine Fehlermeldung. lg mk das habe ich jetzt bei den Makros unter dem Punkt --> Diese Arbeitsmappe
Sub Blattschutz() Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets ws.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _ True, AllowFiltering:=True, Password:="1234" Next End Sub -------------------------------- Dann ein neus Modul einfügen und dann das hineinkopieren Option Explicit Type MySuchbegriffe_structure s_Suchbegriff As String l_Spalte As Long z_cnt As Long z() As Long End Type '#### A N P A S S E N ############### 'Definitionen der Suchfelder Public Const c_SUCHZEILE = 4 Public Const c_SUCHSPALTE_AB = 1 'entspricht Spalte A Public Const c_SUCHSPALTE_BIS = 64 'entspricht Spalte E 'erste Zeile mit Adressdaten Public Const c_ERSTEWERTEZEILE = 6 '#### A N P A S S E N ############### Public ws As Worksheet '***************************************************************** Function ZeilenMitSuchbegriffenAnzeigen( _ ws As Worksheet, _ f() As MySuchbegriffe_structure, _ f_cnt As Long) Dim l_ZeileMax As Long, x As Long, z As Long 'erstmal alle Zeilen ausblenden l_ZeileMax = ws.UsedRange.Row + ws.UsedRange.Rows.Count - 1 ws.Rows(c_ERSTEWERTEZEILE & ":" & l_ZeileMax).Hidden = True 'gemerkte Zeilen mit Fundort einblenden For x = 1 To f_cnt: For z = 1 To f(x).z_cnt: ws.Rows(f(x).z(z)).Hidden = False: Next z: Next x End Function '***************************************************************** Function SuchbegriffeFeststellen( _ ws As Worksheet, _ f() As MySuchbegriffe_structure, _ f_cnt As Long) Dim s_Suchbegriff As String, c As Long 'Alle Suchbegriffe feststellen f_cnt = 0: ReDim f(1 To 1) For c = c_SUCHSPALTE_AB To c_SUCHSPALTE_BIS s_Suchbegriff = Trim(ws.Cells(c_SUCHZEILE, c).Value) 'Suchbegriff nicht leer ? If s_Suchbegriff <> "" Then 'Suchbegriff und Spalte merken f_cnt = f_cnt + 1: ReDim Preserve f(1 To f_cnt) With f(f_cnt) .s_Suchbegriff = s_Suchbegriff .l_Spalte = c 'Zeilenmerker initialisieren .z_cnt = 0: ReDim .z(1 To 1) End With End If Next End Function '***************************************************************** Function ZeilenMitSuchbegriffSuchen( _ ws As Worksheet, _ f() As MySuchbegriffe_structure, _ f_cnt As Long) As Boolean Dim r As Range, Zelle As Range Dim l_ZeileMax As Long, s_ersteAdresse As String, x As Long Dim b_MindestensEineZeileRelevant As Boolean b_MindestensEineZeileRelevant = False 'Zeilen mit Suchbegriff suchen l_ZeileMax = ws.UsedRange.Row + ws.UsedRange.Rows.Count - 1 'für alle Suchbegriffe For x = 1 To f_cnt With f(x) Set r = ws.Range( _ ws.Cells(c_ERSTEWERTEZEILE, .l_Spalte), _ ws.Cells(l_ZeileMax, .l_Spalte)) Set Zelle = r.Find( _ What:=.s_Suchbegriff, _ After:=ws.Cells(l_ZeileMax, .l_Spalte), _ LookIn:=xlValues, _ lookat:=xlPart) If Not Zelle Is Nothing Then s_ersteAdresse = Zelle.Address Do 'Zeile zum Suchbegriff merken .z_cnt = .z_cnt + 1: ReDim Preserve .z(1 To .z_cnt) .z(.z_cnt) = Zelle.Row 'Rückgabekennung setzen b_MindestensEineZeileRelevant = True 'nächsten Fundort suchen Set Zelle = r.FindNext(Zelle) Loop While Not Zelle Is Nothing And Zelle.Address <> s_ersteAdresse End If End With Next Set r = Nothing: Set Zelle = Nothing ZeilenMitSuchbegriffSuchen = b_MindestensEineZeileRelevant End Function -------------------- danach unter den Excel Objekten d.h. wie auch immer dein Worksheet bsp. Tabelle 1 oder sonst was auch heißen mag diesen Code einfügen.
Option Explicit Private Sub Worksheet_Change(ByVal Target As Excel.Range) ActiveSheet.Unprotect Password:="1234" Dim f_Suchbegriff() As MySuchbegriffe_structure, f_Suchbegriff_cnt As Long Dim s_Blattname As String, ws As Worksheet s_Blattname = Target.Parent.Name Set ws = Worksheets(s_Blattname) 'Ist etwas in der Suchzeile geändert worden ? If Target.Rows.Count = 1 And Target.Row = c_SUCHZEILE Then 'Sind die Spalten der Suchfelder betroffen ? If Target.Column >= c_SUCHSPALTE_AB And Target.Column <= c_SUCHSPALTE_BIS Then 'Bildschirmupdate abschalten Application.ScreenUpdating = False 'erstmal alle Zeilen einblenden Cells.EntireRow.Hidden = False 'vorhandene Suchbegriffe feststellen Call SuchbegriffeFeststellen(ws, f_Suchbegriff, f_Suchbegriff_cnt) 'kein Suchbegriff vorhanden -> ENDE If f_Suchbegriff_cnt = 0 Then GoTo AUFRAEUMEN 'Zeilen mit Suchbegriff suchen If ZeilenMitSuchbegriffSuchen(ws, f_Suchbegriff, f_Suchbegriff_cnt) Then 'mindestens Suchbegriff in einer Zeile gefunden 'gemerkte Zeilen mit Fundort einblenden Call ZeilenMitSuchbegriffenAnzeigen(ws, f_Suchbegriff, f_Suchbegriff_cnt) Else 'keinen Suchbegriff in einer Zeile gefunden '--> alle Zeilen eingeblendet lassen End If End If End If AUFRAEUMEN: Set ws = Nothing 'Bildschirmupdate anschalten Application.ScreenUpdating = True ActiveSheet.Protect Password:="1234", DrawingObjects:=False, Contents:=True, Scenarios:= _ True, AllowFiltering:=True End Sub -------
ich würde ja gerne screenshots hochladen, aber leider klappt es bei mir nicht, hoffe das jemand freue daran hat. Ich habe das aus einem anderem Forum geändert oben ist der link dazu ich hoffe das ist kein problem. lg mk
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
lsit07 Mitglied
Beiträge: 2 Registriert: 19.08.2013
|
erstellt am: 19. Aug. 2013 09:44 <-- editieren / zitieren --> Unities abgeben: Nur für Ben222
Dim loZeile As Long If Target.Address = "$C$3" Then Application.ScreenUpdating = False ActiveSheet.UsedRange.Rows.Hidden = False If Target <> "" Then For loZeile = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row To 6 Step -1 Cells(loZeile, 1).EntireRow.Hidden = Application.CountIf(Rows(loZeile), Target) = 0 Next loZeile End If Application.ScreenUpdating = True End If End Sub --> Wie kann man hier einen Platzhalter für das Suchfeld einfügen. Bin noch ein Laie und suche Hilfe...
Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3358 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 19. Aug. 2013 10:21 <-- editieren / zitieren --> Unities abgeben: Nur für Ben222
Servus, hier mein senf 1. In Spalte A alle Felder die durchsucht werden mit & verbinden in A11 =B11&C11&D11... A12=B12&C12&D12... etc. (ich fang immer mit A10 Titel und A11 Werte ab) 2. in Zelle A1 kommt das Suchwort rein 3. in die Tabelle das Makro 4. Spalte A Filter setzen Sobald in A1 ein Wert eingetragen/geändert wird wird der filter gesetzt. Platzhalter "*" z.B. "Test*15" Code: Option Explicit Private Sub Worksheet_Change(ByVal Target As Range)If Target.Address(0, 0) <> "A1" Then Exit Sub Rows(1).AutoFilter Field:=1, _ Criteria1:="*" & Range("A1").Value & "*" End Sub
------------------ <----- Bitte Systeminfo eintragen, warum siehst du hier. "Warum Einfach es geht auch kompliziert". Schöne Grüsse aus der Steiermark Bernd P. Sport ist Mord Rekorde: Scalelist>11727, Fehler>34365, Layerfilter>XXXX
[Diese Nachricht wurde von Bernd P am 19. Aug. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
lsit07 Mitglied
Beiträge: 2 Registriert: 19.08.2013
|
erstellt am: 20. Aug. 2013 08:56 <-- editieren / zitieren --> Unities abgeben: Nur für Ben222
Danke für die schnelle Antwort. Nur weíß ich nicht, wo ich deinen Code in meinen noch überführen kann. Das ist mein kompletter Code: Private Sub Worksheet_Change(ByVal Target As Range) ' ' Makro1 Makro ' ' Tastenkombination: Strg+l ' Dim loZeile As Long If Target.Address = "$C$3" Then Application.ScreenUpdating = False ActiveSheet.UsedRange.Rows.Hidden = False If Target <> "" Then For loZeile = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row To 6 Step -1 Cells(loZeile, 1).EntireRow.Hidden = Application.CountIf(Rows(loZeile), Target) = 0 Next loZeile End If Application.ScreenUpdating = True End If End Sub Der funktioniert auch soweit mit der Suchfunktion. Nur wollte ich, dass im Feld C3 bei der Suche nicht nur explizit das Wort gesucht wird, was eingeben wird, weil so manche Felder, die noch angezeigt werden sollen, nicht angezeitgt werden. Der Code soll für ein Glossar dienen. Danke schon mal im Voraus Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
asze Mitglied
Beiträge: 40 Registriert: 05.01.2010 Catia V5 R20
|
erstellt am: 29. Aug. 2013 14:56 <-- editieren / zitieren --> Unities abgeben: Nur für Ben222
Hallo, Setze anstelle dem "=" in (If Target.Address = "$C$3" Then) ein "Like" (ohne Gänsefüßchen) Bei der Engabe dann mit * arbeiten. Dann müsste es klappen. mfg [Diese Nachricht wurde von asze am 30. Aug. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mikey20333 Mitglied
Beiträge: 5 Registriert: 04.10.2012
|
erstellt am: 29. Aug. 2013 22:14 <-- editieren / zitieren --> Unities abgeben: Nur für Ben222
|
maba92 Mitglied
Beiträge: 2 Registriert: 19.09.2013
|
erstellt am: 19. Sep. 2013 18:31 <-- editieren / zitieren --> Unities abgeben: Nur für Ben222
Hey Leute, ich brauche ein wenig Hilfe: da ich mich nicht mit den Excel-Makros auskenne und hier scheinbar ein paar echte kenner sind hoffe ich hier auf eine schnelle Lösung meines Problems Folgendes: ich habe eine Excel-Tabelle mit rund 200 Einträgen, die alle teilweise auch gruppiert sind in kategorien und den Einzelteilen von einigen fertigen Produkten entsprechen. Nun möchte ich eine Suchzelle erzeugen, in der ich quasi die Artikelnummer des fertigen Produktes eingeben kann und mir dann eine Liste mit den kompletten Einzelteilen des Fertigprodukts aufgezeigt werden, jedoch auch nicht nur ein Wert sondern zeilen mit 5 verschiedenen Werten(A:F).. quasi genauso wie es mit dem Filter möglich ist nur ohne diesen Filter und mit Suchzeile. Nur leider weiß ich nicht wie man das mit dem Suchfeld machen soll und da ich auch nicht wirklich so den Plan von Makros habe würde ich mich über eine schnelle Antwort freuen Ist ziemlich dringend :/ ps: Ich arbeite mit Excel 2007 und die Einzelteile haben nicht die gleiche Artikelnummer wie das fertige Produkt (evtl. in Listen einteilen vorher?) ich weiß es nicht, vielen dank schonmal mit freundlichen grüßen Maba [Diese Nachricht wurde von maba92 am 19. Sep. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3358 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 20. Sep. 2013 07:23 <-- editieren / zitieren --> Unities abgeben: Nur für Ben222
|
maba92 Mitglied
Beiträge: 2 Registriert: 19.09.2013
|
erstellt am: 20. Sep. 2013 19:21 <-- editieren / zitieren --> Unities abgeben: Nur für Ben222
Ich habe mal schnell eine Tabelle angefertigt,da ich die richtige Tabelle im Moment nicht zur Verfügung habe Also ich möchte in diesem Beispiel in C4 ein Suchfeld haben, in dem ich dann z.B. die Artikelnummer 501( also vom Produkt 2) eingeben kann, und mir dann ab der 7 Zeile die Einzelteile, die dort quasi verbaut worden sind, angezeigt werden. Also zum Beispiel ab Zeile 7: Art-nr | Bezeichnung | Zeit | Einzelteile 505 | Einzelteil 3 | 3 | 2 508 | Einzelteil 6 | 0,9 | 1 510 | Einzelteil 8 | 12 | 4 usw halt,je nachdem wieviele verschiedene Teile dadrin verbaut sind. Und sowas möchte ich halt in diesem Fall für alle 3 Produkte haben. Und die nächste Frage wäre dann halt wie ich die Einzelteile kennzeichnen kann,damit die bei dem jeweiligen Produkt angezeigt werden. Ich habe da irgendwie an Listen gedacht , aber ich bin halt wirklich noch ziemlich neu was das Thema angeht :/ es ist zwar möglich in einer neuen spalte "gehört zu..." zu schreiben aber vlt gibt es ja eine elegantere Lösung PS: achja wäre auch cool wenn da ein wenig zu was erklärt wird,falls das son makro programm wird,da ich lernwillig bin Vielen Dank schonmal Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 24. Sep. 2013 10:40 <-- editieren / zitieren --> Unities abgeben: Nur für Ben222
Hi Maba92, beim Drüberlesen entdecke ich recht deutlich, dass Deine Anforderungen eher in Richtung Datenbank als in Richtung Tabellenkalkulation weisen. Wie auch immer: Mit einem gewissen Aufwand und - möglicherweise - einigen Einschränkungen lässt sich das (auch) in Excel lösen. Allerdings weigere ich mich, .pngs zu verarbeiten. Wie Bernd P schreibt: Beispielmappe, das erleichtert die Unterstützung. [Edit: Namenskorrektur wegen Beitragsverwechslung /Edit] [Diese Nachricht wurde von Paulchen am 24. Sep. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |