Zellbezug

Bild

Betrifft: Zellbezug
von: Tobias Marx
Geschrieben am: 11.03.2005 10:22:40
Servus!
Ich hab jetzt ein Stueckchen Code zusammengefummelt, komm aber noch ned ganz damit klar. Erstmal der Code:
Dim c As Range, SuBe As Range
Dim s As String
Dim laR As Long, lar2 As Long
'Bildschirmflackern abstellen
Application.ScreenUpdating = False
'Anzahl der belegten Zellen in Tabelle2, Spalte A ermitteln
Windows("Dienstarten.xls").Activate
lar2 = Sheets(1).Cells(Rows.Count, 2).End(xlUp).Row
Windows("temp.xls").Activate
With Sheets("DATA")
'Anzahl der belegten Zellen in Tabelle3, Spalte A ermitteln
laR = .Cells(Rows.Count, 1).End(xlUp).Row
For Each c In .Range("A1:A" & laR)
'Jede Zelle in Bereich B abhandeln
s = c.Text
Windows("Dienstarten.xls").Activate
With Sheets(1)
'Bezug finden?
Set SuBe = .Range(.Cells(1, 1), .Cells(lar2, 2)). _
Find(s, lookat:=xlWhole)
'Falls was drin, Marker setzen
If Not SuBe Is Nothing Then
c.Offset(1, 2).Value = SuBe.Offset(1, 3).Value
'Variable loeschen
Set SuBe = Nothing
End If
End With
Next c
End With
Application.ScreenUpdating = True
Das is der Code der ausgefuehrt werden soll. Zur Funktionsweise: Ich habe zwei Tabellen, eine in Dienstarten.xls, das andere in temp.xls. In beiden Tabellen gibt es ein Feld mit der Personalnummer (in Dienstarten Spalte B, in temp.xls Spalte A). Auf dieses Felder werden sich bezogen, wenn in Dienstarten Spalte C in Bezug auf o.g. Bezug in temp, Spalte B kopiert wird. Das Makro rennt scheinbar auch, aber leider gibt es keine Werte aus. Ich vermute mal, dass ich die (1, 2)-Dinger falsch reingemacht hab, aber ich hab heut irgendwie ein Brett vorm Kopf...
Danke im Voraus
Tobias

Bild

Betrifft: AW: Zellbezug
von: Martin Beck
Geschrieben am: 11.03.2005 12:36:56
Hallo Tobias,
schließt das an diesen Thread an:
https://www.herber.de/forum/messages/582675.html

Hast Du Dich gegen VLOOKUP entscheiden? Ich will Dich nicht entmutigen, aber Dein Ansatz scheint mir "überkompliziert". Es gibt gleich mehrere potetielle Fehlerquellen. Offensichtlich falsch ist
c.Offset(1, 2).Value = SuBe.Offset(1, 3).Value
denn da werden Werte immer nur in der ersten Zeile kopiert, Du willst aber wohl für die Zeile "von c" kopieren.
Zum weiteren Vorgehen: Deinen Code zu korrigieren ist ohne die Dateien zu kennen fast unmöglich. Daher 2 Ansätze:
1. Lade die Dateien hoch.
2. Beschreibe die Aufgabenstellung noch einmal, und zwar in diesem Stil:
Name der 1. Datei: Dienstarten.xls
Name der Tabelle in dieser Datei: Tabelle1
In dieser Tabelle stehen relevante Daten in: A1 bis Ax, x muß bestimmt werden
Mit diesen Daten soll irgenwas gemacht werden.
Name der 2. Datei: temp.xls
usw.
Dann kann man einen neuen Code basteln.
Gruß
Martin Beck
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zellbezug"