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

Adresse suchen ohne "Vergleich"

Adresse suchen ohne "Vergleich"
17.07.2003 19:04:51
Helga
Hallo alle zusammen und einen wunderschönen Abend wünsche ich euch.
Habe mal wieder ein Problem, bei dem ihr mir sicherlich helfen könnt.
Ich habe eine Matrix von E2:IV11000. In dieser Matrix habe ich wie folgt Daten stehen:
z.B.
E2 = 1.08.2002
E3 = 126,75
E4 = 215,21
Etc.
E251= 2.08.2002
E252= 126,31
Etc.
E586=3.08.2002
u.s.w.
Nun suche ich eine Formel, die mir die Zeile + Spalte angibt, wenn ich nach einem bestimmten Datum suche. Mit Vergleich muss ich ja die Spalte kennen, in der gesucht wird. Gibt es da irgend etwas, was man aus verschiedenen Excelfunktionen zusammen setzen kann? Ich kann leider kein VBA hierfür einsetzen, da meine Abfrage wie folgt aussieht:
In Spalte „A“ habe ich Datumsangaben untereinander stehen, wobei dann in Spalte „B“ die Adresse stehen soll.
Beispiel:
A10=15.08.2002 in B10 soll dann die dazugehörige Adresse stehen
A11=16.08.2002 in B11 soll dann die dazugehörige Adresse stehen
u.s.w.
Alles verstanden?
Wäre mal wieder klasse, wenn ihr mir erneut helfen könntet
Liebe Grüße
Helga

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Adresse suchen ohne "Vergleich"
18.07.2003 07:34:23
Stephan
Ziemlich verwirrend, was Du schreibst.
Was haben die Daten in E2:IV11000 mit den Adressen in B10 und B11 zu tun ? Versteh ich leider nicht.
Aber vielleicht schaust Du Dir mal das Transponieren an, der bringt zumindest deine Datensätze in E in eine vernünftige Form:
Bereich markieren, Bearbeiten-Inhalte einfügen-Transponieren

@Stephan
18.07.2003 07:49:21
Helga
Hallo Stephan,
so verwirrend ist das doch nicht.
Beispiel:
A10=2.08.2002, dann soll in B10 die Adresse stehen, nämlich "E251", da das Datum in der Matrix E2:IV11000, in Zelle E251 steht
kapische?
Gruß
Helga

AW: @Stephan
18.07.2003 11:31:33
WernerB.
Hallo Helga,
dieses Makro gehört in das Klassenmodul des entsprechenden Tabellenblattes:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim var As Variant
Dim ZA As String
Dim i As Integer
If Target.Column <> 1 Then Exit Sub
If IsDate(Target.Value) Then
For i = 5 To 256
var = Application.Match(CDbl(Cells(Target.Row, 1).Value), Range(Cells(2, i), Cells(11000, i)), 0)
If Not IsError(var) Then
ZA = Cells(var + 1, i).Address(False, False)
Cells(Target.Row, 2).Value = ZA
Exit Sub
End If
Next i
MsgBox "Nichts gefunden !"
End If
End Sub

Viel Erfolg wünscht
WernerB.

Anzeige
@WernerB.
18.07.2003 13:37:36
Helga
Hallo Werner,
zuerst einmal vielen Dank, das Teil funzt prima, aber...
dazu müsste ich dann in Spalte "A" ein Datum eingeben.
Nun ist es aber so, dass in Spalte "A" schon die Datumsangaben stehen und in Spalte "B" sollen die dazugehörigen Adressen stehen.
Beispiel:
A10=1.02.1999
A11=2.02.1999
A12=3.02.1999
A13=4.02.1999
u.s.w
denn ich möchte hinterher in einem anderem Sheet mit dieser Adresse arbeiten.
Unter dem Datum stehen nämlich jede Menge anderer Daten und nur die benötige ich.
Nehmen wir an, dass der 1.02.1999 in F2 steht, dann steht in F3 eine Zahl, in F4 eine Zahl, in F5 eine Zahl u.s.w.
Ich habe dann in dem anderem Sheet eine Abfrage, welche mir diese Zahlen nach dem Datum einliest, und zwar so lange, bis das nächste Datum erscheint.
Was muss ich also in Deiner Routine ändern?
Gruß
Helga

Anzeige
AW: @WernerB.
18.07.2003 14:12:18
WernerB.
Hallo Helga,
das "Teil" habe ich jetzt so geändert, dass bei einer Änderung in der Spalte "A" alle Inhalte der Spalte "B" zuerst gelöscht und dann wieder neu ermittelt und eingetragen werden. Ist es das, was Du willst?

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim var As Variant
Dim ZA As String
Dim laR As Long, j As Long
Dim i As Integer
If Target.Column <> 1 Then Exit Sub
Application.ScreenUpdating = False
laR = Cells(Rows.Count, 1).End(xlUp).Row
Range("B1:B" & laR).ClearContents
For j = 1 To laR
If IsDate(Cells(j, 1).Value) Then
For i = 5 To 256
var = Application.Match(CDbl(Cells(j, 1).Value), Range(Cells(2, i), Cells(11000, i)), 0)
If Not IsError(var) Then
ZA = Cells(var + 1, i).Address(False, False)
Cells(j, 2).Value = ZA
Exit For
End If
Next i
End If
Next j
Application.ScreenUpdating = True
End Sub

Gruß WernerB.

Anzeige
AW: @WernerB.
18.07.2003 14:22:30
Helga
Hallo Werner,
Du hast Dir ein dickes Küssssschen verdient :-))))
Danke, funzt wie Sau :-)))
Irgendwann werde ich mich auch noch mal an VBA setzen, versprochen.
Einfach Suuuper diese Forum
Gruß
Helga

AW: @Stephan
18.07.2003 09:36:13
Stephan
Hi, jetzt hab ich es verstanden.
Du suchst eine Funktion, die dir die Spalte und Zeile eines Wertes in einer Matrix zurückgibt.
Vielleicht stellst Du die Frage nochmal weiter oben, bin momentan (zeitlich) überfordert.

AW: @Stephan
18.07.2003 10:59:17
Stephan
Hi Helga!
Also hier mal ein Code, der die Adressen zurückgibt. Musst ihn noch auf deine Bereiche anpassen

Sub addressesuchen()
Dim zelle As Range
Dim i, j  As Integer
i = 1
j = 21
For Each zelle In Range("A1:H20") 'A1:H20 ist der Suchbereich
For j = 21 To 31 'in A21:A31 müssen die zu suchenden Werte stehen
If zelle.Value = Cells(j, 1).Value Then
Do While Cells(j, i) <> ""
i = i + 1
Loop
Cells(j, i).Value = zelle.Address
i = 1
End If
Next j
Next zelle
End Sub


Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige