Eine Exeldatei jede einzelne Zeile nach einem Buchstaben durchsuchen

  • Excel

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von FloFuchs.

    Eine Exeldatei jede einzelne Zeile nach einem Buchstaben durchsuchen

    Hallo Freunde,

    ich möchte aus einem Urlaubsplan (Zeile 1 besteht aus „Datums“ Zellen),
    jede Zeile einzeln durchlaufen lassen, und an der Stelle an der, der Buchstabe u gefunden wird, das Datum(Zeile 1) in der Zelle x+41 KopierenM SO dass am Ende jeder Urlaubstag ausgelesen werden kann.

    Kann mir jemand helfen? Ich habe es wie folgt, versucht aber.............


    Dim x, y As Integer

    ThisWorkbook.Activate
    Worksheets("Mrz").Activate
    Dim Urlaub As Variant

    For x = 2 To 32
    For y = 4 To 100

    Urlaub = Cells(y, x).Value

    Urlaub = Cells.Find("u", LookIn:=xlValues)

    If Urlaub = "u" Then

    Worksheets("Mrz").Cells(1, x).Select
    Selection.Copy
    Worksheets("Mrz").Cells(y, x + 41).Select
    Selection.PasteSpecial xlPasteValues
    Else:
    Urlaub = ""
    x = x + 1

    End If
    Next x
    Next y
    End Sub



    Am Ende will ich alle Urlaubstage in einer Zelle zusammenfassen

    Vielen Dank im Voraus
    Erstmal brauchst du die ganzen .activate und .select und copy nicht; Siehe dazu http://www.online-excel.de/excel/singsel_vba.php?f=78
    Dann definiere deinen Suchbereich als Range, den kannst du dann mit for..each durchlaufen.
    etwas in der art:

    Visual Basic-Quellcode

    1. Option Explicit
    2. Dim wsSuchTabelle As Worksheet
    3. Dim rngSuche As Range
    4. Dim strSuchBegriff As String
    5. Set wsSuchTabelle = ActiveSheet 'Wenn du das als Makro speicherst kannst du dann das ganze auf jedem Tabellenblatt aufrufen
    6. strSuchBegriff = "Was auch immer du suchen willst!"
    7. For Each rngSuche In wsSuchTabelle.Range("A1:C2") 'Dein Suchbereich anpassen
    8. If rngSuche = strSuchBegriff Then wsSuchTabelle.Cells(rngSuche.Row, DeineZielSpalte) = strSuchBegriff
    9. Next rngSuche

    musste noch etwas an deine Bedürfnisse anpassen...
    Hallo FloFuchs

    für Deine wertvolle Tips bedanke ich mich sehr,

    es ist mir gelungen Dein Beispilcod anzupassen, aber.....

    weiter habe ich versucht alle einzelne Tage in einer Zelle zu bringen,

    mit Join(), ich hänge weiter daran, dass Join() von den leeren Zellen mir das

    Trennzeichen ungewolt mitbringt. Akso ich möchte keine Trennzeichen von den leeren "" Zellen.



    Gruß
    Ich bin mir nicht sicher, daß ich wirklich verstehe was du willst :D
    Wie genau sieht Dein Code mit dem Join denn aus?
    Ich habe damit nicht gearbeitet bisher.
    Ansonsten einfach in die for each Schleife mit rein packen...

    Visual Basic-Quellcode

    1. For Each rngSuche In wsSuchTabelle.Range("A1:C2") 'Dein Suchbereich anpassen
    2. If rngSuche = strSuchBegriff Then
    3. wsSuchTabelle.Cells(rngSuche.Row, DeineZielSpalte) = strSuchBegriff
    4. DeineZielJoinZelle = DeineZielJoinZelle & rngSuche
    5. end if
    6. Next rngSuche