Thema Datum  Von Nutzer Rating
Antwort
19.11.2019 20:28:53 Gast13649
Solved
19.11.2019 21:06:19 Mase
NotSolved
22.11.2019 10:53:50 Gast61631
NotSolved
22.11.2019 11:03:41 Mase
NotSolved
22.11.2019 11:18:03 Gast7879
NotSolved
Blau Suchen in 2-dimensionaler Matrix
22.11.2019 12:52:30 Mase
Solved
22.11.2019 13:34:59 Gast12205
Solved

Ansicht des Beitrags:
Von:
Mase
Datum:
22.11.2019 12:52:30
Views:
435
Rating: Antwort:
 Nein
Thema:
Suchen in 2-dimensionaler Matrix

Schau Dir mal folgendes an:

Hinweise:

FindenA = Deine Prozedur mit ein paar Hinweisen aus meiner Sicht

FindenB = Mein Vorschlag

Sub FindenA()

    'Das ist der Code der funktioniert.
    'Ich möchte nun den zu durchsuchenden Bereich von A4 bis AP45 durch Variablen ersetzten.
    'Spalte und Zeile habdn den selben Wert, der durch die last Variable erst ermittelt wird
    Dim finden As Range
    'Variable sit zwar deklariert ...
    Dim variable As String
    '... hat aber keine Wert und wird bei Verwendung als vbNullString, also nix, initialisiert
    'Dein Befehl hier lautet also: Suche nix
    'witziger weise wird deine Variable finden auch nothing sein
    Set finden = workscheets("Tabelle1").Range("A4:AP45").Find(what:=variable)
    
    'Variablen um Zeilen zu zählen sicherheitshalber als Long deklarieren
    Dim last As Integer
    'Rows.Count bezieht sich auf das aktive Arbeitsblatt, welches u.U. nicht Tabelle1 sein könnte
    last = Worksheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row
End Sub

Sub FindenB()
    Dim wks As Worksheet        'Worksheet-Variable
    Dim rngGefunden As Range    'vorher: finden
    Dim sSuchWert As String     'vorher: variable
    Dim lngLetzteSpalte As Long 'letzte beschriebene Spalte
    Dim lngLetzteZeile As Long  'letzte beschriebene Zeile
    'Referenz auf das zu durchsuchende Arbeitsblatt
    Set wks = ThisWorkbook.Worksheets("Tabelle1")
    'selbsterklärend
    sSuchWert = "Test"
    '
    With wks
        'finde letzte beschriebene Spalte
        lngLetzteSpalte = .Cells(1, .Columns.Count).End(xlToLeft).Column
        'finde letzte beschriebene Zeile
        lngLetzteZeile = .Cells(.Rows.Count, lngLetzteSpalte).End(xlUp).Row
        'Bereich von A4 bis letzte beschriebene Spalte + letzte beschriebeen Zeile in dieser Spalte
        Set rngGefunden = .Range("A4", .Cells(lngLetzteZeile, lngLetzteSpalte)).Find(what:=sSuchWert)
    End With
    'Wenn etwas gefunden wird, beinhaltet die Variable einen Verweis auf eine Zelle
    'da kann ich dann alle Infos abrufen, welche eine Zelle zu bieten hat. Wert, Zeilennummer, Spaltennummer etc pp
    If Not rngGefunden Is Nothing Then
        MsgBox sSuchWert & " wurde in Zeile " & rngGefunden.Row & ", Spalte " & rngGefunden.Column & " gefunden."
    Else
        'Wenn kein Verweis auf eine Zelle da ist, wurde nichts gefunden
        'das kann ich prüfen, indem ich prüfe, ob die Variable = Nothing ist.
        'wenn diese Bedingung zutrifft, landest DU in diesem Zweig
        MsgBox sSuchWert & " wurde nicht gefunden."
    End If
    '
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
19.11.2019 20:28:53 Gast13649
Solved
19.11.2019 21:06:19 Mase
NotSolved
22.11.2019 10:53:50 Gast61631
NotSolved
22.11.2019 11:03:41 Mase
NotSolved
22.11.2019 11:18:03 Gast7879
NotSolved
Blau Suchen in 2-dimensionaler Matrix
22.11.2019 12:52:30 Mase
Solved
22.11.2019 13:34:59 Gast12205
Solved