Anzeige
Archiv - Navigation
444to448
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
444to448
444to448
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Wenn Wochenende - Inhalt löschen, da Inhalt = 0

Wenn Wochenende - Inhalt löschen, da Inhalt = 0
22.06.2004 09:48:42
Andy
Hallo,
ich habe eine Datei mit Kalender, wobei der fortlaufend ist von
Heute - 90 + 457 Tage. Dort werden Dienste eingetragen. Damit
niemand was falsches einträgt und dann nicht löschen kann würde
ich gern einbauen, wenn im Bereich C2 - Ende an Wochenenden ein
Eintrag ist, dann lösche ihn. Das ist zumindest meine Idee.
Gruß
Andy

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn Wochenende - Inhalt löschen, da Inhalt = 0
22.06.2004 21:24:21
Peter
Hallo Andy,
das nachstehende Makro sollte dein Problem lösen.
Ich gehe davon aus, dass dein Kalender ein Datum in Spalte A enthält.


Sub Wochenenden_loeschen()
Dim iIndx  As Integer
For iIndx = 1 To Range("A65536").End(xlUp).Row
   If Weekday(Range("A" & iIndx).Value) = 1 Or _
      Weekday(Range("A" & iIndx).Value) = 7 Then
      Range("C" & iIndx).Value = ""
   End If
Next iIndx
Gruß, Peter
Anzeige
Inhalt löschen, wenn im Kalender Wochenende
23.06.2004 12:01:31
Andy
Hallo Peter,
mein Kalender sieht so aus:
Userbild
Leider bleibt dein Code bei
If Weekday(Range("A" & iIndx).Value) = 1 Or _
Weekday(Range("A" & iIndx).Value) = 7 Then
ohne Meldung stehen. Hab ich beim Erzählen irgend etwas
falsch erklärt? Schau bitte noch einmal in meine Tabelle,
wie gesagt, sie rückt jeden Tag weiter, da sie von Heute
ausgeht. Wie bekomme ich es raus, dass alle Eintragungen
an Wochenenden im Bereich C2 bis Ende gelöscht werden.
Gruß Andy
Anzeige
AW: Inhalt löschen, wenn im Kalender Wochenende
23.06.2004 20:06:54
Andy
Hallo Peter,
Danke für die Spalte C: geht das jetzt Prima, ich meinte aber, wie im
Beispiel zu sehen, alles an C2, das Kann also auch Y365 sein. Vielleicht
habe ich mich falsch ausgedrückt, dann Sorry. Wenn dein Beispiel noch
von C2 bis XLEnd funktioniert, wäre es ganhz toll.
Gruß
Andy
AW: Inhalt löschen, wenn im Kalender Wochenende
23.06.2004 20:39:34
Peter
Hallo Andy,
mein Beispiel prüft die gesamte Spalte A, so weit diese belegt ist und ändert daraufhin die Sonnabende und Sonntage in Spalte C von 1 bis Ende.
Habe ich dich irgendwo falsch verstanden?
Gruß, Peter
Anzeige
AW: Inhalt löschen, wenn im Kalender Wochenende
23.06.2004 20:44:32
Andy
Hallo Peter,
du hattest es schon richtig verstanden und es funktioniert
auch in Spalte C2 bis Ende, aber in Spalte D2 bis IX457 funktioniert
es leider nicht und das habe ich nicht richtig erklärt gehabt
in meiner Bitte um Hilfe. Wie du oben im Beispiel siehst, gibt
es auch in den anderen Spalten Einträge, wobei man nicht weiß
wieviel. Also muss er kontrollieren von C2 bis IX457 oder Ende
und darin die Einträge in den Wochenenden löschen.
Gruß
Andy
AW: Inhalt löschen, wenn im Kalender Wochenende
23.06.2004 21:49:50
Peter
Hallo Andy,
so geht es über alle Spalten ab C


'
'   in einem Kalender sollen die evtl. vorhandenen Einträge
'   am Wochenende in der Spalte C gelöscht werden.
'
Sub Wochenenden_loeschen()
Dim iIndxA  As Long
Dim iIndxI  As Integer
Application.ScreenUpdating = False                  ' kein Bildschirm Update
For iIndxA = 1 To Range("A65536").End(xlUp).Row     ' von 1 bis Ende
   If Weekday(Range("A" & iIndxA).Value) = 1 Or _
      Weekday(Range("A" & iIndxA).Value) = 7 Then   ' Sonnabend/Sonntag ?
      For iIndxI = 3 To 256
         Cells(iIndxA, iIndxI).Value = ""           ' auf leer löschen
         'Cells(iIndxA, iIndxI).Value = 0            ' auf Null löschen
      Next iIndxI
   End If
Next iIndxA                                         ' nächster Eintrag
Application.ScreenUpdating = True                   ' Bildschirm Update
End Sub
Gruß Peter
Anzeige
Danke Peter klappt super, hab alles getestet!
23.06.2004 21:58:52
Andy
Hallo Peter,
vielen Dank für deine Hilfe, hab alles getestet und
es klappt super.
Gruß
Andy
Sorry Peter - doch noch ne Frage Wochende löschen
23.06.2004 22:55:25
Andy
Hallo Peter,
danke noch mal für deine Hilfe! In meiner Originaldatei klappt das
zwar sehr gut, da er aber bis ganz zum Ende geht und löschen will,
dauert das auch ziemlich lange. Was muss ich machen, wenn er nur
bis Zeile 457 durchsuchen soll? Die Spaltenanzahl weiß ich meist
nicht, aber die Zeilen hören nach 457 normaler Weise auf. Wie komme
ich am besten, wenn ich das ändern will?
Würde mich freuen, wenn du noch einmal helfen könntest.
Gruß
Andy
Anzeige
AW: Sorry Peter - doch noch ne Frage Wochende löschen
24.06.2004 21:13:49
Peter
Hallo Andy,
die Zeilenanzahl wird automatisch durch die Anweisung Range("A65536").End(xlup).Row immer auf die vorhandene Anzahl belegter Zeilen (in Spalte A) festgelegt. Da brauchst du nichts zu ändern, das bringt gar nichts.
Da das Makro alle Wochenenden (Sonnabende und Sonntage) von Spalte 3 bis 256 löscht, dauert das ein wenig, daran kann man wenig ändern.
Gruß Peter
AW: Nachtrag
24.06.2004 22:13:59
Peter
Hallo Andy,
was ich dir zur Beschleunigung anbieten kann ist folgendes:
Wenn nicht alle Spalten bis IV (256) belegt sind, wird das in dem nachfolgenden Makro berücksichtigt.
Dadurch wird die Verarbeitung natürlich wesentlich schneller (kürzer).


'
'   in einem Kalender sollen die evtl. vorhandenen (fehlerhaften) Einträge
'   am Wochenende in der Spalte C - letzte belegte Spalte gelöscht werden.
'
'   vorab wird die maximal belegte Spalte ermittelt
'
Sub Wochenenden_loeschen_A()
Dim rUsdRg  As Range                                ' verwendeter (belegter) Bereich
Dim lAnzZe  As Long                                 ' Anzahl Zellen im Used Range
Dim lLeSpa  As Long                                 ' letzte belegte Spalte
Dim lIndxZ  As Long                                 ' For/Next Index Zeile
Dim iIndxS  As Integer                              ' For/Next Index Spalte
Application.ScreenUpdating = False                  ' kein Bildschirm Update
Set rUsdRg = ActiveSheet.UsedRange                  ' Used Range feststellen
lAnzZe = rUsdRg.Count                               ' Anzahl Zellen im Used Range
lLeSpa = rUsdRg(lAnzZe).Column                      ' Letzte Spalte festhalten
For lIndxZ = 1 To Range("A65536").End(xlUp).Row     ' von Zeile 1 bis Ende
   If Weekday(Range("A" & lIndxZ).Value) = 1 Or _
      Weekday(Range("A" & lIndxZ).Value) = 7 Then   ' Sonnabend/Sonntag ?
      For iIndxS = 3 To lLeSpa                      ' von Spalte 3 bis letzte belegte
         Cells(lIndxZ, iIndxS).Value = ""           ' auf leer löschen
         'Cells(lIndxZ, iIndxS).Value = 0            ' auf Null löschen
      Next iIndxS                                   ' nächste Spalte
   End If
Next lIndxZ                                         ' nächste Zeile
Application.ScreenUpdating = True                   ' Bildschirm Update zulassen
End Sub
Gruß, Peter
Anzeige
Bei Wochenende - Inhalt löschen System lahm?
26.06.2004 04:20:56
Andy
Hallo,
die Idee von Peter ist zwar nicht schlecht, verlangsamt aber
enorm den Arbeitsablauf, da die automatische Kontrolle, ob
Wochenende ist oder nicht gleich nach jedem Eintrag erfolgt
und wenn das sich dann ewig hinzieht, ist das für den User
nicht schön.
Hat vielleicht noch jemand eine andere Idee? Wie kann man das
noch kontrollieren lassen, ohne das man gleich "Kaffee trinken
gehen kann"?
Gruß Andy
AW: Bei Wochenende - Inhalt löschen System lahm?
26.06.2004 15:47:40
Peter
Hallo Andy,
du hast nicht geschrieben, dass du die Prüfung nach jeder Eingabe machen willst!
Ich war davon ausgegangen, dass die Prüfung einmal bei Abschluss aller Eingaben gemacht wird.
Aber wie auch immer....
Füge den nachfolgenden Code in das Tabellenblatt deines Kalenders ein, dann bist du ganz schnell.
Gruß Peter


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
 
Dim T_Adr       As String                               ' Zell-Adresse
Dim iPos        As Integer                              ' Position für Instr
Dim A_Z_Zeile   As Integer                              ' Zeile
Dim A_Z_Spalte  As String                               ' Spalte
   If ActiveCell.Column < 3 Then Exit Sub               ' Spalte < 3 - raus
   T_Adr = Target.Address                               ' Adresse holen
   T_Adr = Mid(T_Adr, 2, Len(T_Adr))                    ' Adresse 1 shiften
   iPos = InStr(T_Adr, "$")                             ' Position $ suchen
   A_Z_Spalte = Left(T_Adr, (iPos - 1))                 ' Spalte entnehmen
   A_Z_Zeile = Mid(T_Adr, iPos + 1, Len(T_Adr) - iPos)  ' Zeile  entnehmen
   If Weekday(Cells(A_Z_Zeile, 1).Value) = 1 Or _
      Weekday(Cells(A_Z_Zeile, 1).Value) = 7 Then       ' Sonnabend/Sonntag ?
      If Range(A_Z_Spalte & A_Z_Zeile).Value <> "" Then ' Zelle nicht leer ?
         Range(A_Z_Spalte & A_Z_Zeile).ClearContents    ' Zelle löschen
         MsgBox "an Wochenend-Tagen bitte keine Eingaben vornehmen", 64, _
          "nicht erwünschte Eingabe"
      End If
   End If
End Sub
Anzeige
Danke-Neue Wochenende Inhalt löschen bleibt stehen
28.06.2004 06:52:35
Andy
Hallo Peter,
Danke für deine Hilfe leider bleibt er stehen bei:
If Weekday(Cells(A_Z_Zeile, 1).Value) = 1 Or _
Weekday(Cells(A_Z_Zeile, 1).Value) = 7 Then ' Sonnabend/Sonntag ?
und bringt folgenden Eintrag bei Local:
Userbild
Woran kann das liegen hast du eine Idee? Was hat er für ein Problem mit den
versteckten Zellen?
Gruß
Andy

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige