Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1200to1204
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

Suchfunktion soll alle Werte finden

Suchfunktion soll alle Werte finden
Kai
Hallo liebes Forum,
meine SuFu soll alle Werte "Fehlt" des gewählten Sheets finden und dann den Wert 5 Spalten links davon in ein anders Sheet kopieren.
Leider klappt das immer nur mit dem ersten Wert? Kann mir jemand sagen was an meiner Schleife nicht stimmt?
[code]
Sub Suche_Fehlt()
Set suchsheet = ActiveSheet
strFind = "Fehlt"
Set rng = ActiveSheet.Cells.Find(strFind, Lookat:=xlWhole, LookIn:=xlFormulas)
If Not rng Is Nothing Then
strAddress = rng.Address
Do
Application.Goto rng, False
ActiveCell.Offset(0, -5).Select
Selection.Copy
Sheets("Auswertung").Select
ErsteFreieZelle = Range("A36").End(xlDown).Row + 1
Range("A" & ErsteFreieZelle).Select
ActiveSheet.Paste
suchsheet.Select
If rng.Address = strAddress Then Exit Do
Loop
End If
End Sub
[/code]
Gruß Kai
AW: Suchfunktion soll alle Werte finden
10.02.2011 16:01:09
Tino
Hallo,
kannst mal so versuchen.
Sub Suche_Fehlt()
Dim rng As Range, tmprng As Range
Dim strErste As String, strFind As String
Dim suchsheet As Worksheet
Dim lngRow As Long

Set suchsheet = ActiveSheet
strFind = "Fehlt"

Set tmprng = suchsheet.Cells.Find(strFind, Lookat:=xlWhole, LookIn:=xlValues, SearchDirection:=xlNext)
If Not tmprng Is Nothing Then 'was gefunden? 
    strErste = tmprng.Address 'Zelle merken 
    Do
       If tmprng.Column > 5 Then 'nur Spalte größer 5 
        If Not rng Is Nothing Then
            Set rng = Union(rng, tmprng.Offset(0, -5))
        Else
            Set rng = tmprng.Offset(0, -5)
        End If
       End If
       Set tmprng = suchsheet.Cells.FindNext(tmprng) 'nächste suchen 
    Loop While strErste <> tmprng.Address 'wieder bei der ersten, Schleife verlassen 
End If

If Not rng Is Nothing Then
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
            With Sheets("Auswertung") 'kopieren nach Tabelle 
                lngRow = .Cells(.Rows.Count, 1).End(xlUp).Row 'letzte belegte Zelle in A 
                For Each rng In rng 'Schleife über alle gefundenen Zellen 
                    lngRow = lngRow + 1
                    rng.Copy .Cells(lngRow, 1) 'kopieren 
                Next
            End With
        .ScreenUpdating = True
        .EnableEvents = True
    End With
End If

End Sub
Gruß Tino
Anzeige
AW: Suchfunktion soll alle Werte finden
10.02.2011 16:15:22
Kai
Hallo Tino,
danke!!! Klappt, aber wie sage ich dem Makro das er in der ersten Zelle ab A36 einfügen soll?
Gruß Kai
AW: Suchfunktion soll alle Werte finden
10.02.2011 16:18:32
Tino
Hallo,
versuch mal und schreibe nach der Zeile
lngRow = .Cells(.Rows.Count, 1).End(xlUp).Row
noch dieser dazu
If lngRow 
Gruß Tino
AW: Suchfunktion soll alle Werte finden
10.02.2011 16:24:42
Kai
Hallo Tino,
also lngRow = 68 kommt raus, obwohl z.B. Zeile 2 auch leer ist. Das versteh ich nicht ganz.
Wichtig für mich ist das er am A36 einfügt deswegen hab ich das vorher so gehabt
[code]
ErsteFreieZelle = Range("A36").End(xlDown).Row + 1 '
Range("A" & ErsteFreieZelle).Select
ActiveSheet.Paste
[/code]
Aber wie bekomme ich sowas dann in so eine schöne Schleife wie die deinige? Oder gibts nen andern Weg?
Gruß Kai
Anzeige
AW: Suchfunktion soll alle Werte finden
10.02.2011 16:31:41
Reinhard
Hallo Kai,
was hat denn der Inhalt von Zeile 2 damit zu tun? Du willst doch erst ab A36 einfügen, oder doch nicht?
Gruß
Reinhard
AW: Suchfunktion soll alle Werte finden
10.02.2011 16:33:49
Kai
Hallo Reinhard,
ja soll er, aber ich verstehe nich wenn ich ihm die erste leere Zeile in A suchen soll er mir auf 68 geht und nicht auf 2...
Gruß
Kai
AW: Suchfunktion soll alle Werte finden
10.02.2011 16:42:11
Reinhard
der Satz ist mir unklar:-(
Der entsprechende Teilcode von Tino liefert dir von unten kommend, die unterste gefüllte Zelle bzw deren Zeilennummer in A.
Mit der Zusatzzeile von Tino wird daraus die 35 wenn das Ergebnis bisher unter 26 lag.
Was genau möchtest du?
Gruß
Reinhard
Anzeige
AW: Suchfunktion soll alle Werte finden
10.02.2011 16:50:00
Kai
Es soll mir von oben die erste leere Zelle gebracht werden, aber erst ab Zeile 36. Weil zwischen 1 und 35 habe ich mehrere leere.
Der Einfügebereich is quasi Zeile 37 bis 58.
Jetzt verstehe ich auch warum 68, denn 68 is die erste leere von unten und nich 2.
Danke
Gruß Kai
AW: Suchfunktion soll alle Werte finden
10.02.2011 17:21:54
Reinhard
Hallo Kai,
ich verstehe wodran es hängt beim beidseitigem Verständnis.
Zum einen, du sagts gleichzeitig in die erste Zelle ab a36 das wäre dann a37 weil in A1:a35 was stehen könnte oder nicht, was ist dann mit a36?
Ansonsten ginge ich davon aus A36 bis nach unten ist leer.
WEnn nun A36:A50 alle gefüllt sind, so ist dier erste freie Zelle A51, soll die ermittelt werden, unabhängig davon daß bis zur untersten belegten Zelle in A, z.B. die A100 noch ab und zu Werte stehen?
Ich hoffe ich konnte mich verständlich machen.
Gruß
reinhard
Anzeige
AW: Suchfunktion soll alle Werte finden
10.02.2011 17:22:30
Tino
Hallo,
dann mach es doch einfach so wie Du es benötigst.
With Sheets("Auswertung") 'kopieren nach Tabelle
For Each rng In rng 'Schleife über alle gefundenen Zellen
lngRow = .Range("A36").End(xlDown).Row + 1
rng.Copy .Cells(lngRow, 1) 'kopieren
Next
End With

Dadurch könnten andere Werte überschrieben werden.
Gruß Tino
den letzten Satz streichen ;-) oT.
10.02.2011 17:23:22
Tino
In welcher Farbe? Matt oder glänzend? :-)) owT
10.02.2011 18:04:15
Reinhard


auf alle Fällen in einem hellen schwarz ;-) oT.
10.02.2011 18:58:48
Tino
AW: auf alle Fällen in einem hellen schwarz ;-) oT.
13.02.2011 18:58:44
Reinhard
Hallo Tino,
ich hab sowieso ein Farbsehvermögen, da kann ich bei Farben sowieso nicht mitreden.
Aber per Zufall lag mal irgendwo vor Jahren ein dickes Buch mit Bildern rum. Irgendwas für Drucker, Künstler, Maler, was weiß ich.
Ich hab da mal so geblättert. Da waren viele Bilder von "Schwarz", die waren alle schon Schwarz aber sogar ich konnte erkennen, es waren Unterschiede im "Schwarz".
Jetzt nicht nur matt oder glänzende.
Viele davon hätte ich als tiefschwarz bezeichnet, aber ich sah die sind aus mir unerklärlichen Gründen doch unterschiedlich.
Also beschreib mal bitte "helles Schwarz" exakt *lächel*
Ich glaube, so Drucker o.ä. haben sowieso kein rgb Farben, eher das andere farbsysteme wo ich den namen grad nicht weiß, jedenfalls gab es schon Anfragen in einem Excelbrett, wie jmd. deer nur rgb-Bilder hat, diese umwandeln kann in das andere farbsystem damit seine Druckerei was damit anfangen kann.
Mir völlig unklar warum da eine Druckerei nicht entsprechende Software hat.
Gruß
Reinhard
Anzeige
Danke euch!
10.02.2011 17:42:26
Kai
Hallo Tino, hallo Reinhard.
Danke! so funktioniert es!
Gruß Kai

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige