Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Wert aus Zelle nehmen und in Spalte suchen + markieren und kopieren
#1
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.
Antworten Top
#2
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
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • ex20
Antworten Top
#3
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 ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • ex20
Antworten Top
#4
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ß
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste