Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
356to360
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
356to360
356to360
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Hilfe Bitte Bitte Hilfe

Hilfe Bitte Bitte Hilfe
02.01.2004 03:20:04
Thors-Hammer-
Ein frohes, gesundes neues Jahr wünsche ich allen hier

Ich hoffe ich nerve nicht mit meinem problem, da ich ähnliche Fragen schon gestellt habe, leider ohne Erfolg, versuch ich es noch einmal.

Folgendes problem:

im Tabellenblatt "Daten" befindet sich in spalte D9 bis D39 das Suchkriterium
das ergebnis soll in Spalte F9 bis F39 reingeschrieben werden
die Suchmatrix befindet sich im Tabellenblatt "Berechnung" von Zeile A3:N200

Wie kann ich so eine Abfrage mit vba machen, wenn ich ein beispiel habe kann ich die anderen selbst schreiben.

Ich hab das ganze mit sverweis gemacht,was auch klappt, da ich aber 10Kollegen, 14 verschiedene ergebnisse und 12 Monate hab, ist das Ding leider riesengroß
(ca. 6000kb)und dadurch natürlich superschnell.

ich hoffe mir kann jemand helfen

mfg Thors-Hammer-

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe Bitte Bitte Hilfe
02.01.2004 09:50:09
MikeS
Hallo Thors Hammer,

anbei der Code



Option Explicit

Sub Suchen()
  Dim Quelle As Worksheet
  Dim Matrix As Range
  Dim c, Suchwert$, Zielwert$
  Dim Quellspalte As Byte, Zielspalte As Byte
  Dim Zähler&
  Set Quelle = Worksheets("Daten")
  Set Matrix = Worksheets("Berechnung").Range("A3:N200")
  Quellspalte = 4
  Zielspalte = 6
  Application.ScreenUpdating = False
  
  For Zähler = 9 To 39
    
    Suchwert = Quelle.Cells(Zähler, Quellspalte)
    
    With Matrix
      
      Set c = .Find(Suchwert, LookIn:=xlValues)
      
      If Not Is Nothing Then
        Quelle.Cells(Zähler, Zielspalte) = "gefunden"
      Else
        Quelle.Cells(Zähler, Zielspalte) = "nicht gefunden"
      End If
      
    End With
    
  Next Zähler
  
  Application.ScreenUpdating = True
End Sub


     Code eingefügt mit Syntaxhighlighter 2.1


und die Beispielmappe:

https://www.herber.de/bbs/user/2676.xls

Ciao MikeS
Anzeige
AW: Hallo MikeS
03.01.2004 07:09:09
Thors-Hammer-
Hallo Mike,
vielen Dank für Deine Hilfe,
kann Dir leider erst heute danken, da ich erst jetzt wieder an der Kiste bin.
werde im laufe des Tages den code ausprobieren.

nochmals vielen Dank

gruss Thors-Hammer-
Verbesserung
03.01.2004 11:09:43
MikeS
Hallo Thors-Hammer-,

habe den Code nochmal überarbeitet.

Falls der Suchwert in der Matrix mehrfach vorkommt,
werden diese Fundzellen in der Zielspalte F dokumentiert.

Code:


Option Explicit

Sub Suchen()
  Dim Quelle As Worksheet
  Dim Matrix As Range
  Dim c, Suchwert$, Zielwert$, Fundzelle
  Dim l&, q%, z%
  Set Quelle = Worksheets("Daten")
  Set Matrix = Worksheets("Berechnung").Range("A3:N200")
  q = 4
  z = 6
  Application.ScreenUpdating = False
    
  For l = 9 To 39  
    Suchwert = Quelle.Cells(l, q)
    Quelle.Cells(l, z).ClearContents
    
    With Matrix
      
      Set c = .Find(Suchwert, LookIn:=xlValues, lookat:=xlWhole)
      
      If Not Is Nothing Then
        Fundzelle = c.Address(FalseFalse)
        Do
          Set c = .FindNext(c)
          If Quelle.Cells(l, z) = "" Then
            Quelle.Cells(l, z) = c.Address(FalseFalse)
          Else
            Quelle.Cells(l, z) = Quelle.Cells(l, z) & ";" & c.Address(FalseFalse)
          End If
        Loop While Not Is Nothing And c.Address(FalseFalse) <> Fundzelle
      Else
        Quelle.Cells(l, z) = "-"
      End If
    
    End With
  Next l
  
  Quelle.Columns(z).AutoFit
  
  Application.ScreenUpdating = True
End Sub


     Code eingefügt mit Syntaxhighlighter 2.1



Beispielmappe:

https://www.herber.de/bbs/user/2696.xls

Ciao MikeS
Anzeige
AW: Verbesserung
03.01.2004 13:17:22
Thors-Hammer-
Hallo MikeS

super vielen Dank nochmal
eine kleine bitte hätte ich noch
wie krieg ich es hin das in meiner zielspalte der dazugehörige wert aus der matrix eingelesen wird. bei Deinem obigen beispiel soll der wert aus spalte D (4) der matrix in die zielspalte geschrieben werden. könntest du mir da noch behilflich sein, wäre echt super

gruss Thors-Hammer-
AW: Verbesserung
03.01.2004 16:17:00
MikeS
Ich weiß nicht, ob ich Dich richtig verstanden habe.

1.) Wenn der Wert in der Matrix gefunden wird,
soll er in die Zielspalte geschrieben werden!?

Was, wenn der Wert mehrfach in der Matrix vorkommt,
oder ist das nicht relevant?

Nachfolgender Code prüft, ob der Wert der Suchspalte mindestens
1x in der Matrix vorkommt.
Ist das der Fall, wird der Wert auch nur einmal in die Zielspalte
eingetragen.



Sub Suchen2()
  Dim Quelle As Worksheet
  Dim Matrix As Range
  Dim c, Suchwert$, Zielwert$, Fundzelle
  Dim l&, q%, z%
  Set Quelle = Worksheets("Daten")
  Set Matrix = Worksheets("Berechnung").Range("A3:N200")
  q = 4
  z = 6
  Application.ScreenUpdating = False
    
  For l = 9 To 39
    
    Suchwert = Quelle.Cells(l, q)
    Quelle.Cells(l, z).ClearContents
    
    With Matrix
      
      Set c = .Find(Suchwert, LookIn:=xlValues, lookat:=xlWhole)
      
      If Not Is Nothing Then
        Quelle.Cells(l, z) = c.Value
      Else
        Quelle.Cells(l, z) = "-"
      End If
    
    End With
  
  Next l
  
  Quelle.Columns(z).AutoFit
  
  Application.ScreenUpdating = True
End Sub



     Code eingefügt mit Syntaxhighlighter 2.1



War es das, was Du wolltest?

Ciao MikeS
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige