Hallo liebe Profis,
ich bin im Bereich VBA blutiger Anfänger und brauche daher dringend Hilfe. Ich habe zwei Tabellen. Tab1 enthält untereinander dier Urlaubsdaten aller Mitarbeiter:
Spalte A Spalte B
Mitarbeiter A 02.02.2012
Mitarbeiter A 03.02.2012
Mitarbeiter B 10.03.2012
Mitarbeiter D 15.05.2012
Tab2 ist eine Jahresübersicht. Spalte A enthält ab Zeile 2 alle Mitarbeiter, ab Spalte B befindet sich in Zeile 1 jeweils ein Datum. Das Ganze sieht dann halt aus wie ein Kalender.
Nun möchte ich, dass per VBA folgendes passiert:
Vergleiche die Mitarbeiter in beiden Tabellen, wenn gleich dann schreibe das Datum in die entsprechende Zelle zum Mitarbeiter/Datum
|
01.02.2012 |
02.02.2012 |
03.02.2012 |
04.02.2012 |
05.02.2012 |
06.02.2012 |
07.02.2012 |
08.02.2012 |
A |
01.02.2012 |
02.02.2012 |
10.02.2012 |
|
|
|
|
|
B |
15.02.2012 |
20.02.2012 |
|
|
|
|
|
|
C |
05.02.2012 |
|
|
|
|
|
|
|
D |
|
|
|
|
|
|
|
|
E |
10.06.2012 |
11.06.2012 |
|
|
|
|
|
|
F |
08.04.2012 |
09.04.2012 |
|
|
|
|
|
|
G |
15.05.2012 |
16.05.2012 |
17.05.2012 |
18.05.2012 |
|
|
|
|
Ich bekomme das im Moment nur hin, dass die Daten jeweils nebeneinander geschrieben werden (hatte hier ganz viel Hilfe), aber eben nicht, dass das Datum in die richtige Zelle beim richtigen Mitarbeiter unter das richtige Datum geschrieben wird.
Sub Gant()
Dim Sht1 As Worksheet
Dim Sht2 As Worksheet
Set Sht1 = Sheets("Mitarbeiter")
Set Sht2 = Sheets("Quelldaten")
Dim i As Integer
Dim e As Integer
Dim f As Integer
For i = 1 To Sht1.UsedRange.Rows.Count 'Prüfung nicht leere Zellen Mitarbeiter
f = 2
For e = 1 To Sht2.UsedRange.Rows.Count 'Prüfung nicht leere Zellen Quelldaten
If Sht1.Range("A" & i) = Sht2.Range("A" & e) Then 'Prüfung ob Mitarbeiter in beiden Tabellen existiert
Sht1.Cells(i, f) = Format(Sht2.Range("C" & e), "dd.mm.yyyy")
f = f + 1
End If
Next e
Next i
End Sub
Möchte das nämlich dann über eine bedingte Formatierung jeweils farblich hinterlegen damit eine Urlaubsübersicht entsteht. wie ein Gantt-Chart halt.
Könnt Ihr mir hier helfen?
Wäre klasse.
Schon mal vielen Dank im Voraus.,
LG, Yvonne
|