Guten Morgen.
Ich hab wieder ein kleines Problem, und zwar wollte ich dass das Makro zusätzlich wie schon für die Spalte H das gleiche für die Spalten F und G macht, nur nicht auf Tabelle 2 sondern auf Tabelle 3 und 4. Hab mir gedacht einfach den Code für Spalte H kopieren, ein bisschen anpassen und fertig aber leider funktioniert es nicht so wie es soll. Alternativ könnte man die Anzahl von Spalte F und G auch in der Tabelle 2 in Spalte C und D platzieren, also neben der Anzahl von Spalte H, was eigentlich noch besser und schöner wäre.
link für die Excel Tabelle
http://rapidshare.com/files/281217423…
Sub Ganglinie()
'Obergrenze von Uhrzeit ausrechnen
Dim Zeile As Long
Sheets(„Tabelle1“).Select
Zeile = Range(„B“ & Rows.Count).End(xlUp).Row
Range(„H2:H“ & Zeile).FormulaR1C1 = „=CEILING(RC[-6],1/24)“
Range(„f2:f“ & Zeile).FormulaR1C1 = „=IF(RC[-1]8500,RC[1],“""")"
'in hh:mm umwandeln
Range(„H:H“).Select
Range(„G:G,F:F“).Select
Selection.NumberFormat = „h:mm;@“
'Formeln in Festwerte umwandeln
Dim Zelle As Range
On Error Resume Next
For Each Zelle In ActiveSheet.UsedRange
If Left(Zelle.Formula, 1) = „=“ Then _
Zelle.Formula = Zelle.Value
Next
'Werte von Tabelle 1 Spalte H nach Tabelle 2 kopieren,
'zählen und doppelte löschen
Dim Formel As String, Zei1 As Long
Zei1 = Worksheets(„Tabelle1“).Cells(Rows.Count, 8).End(xlUp).Row 'Spalte H = 8
Formel = „=ZÄHLENWENN(Tabelle1!H:H;A2)“
With Worksheets(„Tabelle2“)
.Range(„A2:B500“).ClearContents
.Range(„A1“).Value = „Uhrzeit“
.Range(„B1“).Value = „Anzahl“
Worksheets(„Tabelle1“).Range(„H2:H“ & Zei1).AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=.Range(„A2“), Unique:=True
.Rows(2).Delete
With .Range(„B2:B“ & .Cells(Rows.Count, 1).End(xlUp).Row)
.FormulaLocal = Formel
.Value = .Value
End With
End With
'Werte von Tabelle 1 Spalte f nach Tabelle 3 kopieren,
'zählen und doppelte löschen
Dim Formel2 As String, Zei2 As Long
Zei2 = Worksheets(„Tabelle1“).Cells(Rows.Count, 6).End(xlUp).Row 'Spalte f = 6
Formel2 = „=ZÄHLENWENN(Tabelle1!f:f;A2)“
With Worksheets(„Tabelle3“)
.Range(„A2:B500“).ClearContents
Worksheets(„Tabelle1“).Range(„f2:f“ & Zei2).AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=.Range(„A2“), Unique:=True
.Rows(2).Delete
With .Range(„B2:B“ & .Cells(Rows.Count, 1).End(xlUp).Row)
.FormulaLocal = Formel2
.Value = .Value
End With
End With
'Werte von Tabelle 1 Spalte g nach Tabelle 4 kopieren,
'zählen und doppelte löschen
Dim Formel3 As String, Zei3 As Long
Zei3 = Worksheets(„Tabelle1“).Cells(Rows.Count, 7).End(xlUp).Row 'Spalte g = 7
Formel3 = „=ZÄHLENWENN(Tabelle1!g:g;A2)“
With Worksheets(„Tabelle4“)
.Range(„A2:B500“).ClearContents
Worksheets(„Tabelle1“).Range(„g2:g“ & Zei3).AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=.Range(„A2“), Unique:=True
.Rows(2).Delete
With .Range(„B2:B“ & .Cells(Rows.Count, 1).End(xlUp).Row)
.FormulaLocal = Formel3
.Value = .Value
End With
End With
End Sub