Clever-Excel-Forum

Normale Version: Wert aus Zelle nehmen und in Spalte suchen + markieren und kopieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Morgen,

leider benötige ich wieder einmal eure Hilfe.

Ich habe eine Tabelle:
1    A        B        C    D       E
2 Test1     1        1     4
3 Test2     2        2
4 Test3     3        3
5 Test4     4        4
6 Test5     5        5


1. Der Wert in der Zelle D2 ist immer unterschiedlich (Wichtig), in diesem Beispiel ist es die 4.
2. Die Spalte B2:B6 soll mit den Wert aus D2 nun durchsucht werden.
3. Wenn die 4 in B5 gefunden wird, soll die Zeile A2:C5 markiert werden, 
wäre die 4 auch in B6 spielt diese keine Rolle. Relevant ist der erste Wert in der Spalte der gefunden wird.
4. Der markierte Bereich muss anschließend in E2 eingefügt werden.


Beispiel - Punkt 3 fehlt hier, sowie funktioniert Selection.Find (Laufzeitfehler 91) nicht.
***********
Sub test()
    Var = Range("D2").Value
    Selection.Copy
    Range("B2:B6").Select
    Selection.Find(What:=Var, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
        xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate
   
    ' Range("A2:C5").Select
    ' Hier muß definiert werden, wo die gefundene Zelle ist. um markieren zu können
   
    Application.CutCopyMode = False
    Selection.Copy
    Range("E2").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
End Sub
*********

Es wäre ganz toll, wenn jemand eine Hilfestellung geben könnte.
Danke für eure Hilfe.
Hi

das Ergebnis ist doch auch recht einfach mit einer Formel zu erreichen.
Code:
____|___A___|___B__|___C__|___D__|___E___|_F|_G_|_H|
   1|Sp. 1  |Sp. 2 |Sp. 3 |Sp. 4 |       |  |   |  |
   2|Test 1 |     1|C1    |     2|Test 2 | 2|C2 |  |
   3|Test 2 |     2|C2    |      |       |  |   |  |
   4|Test 3 |     3|C3    |      |       |  |   |  |
   5|Test 4 |     4|C4    |      |       |  |   |  |
   6|Test 5 |     5|C5    |      |       |  |   |  |
Code:
E2    =INDEX($A$2:$C$6;VERGLEICH($D2;$B$2:$B$6;0);SPALTE(A$1))
Formel nach rechts ziehen.

Oder meinst du dann den Bereich bis dort, dann so.
Code:
____|___A___|___B__|___C__|___D__|___E___|_F_|_G_|_H|
   1|Sp. 1  |Sp. 2 |Sp. 3 |Sp. 4 |      3|   |   |  |
   2|Test 1 |    10|C1    |    12|Test 1 | 10|C1 |  |
   3|Test 2 |    11|C2    |      |Test 2 | 11|C2 |  |
   4|Test 3 |    12|C3    |      |Test 3 | 12|C3 |  |
   5|Test 4 |    13|C4    |      |       |   |   |  |
   6|Test 5 |    14|C5    |      |       |   |   |  |
Code:
E1    =VERGLEICH($D2;$B$2:$B$6;0)
E2    =WENN(ZEILE(A1)<=$E$1;A2;"")
E2 nach rechts und unten ziehen.

Gruß Elex
Hallöchen,

wenn nur der Bereich bis B5 relevant ist würde ich auch nur bis B5 suchen und nicht B6, dann sollte es passen.
Wozu der Copy-Befehl davor relevant sein soll erschließt sich mir nicht weil vor dem nächstn Copy keine Paste kommt.

Der Fehler 91 kommt, weil nix gefunden wurde. Du könntest im Bereich z.B. mit
If WorksheetFunction.CountIf(Range("B2:B5"), var) > 0 Then
prüfen, ob sich das Suchen lohnt ...
Code:
E1    =VERGLEICH($D2;$B$2:$B$6;0)
E2    =WENN(ZEILE(A1)<=$E$1;A2;"")

Genau sowas habe ich gesucht.

Einfach PRIMA eure HILFE!

Auch nochmal ein dickes DANKE an "schauan" das Ihr eure Zeit geopfert habt.

Elex ich gebe Dir vollkommen recht. Das mit der Formel ist super. 
Man muss halt erst einmal darauf kommen, wie es funktionieren kann.

Vielen DANK! :28: :28: :28:
Gruß