• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

VBA.CreateObject("Scripting.Dictionary") für MAC

Registriert
14.05.23
Beiträge
1
Hallo,

Ich habe bei Microsoft Excel folgenden Code, der ich gerne unter MacOS laufen lassen möchte.
Kann mir jemand weiterhelfen, was ich beim Mac ändern, anpassen... muss ?
Herzlichen Dank für die Unterstützung

Sub Kalender_aufbauen()

Dim vKalendertabelle, vDrillDown, vKalender, vKalender2
Dim iKalendertabelle&, iKalender&, jKalender&, iDrillDown&

Dim oKalender As Object, oDrillDown As Object

Set oKalender = VBA.CreateObject("Scripting.Dictionary")
Set oDrillDown = VBA.CreateObject("Scripting.Dictionary")

'Kalendertabelle einlesen
vKalendertabelle = t08_kalendertabelle.Range("A2:G2001")
For iKalendertabelle = LBound(vKalendertabelle, 1) To UBound(vKalendertabelle, 1)
If vKalendertabelle(iKalendertabelle, 1) <> "" And IsDate(vKalendertabelle(iKalendertabelle, 1)) Then
oKalender(vKalendertabelle(iKalendertabelle, 1) & "|" & vKalendertabelle(iKalendertabelle, 2)) = oKalender(vKalendertabelle(iKalendertabelle, 1) & "|" & vKalendertabelle(iKalendertabelle, 2)) + 1
oDrillDown(vKalendertabelle(iKalendertabelle, 2)) = 1
End If
Next


t07_kalender.Range("K18:BU96").ClearContents

'Drilldown-Felder unique darstellen
vDrillDown = oDrillDown.Keys
For iDrillDown = LBound(vDrillDown, 1) To UBound(vDrillDown, 1)
t07_kalender.Cells(iDrillDown * 2 + 18, 11).Value = vDrillDown(iDrillDown)
Next

iDrillDown = iDrillDown - 1
t07_kalender.Rows(18 & ":" & iDrillDown * 2 + 18).Hidden = False
iDrillDown = iDrillDown + 1
t07_kalender.Rows(iDrillDown * 2 + 18 & ":" & 100).Hidden = True

'Kalender gefüllt
vKalender = t07_kalender.Range("K15:BU96")
For iKalender = LBound(vKalender, 1) To UBound(vKalender, 1)
For jKalender = LBound(vKalender, 2) To UBound(vKalender, 2)
If oKalender.Exists(vKalender(1, jKalender) & "|" & vKalender(iKalender, 1)) Then
vKalender(iKalender, jKalender) = oKalender(vKalender(1, jKalender) & "|" & vKalender(iKalender, 1))
End If
Next
Next

ReDim vKalender2(1 To UBound(vKalender, 1) - 3, LBound(vKalender, 2) To UBound(vKalender, 2))

For iKalender = 4 To UBound(vKalender, 1)
For jKalender = LBound(vKalender, 2) To UBound(vKalender, 2)
vKalender2(iKalender - 3, jKalender) = vKalender(iKalender, jKalender)
Next
Next

t07_kalender.Range("K18:BU96") = vKalender2


End Sub
 

SchwanzusLongus

Luxemburger Triumph
Registriert
23.09.15
Beiträge
503
Hi,

da du Scripting Dictionaries verwendest, die es unter Office für Mac meines Wissens nach nicht gibt, müsstest du dir eine eigene Funktion schreiben die das für dich in der Form übernimmt.