Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: bestimmte Tage löschen durch Makro

bestimmte Tage löschen durch Makro
28.04.2023 15:45:56
Sven

Hallo!

Da ich kaum Erfahrung mit VBA habe, bräuchte ich bitte Eure Unterstützung.
In ein Tabellenblatt wird in Zeile 1 ab Spalte D ein beliebiger Monat (jeder Tag eine Spalte, Spalten als Datum mit * formatiert) einkopiert. Ich hätte nun gern das ein Makro dafür sorgt das mir nur die Spalten erhalten bleiben in denen Freitag steht. Das nächste Monat einkopieren soll dann nach den ermittelten Freitagen erfolgen und dann erneut nur die Freitage stehenbleiben usw.
Ich hoffe ihr könnt mir helfen, ich scheitere schon seit Stunden

Danke und Gruß Sven

Tabellenaufbau bisher ohne Code
https://www.herber.de/bbs/user/158947.xlsx

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: bestimmte Tage löschen durch Makro
28.04.2023 16:07:45
Yal
hallo Sven,

füllt sich wie Code-Kata :-)

Sub Freitags_einfügen()
Dim S

    For S = Range("XFD1").End(xltoleft).Column To 4 Step -1 '*
        If Weekday(Cells(1, S)) = vbFriday Then Cells(1, S).EntireColumn.Delete
    Next
'*: 'beim Spalten löschen, immer rückwärts, also wie beim Bodenwischen: zurück zu Tür, sonst kriegt man nasse Füsse.
End Sub
VG
Yal


Anzeige
AW: bestimmte Tage löschen durch Makro
28.04.2023 20:28:06
Pappawinni
Hallo Yal,

Dein Code interessiert mich ja immer :)
als ich den gesehen hab, dacht ich aber ich hätte die Aufgabe nicht verstanden, denn du haust ja die Freitage raus, und ich dachte genau die sollten erhalten bleiben.


Ja, tatsächlich, also nicht "=" sondern "<>"
02.05.2023 10:21:16
Yal
... und wenn schon Spaltennummer dann direkt, wie Gerd es gezeigt hat, auf Columns gehen

Sub NurFreitags_übriglassen()
Dim S
 
    For S = Range("XFD1").End(xlToLeft).Column To 4 Step -1
        If Weekday(Cells(1, S)) > vbFriday Then Columns(S).Delete
    Next
End Sub
VG
Yal


Anzeige
AW: bestimmte Tage löschen durch Makro
28.04.2023 16:10:06
Edi
Hallo Sven
das Löschen der Spalten könnte so funktionieren

Sub freitag()
    Dim s As Integer
    s = 4
    Do
        If Weekday(Cells(1, s)) > 6 Then
            Columns(s).Delete
        Else: s = s + 1
        End If
    Loop Until Cells(1, s).Value = ""
End Sub

Gruß
Edi


Anzeige
AW: bestimmte Tage löschen durch Makro
28.04.2023 16:14:26
GerdL
Oder so.

Sub Unit()

Dim col As Long

For col = Cells(1, Columns.Count).End(xlToLeft).Column To 4 Step -1
    If Not Left$(Cells(1, col).Text, 7) = "Freitag" Then Columns(col).Delete
Next

End Sub
Den "nächsten Monat .." habe ich leider nicht verstanden.

Gruß Gerd


Anzeige
AW: bestimmte Tage löschen durch Makro
28.04.2023 17:03:40
Pappawinni
Wenn man halt wüsste, ob bei neu eingefügten Kalendern auch die Spalten ohne Datum weg fliegen sollen....
Ich hab das mal so, dass nur wenn in der ersten Zeile ein Datum steht und das kein Freitag ist, dass dann die Spalte gelöscht wird.

Sub behalteFreitag()

Dim lngLCol As Long
Dim I As Long

With ThisWorkbook.Sheets("Tabelle1")

  'Letzte benutzte Spalte
  lngCol = .Cells(1, Columns.Count).End(xlToLeft).Column

  For I = lngCol To 1 Step -1
    'Enthält die Spalte in Zeile 1 ein Datum
    If IsDate(.Cells(1, I)) Then
       'ist das ein anderer Tag als Freitag
       If Weekday(.Cells(1, I)) > 6 Then
         'Spalte löschen
         Columns(I).Delete
       End If
    End If
  Next
  
End With

End Sub



Anzeige
AW: bestimmte Tage löschen durch Makro
28.04.2023 20:50:40
Pappawinni
Hi Edi,
Bei deinem Vorschlag könnt es ein Problem geben, wenn genau so ein Kalender nochmal eingefügt wird, dann sind da erst mal leere Spalten
und dein Makro hört auf.
Besser wäre vermutlich auch da zu wissen, wann die letzte Spalte erreicht ist, also irgendwo würd ich schon sowas
Cells(1, Columns.Count).End(xlToLeft).Column
erwarten. Dann müsstest du aber auch irgenwie die gelöschten Spalten zählen.

vorwärts löschen ist halt so ne Sache, kann man machen, ist halt dann ...*** hätte mein Junior gesagt
rückwärts macht sich das einfacher.


Anzeige
AW: bestimmte Tage löschen durch Makro
28.04.2023 19:25:52
Sven
Vielen Dank für die schnellen Lösungsvorschläge!
Kann leider erst morgen testen, sollte ich dann noch Fragen haben melde ich mich.

Also Dankeschön und beste Grüße
Sven

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige