Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Problem bei einer Abfrage

Forumthread: Problem bei einer Abfrage

Problem bei einer Abfrage
16.04.2017 12:33:38
Hans-Jörg
Hallo Zusammen,
vieleicht kann mir jemand helfen, ich hab momentan keine Idee wie ich das Problem lösen kann.
Ich habe in einem Tabellenblatt,in Spalte A eine Nummer die sich eventuell öfters wiederholt (max.4x), in Spalte B sind hierzu verschiedene Datums-Angaben, in dem Tabellenblatt werden jeden Monat neue Daten hinzugefügt
Nun möchte ich, in einen neuen Tabellenblatt die Nummer aus Spalte A eintragen und in den Spalten daneben, also B/C/D/E sollen die Datums-Angaben die er auf dem ersten Tabellenblatt gefunden hat, ausgeben werden. Wenn nichts gefunden wurde soll die Spalte leer bleiben.
Danke im Voraus für Eure Hilfe
Jörg
https://www.herber.de/bbs/user/112904.zip
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem bei einer Abfrage
17.04.2017 10:19:17
Hans
Hallo Zusammen,
viele Dank für die schnelle Hilfe, werde es morgen ausprobieren und dann bericheten.
Noch schöne Ostertage
Gruß Jörg
Anzeige
AW: Problem bei einer Abfrage
16.04.2017 16:35:33
Sepp
Hallo Hans-Jörg,
Formel nach Rechts und Unten durch Ziehen ausfüllen.
Ausgabe

 ABCDE
1Nachweis NrDatumDatum 1Datum 2Datum 3
2861705711.01.201618.03.2017  
3862829009.12.2016   
4862829109.12.2016   
5862829209.12.2016   
6862829312.12.2016   
7862829409.12.2016   
8862829512.12.2016   
9862829609.12.2016   
10862829712.12.2016   
11862829809.12.2016   
12862829909.12.2016   
13862830012.12.2016   
14862830109.12.2016   
15862830212.12.201615.01.201718.03.201712.04.2017
16862830312.12.2016   
17862830409.12.2016   
18862830509.12.2016   
19862830609.12.2016   
20862830708.02.2017   
21862830809.12.2016   
22862830909.12.201627.02.2017  

Formeln der Tabelle
ZelleFormel
B2{=WENNFEHLER(KKLEINSTE(WENN(Matrix!$A$2:$A$1000=$A2;Matrix!$B$2:$B$1000); SPALTE(A1)); "")}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
Matrix verstehen


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Gruß Sepp

Anzeige
AW: Problem bei einer Abfrage
16.04.2017 19:58:51
Peter
Hallo Hans-Jörg,
so könnte es ebenfalls funtionieren Option Explicit Public Sub Find_Methode() Dim MyDict As Object Dim WkSh_Q As Worksheet Dim WkSh_Z As Worksheet Dim lZeile_Q As Long Dim lZeile_Z As Long Dim rZelle As Range Dim sFundst As String Dim iSpalte As Integer Set MyDict = CreateObject("Scripting.Dictionary") Application.ScreenUpdating = False Set WkSh_Q = ThisWorkbook.Worksheets("Matrix") Set WkSh_Z = ThisWorkbook.Worksheets("Ausgabe") With WkSh_Z .Range("A2:E" & .Cells(.Rows.Count, 1).End(xlUp).Row).ClearContents lZeile_Z = 1 End With With WkSh_Q.Columns(1) For lZeile_Q = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row If Not MyDict.exists(.Range("A" & lZeile_Q).Value) Then MyDict(Trim$(.Range("A" & lZeile_Q).Value)) = MyDict(Trim$(.Range("A" & lZeile_Q). _ Value)) Set rZelle = .Find(What:=.Range("A" & lZeile_Q).Value, LookAt:=xlWhole, LookIn:= _ xlValues) If Not rZelle Is Nothing Then sFundst = rZelle.Address lZeile_Z = lZeile_Z + 1 WkSh_Z.Range("A" & lZeile_Z).Value = WkSh_Q.Range("A" & lZeile_Q).Value iSpalte = 2 Do WkSh_Z.Cells(lZeile_Z, iSpalte).Value = WkSh_Q.Range("B" & rZelle.Row).Value iSpalte = iSpalte + 1 Set rZelle = .Cells.FindNext(rZelle) Loop While Not rZelle Is Nothing And rZelle.Address sFundst 'Else ' MsgBox "Der gesuchte Begriff """ & .Range("A" & lZeile).Value & """ wurde _ nicht gefunden.", _ 48, " Hinweis für " & Application.UserName End If End If Next lZeile_Q End With Application.ScreenUpdating = True Set MyDict = Nothing Set WkSh_Q = Nothing Set WkSh_Z = Nothing End Sub Gruß Peter
Anzeige
AW: Problem bei einer Abfrage
16.04.2017 22:14:15
Peter
Hallo Hans-Jörg,
vergiss bitte meine erste Lösung und nimm diese dafür, sie sollte besser passen.
Option Explicit
Public Sub Find_Methode()
Dim MyDict    As Object
Dim WkSh_Q    As Worksheet
Dim WkSh_Z    As Worksheet
Dim lZeile_Q  As Long
Dim lZeile_Z  As Long
Dim rZelle    As Range
Dim sFundst   As String
Dim iSpalte   As Integer
Set MyDict = CreateObject("Scripting.Dictionary")
Application.ScreenUpdating = False
Set WkSh_Q = ThisWorkbook.Worksheets("Matrix")
Set WkSh_Z = ThisWorkbook.Worksheets("Ausgabe")
With WkSh_Z
.Range("A2:E" & .Cells(.Rows.Count, 1).End(xlUp).Row).ClearContents
lZeile_Z = 1
End With
For lZeile_Q = 2 To WkSh_Q.Cells(Rows.Count, 1).End(xlUp).Row
If Not MyDict.exists(Trim$(WkSh_Q.Range("A" & lZeile_Q).Value)) Then
MyDict(Trim$(WkSh_Q.Range("A" & lZeile_Q).Value)) = 0
GoSub Datum_uebergeben
End If
Next lZeile_Q
Application.ScreenUpdating = True
Set MyDict = Nothing
Set WkSh_Q = Nothing
Set WkSh_Z = Nothing
Exit Sub
Datum_uebergeben:
With WkSh_Q.Columns(1)
Set rZelle = .Find(What:=WkSh_Q.Range("A" & lZeile_Q).Value, LookAt:=xlWhole, LookIn:= _
xlValues)
If Not rZelle Is Nothing Then
sFundst = rZelle.Address
lZeile_Z = lZeile_Z + 1
WkSh_Z.Range("A" & lZeile_Z).Value = WkSh_Q.Range("A" & lZeile_Q).Value
iSpalte = 2
Do
WkSh_Z.Cells(lZeile_Z, iSpalte).Value = WkSh_Q.Range("B" & rZelle.Row).Value
iSpalte = iSpalte + 1
Set rZelle = .Cells.FindNext(rZelle)
Loop While Not rZelle Is Nothing And rZelle.Address  sFundst
'Else
'  MsgBox "Der gesuchte Begriff  """ & .Range("A" & lZeile).Value & """  wurde nicht  _
gefunden.", _
48, "   Hinweis für " & Application.UserName
End If
End With
Return
End Sub
Gruß Peter
Anzeige
AW: Problem bei einer Abfrage
16.04.2017 22:28:33
Peter
Hallo Hans-Jörg,
offensichtlich sind doch aller guten Dinge drei und du solltest diese Version als die gültige ansehen
Option Explicit
Public Sub Find_Methode()
Dim MyDict    As Object
Dim WkSh_Q    As Worksheet
Dim WkSh_Z    As Worksheet
Dim lZeile_Q  As Long
Dim lZeile_Z  As Long
Dim rZelle    As Range
Dim sFundst   As String
Dim iSpalte   As Integer
Set MyDict = CreateObject("Scripting.Dictionary")
Application.ScreenUpdating = False
Set WkSh_Q = ThisWorkbook.Worksheets("Matrix")
Set WkSh_Z = ThisWorkbook.Worksheets("Ausgabe")
With WkSh_Z
.Range("A2:E" & .Cells(.Rows.Count, 1).End(xlUp).Row).ClearContents
End With
lZeile_Z = 1
For lZeile_Q = 2 To WkSh_Q.Cells(Rows.Count, 1).End(xlUp).Row
If Not MyDict.exists(Trim$(WkSh_Q.Range("A" & lZeile_Q).Value)) Then
MyDict(Trim$(WkSh_Q.Range("A" & lZeile_Q).Value)) = 0
With WkSh_Q.Columns(1)
Set rZelle = .Find(What:=.Range("A" & lZeile_Q).Value, LookAt:=xlWhole, LookIn:=xlValues)
If Not rZelle Is Nothing Then
sFundst = rZelle.Address
lZeile_Z = lZeile_Z + 1
WkSh_Z.Range("A" & lZeile_Z).Value = WkSh_Q.Range("A" & lZeile_Q).Value
iSpalte = 2
Do
WkSh_Z.Cells(lZeile_Z, iSpalte).Value = WkSh_Q.Range("B" & rZelle.Row).Value
iSpalte = iSpalte + 1
'Set rZelle = .FindNext(rZelle)
Set rZelle = .Cells.FindNext(rZelle)
Loop While Not rZelle Is Nothing And rZelle.Address  sFundst
'Else
'  MsgBox "Der gesuchte Begriff  """ & .Range("A" & lZeile).Value & """  wurde nicht  _
gefunden.", _
48, "   Hinweis für " & Application.UserName
End If
End With
End If
Next lZeile_Q
Application.ScreenUpdating = True
Set MyDict = Nothing
Set WkSh_Q = Nothing
Set WkSh_Z = Nothing
End Sub

Gruß Peter
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige