Microsoft Excel

Herbers Excel/VBA-Archiv

Zeile nach Wert durchsuchen


Betrifft: Zeile nach Wert durchsuchen von: Pascal
Geschrieben am: 01.10.2019 13:22:14

Hallo zusammen
Mein erster Eintrag. Ich habe schon viel von diesem Forum profitiert, danke erstmal dafür.

Ich habe folgendes Problem: Ich habe eine Makro welches meine Daten wunderbar sortiert etc. Resultat ist das file im Anhang. Als letztes i-Tüpfelchen müsste ich nun (in diese file) alle Zeilen von K-AG nach p, sp, stp und gw durchsuchen. Wenn p, sp, stp und gw vorkommen, müsste in der Spalte H derselben Zeile der Tabellenheader (Zeile 2 ) der Spalte in welcher das p, sp, stp und gw vorkommt stehen. Bei mehrfachen p, sp, stp und gw am besten mit ; getrennt (muss aber nicht sein). Im Anhang 2 ein file wie das Endresultat optimalerweise ausschaut...

Wenn hier jemand Hilfestellung leisen könnte wäre das grossartig!

132308.xlsm
132309.xlsm

Liebe Grüsse, Pascal

  

Betrifft: AW: Zeile nach Wert durchsuchen von: Pascal
Geschrieben am: 01.10.2019 13:24:42

https://www.herber.de/bbs/user/132308.xlsm
https://www.herber.de/bbs/user/132309.xlsm


  

Betrifft: AW: Zeile nach Wert durchsuchen von: fcs
Geschrieben am: 01.10.2019 15:44:00

Hallo Pascal,

konnte deine Datei hier jetzt nicht hochladen - systembedingt.

Ein MAkro sieht etwa wie folgt aus.

LG
Franz

Sub SpalteH_ausfuellen()
    Dim Zeile_H As Long
    Dim Zeile As Long
    Dim strH As String
    Dim Spalte As Long, Spa1 As Long, Spa2 As Long
    Dim wks As Worksheet
    Dim arrSuch, iSuch As Integer
    Dim StatusCalc As Long
    
    
    Set wks = ActiveSheet
    
    arrSuch = Array("p", "sp", "stp", "gw") 'Array mit zu suchenden Werten
    Zeile_H = 2 'Zeile mit Spalten-Header
    Spa1 = 11 'Spalte K - 1. zu durchsuchende Spalte
    Spa2 = 33 'Spalte AG - letzte zu durchsuchende Spalte
    
    With Application
        .ScreenUpdating = False
        StatusCalc = .Calculation
        .Calculation = xlCalculationManual
    End With
    
    With wks
        For Zeile = Zeile_H + 1 To .UsedRange.Row + .UsedRange.Rows.Count - 1
            strH = ""
            For Spalte = Spa1 To Spa2
                For iSuch = LBound(arrSuch) To UBound(arrSuch)
                    If .Cells(Zeile, Spalte).Value = arrSuch(iSuch) Then
                        If strH = "" Then
                            strH = .Cells(Zeile_H, Spalte).Value
                        Else
                            strH = strH & ";" & .Cells(Zeile_H, Spalte).Value
                        End If
                    End If
                Next iSuch
            Next Spalte
            
            'Ergebnis in Spalte H eintragen
            If strH = "" Then
                .Cells(Zeile, 8).ClearContents
            Else
                .Cells(Zeile, 8).Value = strH
            End If
            
        Next Zeile
    End With
    
    With Application
        .ScreenUpdating = True
        .Calculation = StatusCalc
    End With

End Sub



  

Betrifft: AW: Zeile nach Wert durchsuchen von: Pascal
Geschrieben am: 02.10.2019 15:33:50

Super! Vielen Dank, Franz


Beiträge aus dem Excel-Forum zum Thema "Zeile nach Wert durchsuchen"