Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1140to1144
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

find match in ausgeblendeten Zeilen

find match in ausgeblendeten Zeilen
chris
Hallo Spazialisten,
ich bekomme es einfach nicht hin und bitte euch um Hilfe.
Ich habe eine Datei.In dieser sind 2 Sheets.
In dieser stehen in sheet 1 Nummen die auch in Sheet zwei auftauchen.
Ich blende jetzt alle Zeilen aus in Sheet 2
ws2.Rows("6:50000").EntireRow.Hidden = True
und ich will jetzt das ein makro die ganzen Daten in Sheet 1 Spalte 1 durchgeht und mit alle treffer die er
mir in Sheet 2 findet einblendet.
Das ganze möche ich mit union machen da mir es sonst zu lange dauert jede einzelne Zeile einzublenden.
wie mach ich das ? Problem ist das ich ja find nicht nehmen kann da find ja in ausgeblendeten zeilen nicht findet.
Könnt ihr mir helfen ?
Danke im voraus gruß Chris
AW: find match in ausgeblendeten Zeilen
22.02.2010 11:14:41
Beverly
Hi Chris,
die Werte kommen nur einmalig vor oder können sie auch mehrmalig auftreten? Wenn sie nur einmalig vorkommen könnte man es so lösen:
Sub Einblenden()
Dim loZeile As Long
Dim raBereich As Range
Dim loVorhanden As Long
For loZeile = 1 To 26
On Error Resume Next
loVorhanden = Application.Match(Cells(loZeile, 1), Worksheets("Tabelle2").Columns(1), 0) _
On Error GoTo 0
If loVorhanden  0 Then Worksheets("Tabelle2").Rows(loVorhanden).Hidden = False
loVorhanden = 0
Next loZeile
End Sub



Anzeige
AW:Wichtig erst mit Union zusammen fassen.Wie ?
22.02.2010 11:19:51
chris
Hallo karin sieht ganz gut aus.
Nur wie kann ich die Bereiche erst mit Union zusammenfassen ?
So das dann alle auf einmal ausgeblendet werden ?
Weil ich habte sehr viele tausende zeilen bei denen dauert es dann zu lange.
Deshalb erst mit union zusammenfassen und dann alle auf einmal ausblenden ?
Wie bekomme ich das hin ?
Danke
AW: AW:Wichtig erst mit Union zusammen fassen.Wie ?
22.02.2010 11:54:37
Beverly
Hi Chris,
Sub Einblenden()
Dim loZeile As Long
Dim raBereich As Range
Dim loVorhanden As Long
For loZeile = 1 To 26
On Error Resume Next
loVorhanden = Application.Match(Cells(loZeile, 1), Worksheets("Tabelle2").Columns(1), 0) _
_
On Error GoTo 0
If loVorhanden  0 Then
If raBereich Is Nothing Then
Set raBereich = Worksheets("Tabelle2").Rows(loVorhanden)
Else
Set raBereich = Union(raBereich, Worksheets("Tabelle2").Rows(loVorhanden))
End If
End If
loVorhanden = 0
Next loZeile
If Not raBereich Is Nothing Then raBereich.EntireRow.Hidden = False
Set raBereich = Nothing
End Sub

Ich denke jedoch, dass es mit Union auch nicht schneller geht als jede Zeile einzeln einzublenden - zumindest ist das der Fall beim Löschen von Zeilen. Kannst du ja mal testen ;-))


Anzeige
AW: AW:Wichtig erst mit Union zusammen fassen.Wie ?
22.02.2010 12:05:08
chris
Danke Karin.
AW: find match in ausgeblendeten Zeilen
22.02.2010 11:25:44
Peter
Hallo Chris,
versuch es so:
Option Explicit
Public Sub Einblenden()
Dim WkSh_1   As Worksheet
Dim WkSh_2   As Worksheet
Dim lZeile   As Long
Dim rEinbld  As Range
Application.ScreenUpdating = False
Set WkSh_1 = ThisWorkbook.Worksheets("Tabelle1")
Set WkSh_2 = ThisWorkbook.Worksheets("Tabelle2")
WkSh_2.Rows("6:50000").EntireRow.Hidden = True
With WkSh_1
For lZeile = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
If Not IsError(Application.Match(.Cells(lZeile, 1), _
Range(WkSh_2.Cells(6, 1), WkSh_2.Cells(Rows.Count, 1)), 0)) Then
If rEinbld Is Nothing Then
Set rEinbld = WkSh_2.Rows(lZeile)
Else
Set rEinbld = Union(rEinbld, WkSh_2.Rows(lZeile))
End If
End If
Next lZeile
End With
If Not rEinbld Is Nothing Then rEinbld.EntireRow.Hidden = False
Application.ScreenUpdating = True
End Sub

Gruß Peter
Anzeige
AW: find match in ausgeblendeten Zeilen
22.02.2010 11:46:30
chris
Hallo Peter funktioniert klasse.
So wollte ich es auch.Nur 1 fehler.
ich bekomme es auch nicht hin :(
und zwar wird im Sheet WkSh_2 die zeile 6 immer nicht mit eingeblendet.
Obwohl zeile 6 in diesem sheet gleich ist wie zeile 7 im anderen sheet.
Kannst du noch helfen ?
danke
AW: Code so OK ?
22.02.2010 11:52:02
chris
Hallo Peter ich bin es noch einmal.
habe den Code so umgebaut.
Kann man ihn so lassen oder macht er so Müll ?
Option Explicit
Sub Show_Technische()
Dim WkSh_1 As Worksheet
Dim WkSh_2 As Worksheet
Dim lZeile   As Long
Dim rEinbld  As Range
Application.ScreenUpdating = False
Set WkSh_1 = ws_1
Set WkSh_2 = ws_2
WkSh_2.Rows("6:50000").EntireRow.Hidden = True
With WkSh_1
For lZeile = 7 To .Cells(Rows.Count, 1).End(xlUp).Row
If Not IsError(Application.Match(.Cells(lZeile, 1), Range(WkSh_2.Cells(6, 1), WkSh_2. _
Cells(Rows.Count, 1)), 0)) Then
If rEinbld Is Nothing Then
Set rEinbld = WkSh_2.Rows(lZeile - 1)
lZeile = lZeile - 1
Else
Set rEinbld = Union(rEinbld, WkSh_2.Rows(lZeile))
End If
End If
Next lZeile
End With
If Not rEinbld Is Nothing Then rEinbld.EntireRow.Hidden = False
Application.ScreenUpdating = True
End Sub

Danke dir !
Anzeige
AW: noch ein kleiner zusatz ? Möglich ?
22.02.2010 11:54:54
chris
Hallo,
es gibt noch einen kleinen Wunsch den ich bis jetzt vergessen habe.
In WKS2 soll die Zeile nur eingeblendet werden wenn der Suchtreffer also die Zeile in WKS1 sichtbar ist.
wenn Sie ausgeblendet ist durch Autofilter oder ausblendet soll Sie nicht eingeblendet werden in Tabelle WKS2
geht das?
AW: Union mit anderen Kriterien Bitte erneut um Hi
22.02.2010 21:33:25
chris
Hallo Peter,
ich habe heute morgen von dir eine gute Antwort bekommen.
Scheinbar kennst Du dich gut mit union aus.
Könntest Du mir vielleicht noch einmal helfen ?
Wäre klasse. !
Folgendes Fall.Ich weiß nur leider nicht wie ich das mit union lösen kann.geht das überhaupt ?
Ich habe als Beispiel wieder 2 Sheets.
In sheet 1 stehen Werte (Strings) und in Sheet 2 zum Beispiel auch in Spalte A auch.
Jetzt soll eine schleife alle Werte in Sheet1 Spalte A durchgehen und diese in Sheet2 Spalte A suchen.
Wird der Wert in Sheet 2 Spalte A gefunden soll eine Zeile darunter diese Zeile erneut eingefügt werden.
Alsp wird der Wert in Row 5 gefunden soll row 5 kopiert werden und es soll eine Zeile eingefügt werden.
So das dann Zeile 6 eine kopie von zeile 5 ist.
Mit dem kleinen Unterschied das die Werte in zeile 6 Spalte D bis Spalte K leer sind.
Also ich meine das nicht die komplette zeile 5 kopiert wird sondern eben nur bestimmte werte der Zeile 5.
Der rest also Spalte D bis Spalte K sollen leer sein.
Wie geht das ? Der suchbegriff kann in Sheet 2 öfter als 1 mal vorkommen.
An jeder Zeile in der der suchbegriff gefunden wird soll eine kopie dieser Zeile gemacht werden und darunter eingefügt werden.Bis auf eben die Werte in Spalte D bis K.
Jetzt meine Frage ist so etwas auch mit union machbar oder muss ich dafür eine ganz normale schleife schreiben die zeile für Zeile durchsucht und eine Kopie erstellt wenn der Suchbegriff gefunden ?
ich hoffe es ist verständlich was ich möchte.
Vielen Dank im voraus !!
Und schönen Abend !
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige