Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA in Spalten, Datum nach Samstag und Sonntag durchsuchen
#1
Moin,
ich hatte mir mal einen Kalender erstellt und wollte den jetzt aus der Vertikalen in die Horizontale bringen.
Dazu dachte ich mir, mach aus Zeile Spalte und schon gehts.
Irrtum meinerseits, mangels Wissen.

Dazu soll in den Spalten (I5; NO5) Datumsangaben nach Samstagen und Sonntagen gesucht und die entsprechenden Zellen grau gefärbt werden.

In der Zeile: "SpalteEnd = .Cells(.Column.Count, 8).End(xlUp).Column" kommt eine Fehlermeldung 438 "Objekt unterstützt diese Eigenschaft oder Methode nicht. 

Code:
'Zellen nach Wochenenden durchsuchen und färben
    Dim spalte As Long
    Dim SpalteEnd As Long
    Dim zelle As Range
    Dim Bereich As Range

'Zeile 4, Samstag und Sonntag finden und Zellen grau färben
    Sheets("Kalender").Activate
    Set Bereich = Range("I4: NO4")
   
        For Each zelle In Bereich
        If zelle.Value = "Sa" Then zelle.Interior.ColorIndex = 15
        Next zelle
        For Each zelle In Bereich
        If zelle.Value = "So" Then zelle.Interior.ColorIndex = 15

    Next zelle



'Hier beginnt das Problem
    With Sheets("Kalender")
        SpalteEnd = .Cells(.Column.Count, 9).End(xlUp).Column                             
        For spalte = 9 To SpalteEnd                                                         
        If Weekday(.Cells(spalte, 9).Value) = 1 Or Weekday(.Cells(spalte, 9).Value) = 7 Then
        .Cells(spalte, 9).Interior.ColorIndex = 15
         Else
         .Cells(spalte, 9).Interior.ColorIndex = xlColorIndexNone
    End If

    Next spalte

    End With

Wer könnte mich hier unterstützen?
Danke!
Antworten Top
#2
Hallo Björn,

Kalender kopieren, Inhalte einfügen, transponieren.... Fertig.
Ganz im Ernst, einen Kalender per Makro aus der Vertikalen in die Horizontale zu bringen ist schon ziemlich ineffektiv...

Zum Fehler:
.Cells(.Column.Count, 8).End(xlUp).Column ist so mit Sicherheit von Dir nicht gewollt.

.colums.Count ist die Anzahl der Spalten im Worksheet. Warum setzt Du den bei .Cells() als Zeile ein? Sicher meintest Du .Cells(8, .Columns.Count). ACHTUNG, da fehlt ein "s" bei dir im Code!!!
.End(xlUp) sucht von unten kommend die erste beschriebene Zellle. Du willst du mit Sicherheit die .End(xlToLeft) haben, also von links gesucht die erste beschrieben Zelle.
Welche Zeile soll auf den letzten Eintrag geprüft werden? Zeile 8?

Gruß,
Lutz
Antworten Top
#3
Moin Lutz,
vorab danke für Deine Antwort.

Ja, ich habe Spalten und Zeile völig durcheinander bekommen, jetzt läuft es.

Danke!
Code:
With Sheets("Kalender")
        SpalteEnd = .Cells(5, .Columns.Count).End(xlToLeft).Column                             
        For spalte = 8 To SpalteEnd                                                             
        If Weekday(.Cells(5, spalte).Value) = 1 Or Weekday(.Cells(5, spalte).Value) = 7 Then   
        .Cells(5, spalte).Interior.ColorIndex = 15
         Else
         .Cells(5, spalte).Interior.ColorIndex = xlColorIndexNone
    End If

    Next spalte

    End With
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste