Herbers Excel-Forum - das Archiv
tabellen übergreifend kopieren

|
Betrifft: tabellen übergreifend kopieren
von: chris
Geschrieben am: 06.10.2003 13:03:10
Hallo allerseits
kann mir wer helfen?
ich möchte, wenn ich in tabelle2 irgend eine zelle der spalte B anklicke,
den inhalt dieser mit den inhalten der spalte B aus tabelle1 vergleichen
und bei übereinstimmung diese zeile aus tabelle1 in die tabelle2 herüberkopieren
etwa so (hab ich mir gedacht)
If ActiveCell.Row = 2 Then
vergl = ActiveCell.Value 'aktive zelle in tabelle2
lz = Worksheets("tabelle1").Cells(Rows.Count, 2).End(xlUp).Row
'letze zeile, hab ich aus dem wunderbaren forum
For i = 1 To lz
Worksheets("tabelle1").Cells(i, 2).Select
If ActiveCell.Value = vergl Then
Worksheets("tabelle2").Range(Cells(i, 2), Cells(i, 11)).Copy
Destination:=Worksheets("tabelle1").Range("B4:K4")
End If
Next
End If
tut nix.
hab den verdacht das ich (ungeachtet möglicher fehler) auch nicht genau weiss wo dieser code hinsoll. sprich in welches vba Objekt und welches Sub.
mit Dankeschön im Voraus

 |
Betrifft: AW: tabellen übergreifend kopieren
von: Martin Bolleter
Geschrieben am: 06.10.2003 16:30:11
Hallo Chris
was du beschreibst stimmt nicht mit deinem Beispielcode überein! ZB sagst du, dass du aus Tabelle1 in die Tabelle2 kopieren willst. Im Code machst du es aber genau umgekehrt!!
Weiter sagst du, dass du in eine beliebige Zelle der Spalte B klickst, im Code prüfst du aber auf Zeile=2 (If ActiveCell.Row = 2 Then). Etwas mehr und präzisere Informationen würden den Antwortenden die Aufgabe leichter machen.
Ich habs mal versucht, und mich eher an deinen Text als den Code gehalten :-)
Du brauchst zwei Code-Teile; der erste kommt "hinter" die Tabelle2, in die kopiert werden soll, und in der du den Event (durch Klicken in Kolonne 2) auslöst:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub
Call search(Target.Row)
End Sub
In einem normalen Modul dann den Code für die Prozedur "Search" :
Sub search(Zl%)
Dim Wert, ZeileT1%, i%
Application.ScreenUpdating = False
Wert = ActiveSheet.Cells(Zl, 2).Value
ZeileT1 = Worksheets("tabelle1").Cells(Rows.Count, 2).End(xlUp).Row
For i = 1 To ZeileT1
If Wert = Worksheets("tabelle1").Cells(i, 2).Value Then
Range(Worksheets("tabelle1").Cells(i, 3), Worksheets("tabelle1").Cells(i, 11)).Copy Cells(Zl, 3)
Exit For
End If
Next i
End Sub
So hat's bei mir funktioniert, ist aber nicht für jede denkbare Situation getestet ...
Gruss
Martin
Betrifft: AW: tabellen übergreifend kopieren
von: chris
Geschrieben am: 06.10.2003 20:38:50
Danke Martin
das war ein sehr lehreiches Posting
tschuldige den konfusen Code