Thema Datum  Von Nutzer Rating
Antwort
Rot Gefundene Werte anzeigen
13.11.2017 08:12:05 Axel
NotSolved
13.11.2017 16:15:43 Gast46933
NotSolved

Ansicht des Beitrags:
Von:
Axel
Datum:
13.11.2017 08:12:05
Views:
938
Rating: Antwort:
  Ja
Thema:
Gefundene Werte anzeigen

Hallo,

ich habe hier einen Code, der in einer Arbeitsmappe nach einem oder zwei Werten suchen kann.

Alles das was ich wollte funktioniert auch, nur hätte ich jetzt gerne das der Wert auch angezeigt wird

in der (Spalte/Zelle) in der der Wert gefunden worden ist.

hat da jemand eine Idee und könnte mir helfen.

 

Gruß

Axel

 

 

 

Sub Suchen_und_Anzeigen_neu()
    Dim Meldung         As Byte, Pos        As Byte
    Dim Schleife        As Byte, y          As Byte
    Dim Begriff, Suchen()                   As Variant
    Dim Bereich                             As Range
    Dim n%, x%, xZelle%, yZelle%
    Dim xTabelle$(), Adresse$(), xWorkbook$(), Text$
    Dim arrWkb As Variant, varWkb, wkb As Workbook
    Dim wksAnzeige As Worksheet
    
    
    ' Suchbegriff eingeben
    Begriff = InputBox _
    ("Bitte den zu suchenden Wert eingeben." & vbCrLf & _
     "ENTER ohne Wert = Abbruch", "S U C H M O D U S")
    If Begriff = "" Then Exit Sub
    
    Pos = InStr(Begriff, "+")
    If Pos Then
        ReDim Suchen(2)
        Suchen(1) = Left(Begriff, Pos - 1)
        Suchen(2) = Right(Begriff, Len(Begriff) - Pos)
        Schleife = 2
    Else
        ReDim Suchen(1)
        Suchen(1) = Begriff
        Schleife = 1
    End If
    
    x = 1 'Zähler für gefundene Zellen
    
DateiAuswahl:
    'zu durchsuchende Datei(en) auswählen
    arrWkb = Application.GetOpenFilename( _
            Filefilter:="Excel (*.xls;*.xlsx;*.xlsm),*.xls;*.xlsx;*.xlsm", _
            Title:="Bitte zu durchsuchende Datei(en) auswählen", _
            MultiSelect:=True)
    If Not IsArray(arrWkb) Then Exit Sub
    
    Application.ScreenUpdating = False
    
    ' Eigentlicher Suchvorgang (in allen Tabellenblättern)
    For Each varWkb In arrWkb
        Set wkb = Workbooks.Open(Filename:=varWkb, ReadOnly:=True)
        For y = 1 To Schleife
          For n = 1 To wkb.Sheets.Count
          
          ' Letzte Zelle des Bereiches ermitteln. Diese Zelle wird als Startzelle für
          ' die Suche deffiniert, da Suche nach dieser Zelle, also in erster Zelle
          ' des Bereiches beginnt.
          'Bereich festlegen
            Set Bereich = wkb.Worksheets(n).UsedRange
          
            With wkb.Worksheets(n).Range(Bereich.Address)
              xZelle = .Columns(.Columns.Count).Column
              yZelle = .Rows(.Rows.Count).Row
            End With
            With wkb.Sheets(n).Range(Bereich.Address)
              Set c = .Find(Suchen(y), After:=Cells(yZelle, xZelle), LookIn:=xlValues)
              If Not c Is Nothing Then
                  ErsteAdresse = c.Address
                  Do
                      ReDim Preserve Adresse(x): ReDim Preserve xTabelle(x)
                      ReDim Preserve xWorkbook(x)
                      xWorkbook(x) = wkb.Name
                      xTabelle(x) = wkb.Sheets(n).Name
                      Adresse(x) = c.Address(RowAbsolute:=False, ColumnAbsolute:=False)
                      Set c = .FindNext(c)
                      x = x + 1
                  Loop While Not c Is Nothing And c.Address <> ErsteAdresse
              End If
            End With
          Next n
        Next y
        wkb.Close savechanges:=False
    Next varWkb

    Application.ScreenUpdating = True
    
    If MsgBox("Weitere Dateien nach dem Suchbegriff """ & Begriff _
        & """ durchsuchen?", vbYesNo + vbQuestion, "S U C H M O D U S") = vbYes Then _
        GoTo DateiAuswahl
    
' Die Anzahl der gefundenen Werte ist (x - 1), wenn keiner
' gefunden wurde dann ist x = 1
    Select Case x
    Case 1
        Meldung = MsgBox("Es wurde kein übereinstimmender Wert gefunden", _
        vbOKOnly, "G E F U N D E N E   W E R T E")
        Exit Sub
    Case Else
        Meldung = MsgBox("Es wurden " & (x - 1) & " Übereinstimmungen gefunden.", _
        vbOKOnly, "G E F U N D E N E   W E R T E")
    
        Application.ScreenUpdating = False
        'Tabelle einfügen
        Set wkb = Application.Workbooks.Add(Template:=xlWBATWorksheet)
        Set wksAnzeige = wkb.Worksheets(1)
        On Error Resume Next
        With wksAnzeige
            .Name = "Auswertung"
            .Cells(1, 1) = "Suchbegriff"
            .Cells(1, 2) = Begriff
            .Cells(2, 1) = "Workbook"
            .Cells(2, 2) = "Tabelle"
            .Cells(2, 3) = "Zelle"
            .Cells(3, 1).Select
            ActiveWindow.FreezePanes = True
        
            For n = 1 To x - 1
                .Cells(n + 2, 1) = xWorkbook(n)
                .Cells(n + 2, 2) = xTabelle(n)
                .Cells(n + 2, 3) = Adresse(n)
            Next n
            .Columns.AutoFit
        End With
        Application.ScreenUpdating = True
    End Select

End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Gefundene Werte anzeigen
13.11.2017 08:12:05 Axel
NotSolved
13.11.2017 16:15:43 Gast46933
NotSolved