Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1928to1932
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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


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.


Anzeige
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


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


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

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige