Thema Datum  Von Nutzer Rating
Antwort
Rot VBA: Range im Array, Spalten zählen
23.01.2018 15:33:07 ChriizZy
*****
Solved
23.01.2018 16:16:34 ChriizZy
*****
NotSolved

Ansicht des Beitrags:
Von:
ChriizZy
Datum:
23.01.2018 15:33:07
Views:
1028
Rating: Antwort:
 Nein
Thema:
VBA: Range im Array, Spalten zählen

Hallo,

Ich habe mehrere Bereiche in einem Array gespeichert, dass sieht bei mir so aus:

    Dim bcopy(11) As String
    bcopy(0) = "A5:AF25"
    If IstSchaltjahr(jahr) = True Then
        bcopy(1) = "B5:AC25"
    Else
        bcopy(1) = "B5:AD25"
    End If
    bcopy(2) = "B5:AF25"
    bcopy(3) = "B5:AE25"
    bcopy(4) = "B5:AF25"
    bcopy(5) = "B5:AE25"
    bcopy(6) = "B5:AF25"
    bcopy(7) = "B5:AE25"
    bcopy(8) = "B5:AF25"
    bcopy(9) = "B5:AE25"
    bcopy(10) = "B5:AF25"
    bcopy(11) = "B5:AE25"
 
Das sind verschiedene Monate, die jeweils auf einem Tabellenblatt in einer anderen Datei sind. Ich kopiere sie her und das funktioniert alles einwandfrei.
Links (die erste Spalte) neben der Ausgabe der Tage der Monate möchte ich das Datum anzeigen lassen.
Ich hatte das zuvor ohne Date, also alle Monate gingen bei mir bis zum 31. Die überflüssigen Zeilen waren bei mir einfach leer. Nun habe ich das umgeschrieben und das Datum zeigt es jetzt auch richtig an. Aber ich habe eine Schleife für das Datum, damit das immer richtig neben der Zeile steht. Momentan habe ich es so:
For tag = 0 To 30                                                                        'Anzahl der Tage im Monat (31), wird später angepasst
  Workbooks("Projekt.xlsm").Worksheets(1).Cells(zeile, 1) = DateAdd("d", 1, DateSerial(jahr, i + 1, tag)) 'Ausgabe des Datum, i+1 da index mit 0 anfängt
  zeile = zeile + 1                                                                      'Zelle rutscht eins runter
Next tag

Jetzt kann ich aber 30 nicht mehr stehen lassen, da ja jeder Monat unterschiedliche Anzahl an Tagen hat ^^

Statt 30 wollte ich die Anzahl der Spalten (die Anzahl der Spalten von bcopy(i) entspricht der Anzahl der Tage, in meiner neuen Datei sind die Daten transponiert worden) angeben. Ich habe es auf zwei Arten versucht:

spalten = Range(bcopy(i).Columns.Count)
spalten = Workbooks("Monatliche Mahnterminplanung 2018.xlsx").Worksheets(monat(i)).Cells.SpecialCells(xlCellTypeLastCell).Columns.Count

auch ohne Count habe ich es versucht. Aber der Wert von spalten beim debuggen bleibt 1 und bei der Ausgabe kommt völliger Mist raus.

Kann mir da jmd bitte weiter helfen?
Dankeschön!

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot VBA: Range im Array, Spalten zählen
23.01.2018 15:33:07 ChriizZy
*****
Solved
23.01.2018 16:16:34 ChriizZy
*****
NotSolved