Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1784to1788
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

Zellen löschen

Zellen löschen
04.10.2020 18:32:05
Maxim
Guten Abend
Ich bin seit Stunden auf Fehler Suche und komme einfach nicht drauf was es sein könnte.
Ich habe ein VBA UserForm Modul Code
Bei dieser kann ich mehrere Tage (Datum und Monat) einfügen z.B. in Zelle C16 bis C29
Wenn ich jetzt neue Tage einfüge werden mir die alten automatisch gelöscht und die neuen wieder eingefügt.
Mein Problem ist, das ganze funktioniert nur in der C Zelle.
Da ich aber mein Tabellenblatt anpassen muss wollte ich das ganze in die Zelle D verschieben.
Es fügt mir zwar die Tage ein aber die alten Tage werden nicht gelöscht.
Ich habe die betroffene Zeile geändert aber leider funktioniert das nicht in der Zelle D
Sobald ich es wieder in C ändere geht es wieder
Kann mir einer sagen wo der Fehler liegt?

Private Sub CommandButton1_Click()
Dim iMonat    As Integer
Dim iJahr     As Integer
Dim iListBox  As Integer
Dim vTemp()   As Variant
Dim iTemp     As Integer: iTemp = -1
Dim dDatum    As Date
Dim iTag      As Integer
Dim iAnzahl   As Integer
Dim WkSh      As Worksheet
Dim lZeile    As Long
If ComboBox1.Value = "" Then
MsgBox "Sie haben keinen Monat ausgewählt - ABBRUCH.", _
48, "   Hinweis für " & Application.UserName
ComboBox1.SetFocus
Exit Sub
Else
iMonat = Month("1." & CStr(ComboBox1.Value))
End If
For iListBox = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(iListBox) Then
iTemp = iTemp + 1
ReDim Preserve vTemp(iTemp)
vTemp(iTemp) = iListBox + 1
End If
Next iListBox
If iTemp > -1 Then
lZeile = 16
Else
MsgBox "Sie haben keinen Wochentag ausgewählt - ABBRUCH.", _
48, "   Hinweis für " & Application.UserName
ListBox1.SetFocus
Exit Sub
End If
iJahr = ComboBox2.Value
Unload UserForm1
Set WkSh = ThisWorkbook.Worksheets("Tabelle1") ' den Tabellenblattnamen ggf. anpassen!
WkSh.Range("D16:D" & WkSh.Cells(WkSh.Rows.Count, 3).End(xlUp).Row).ClearContents
dDatum = DateSerial(iJahr, iMonat, 1)
For iTag = 1 To TageProMonat(dDatum)
For iTemp = LBound(vTemp) To UBound(vTemp)
If Weekday(dDatum, vbMonday) = vTemp(iTemp) Then
iAnzahl = iAnzahl + 1 * 2
WkSh.Range("D" & lZeile).Value = _
Format(dDatum, "dd.mmmm yyyy")
lZeile = lZeile + 1
Exit For
End If
Next iTemp
dDatum = dDatum + 1
Next iTag
End Sub

Private Sub UserForm_Initialize()
Dim iMonat  As Integer
With ComboBox1
.Clear
.Font.Size = 12
.Style = 2
For iMonat = 1 To 12
.AddItem Format(DateSerial(Year(Date), iMonat, 1), "MMMM")
Next iMonat
.ListIndex = Month(Date) - 1 ' den aktuellen Monat anzeigen
End With
With ListBox1
.Clear
.Font.Size = 12
.AddItem "Montag"
.AddItem "Dienstag"
.AddItem "Mittwoch"
.AddItem "Donnerstag"
.AddItem "Freitag"
.AddItem "Samstag"
.AddItem "Sonntag"
End With
With ComboBox2
.Clear
.Font.Size = 12
.Style = 2
.AddItem Year(Date) - 1    ' das Vorjahr
.AddItem Year(Date)        ' das aktuelle Jahr
.AddItem Year(Date) + 1    ' das Folgejahr
.ListIndex = 1             ' das aktuelle Jahr anzeigen
End With
With CommandButton1 ' den CommandButton mittig ausrichten
.Left = (UserForm1.Width - CommandButton1.Width) / 2
End With
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen löschen
04.10.2020 18:43:22
GerdL
Moin Maxim,
versuche es mal mit Spalte 4 statt 3 vor ...ClearContents
Gruß Gerd
AW: Zellen löschen
04.10.2020 18:51:21
Maxim
Oh man
Vielen vielen Dank Gerd
Das war es wirklich :-)
Danke dir
Jetzt kann ich endlich weiter machen
Gruß
Maxim
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige