Excel makro... hilfe

Dieses Thema Excel makro... hilfe im Forum "Windows XP Forum" wurde erstellt von Spaggi, 29. Nov. 2004.

Thema: Excel makro... hilfe Hallo, also ich bräuchte da etwas Hilfe beim Erstellen von einem Makro für Excel, kann es nicht selber denn kenn...

  1. Hallo,

    also ich bräuchte da etwas Hilfe beim Erstellen von einem Makro für Excel, kann es nicht selber denn kenn mich mit VBA nicht aus, ich weiß evtl. wie ich es später benutze aber das wars auch schon. Habe folgendes Problem. Ich helfe beim Leiten einer Schulbücherei, die wir via excel tabelle verwalten. Damals habe ich bereits einen beitrag geschrieben aber da ging es darum, dass man per tastenkürzel das datum von heute in einem monat einfügen kann, dass man eben das rückgabe datum der bücher (1 Monat) via shortcut schnell eingeben kann, ohne lange überlegen zu müssen. Damals hat mit jemand dieses Makro gegeben, das auch tadellos funktioniert, kann aber leider nicht mehr rein posten, da datei gelöscht, es war irgendsowas mit day month +1 und year usw...

    Naja jetzt wollte ich das ganze noch ein bisschen verfeinern, denn oft wurde deswegen ein rüchgabedatum eingefügt, dass eben zufällig auf ein wochenende fällt, und das will ich nun eben vermeiden, kann jemand ein makro machen, bei dem 1. inbegriffen ist, dass wenn es später via shortcut benutzt wird, das heutige datum nur einen monat später eingefügt wird, und 2. dies, falls es auf ein wochende fällt auf den tag nach den wochenende (Montag ;-)) verschoben wird.

    Beispiel: Heute ist der 4. Oktober, ein Montag. Jemand leiht ein Buch aus, würde es sich jetzt exakt um einen monat verschieben, so fiele der tag auf einen sonntag, das will ich ja nicht, also wird dieser tag automatisch als wochenende tag in diesem fall sonntag erkannt und das datum um einen tag (zwei tage falls samstag ist) verschoben. Also lautet das Rückgabe datum 5. November.

    Alternative: Zusätzlich ist auch noch eine bedingte formatierung eingegeben Zellwert ist größer als =HEUTE bzw. kleiner als bzw. ist gleich, dass eben sobald jemand ein buch über das datum hinaus behält wird er rot, bzw. gelb falls heute der tag der rückgabe fällig wäre. Wäre es als alternative zum makro evtl. möglich, dass man anstelle dessen das mit der makro weglässt, aber sich das datum erst rot bzw. gelb färbt, falls abgabedatum am wochenende war, wenn das wochendende vorbei ist. Denn oft hat man schon schüler verwarnt, sie wären über dem datum, wobei eben das datum am wochende abgelaufen ist, aber sie da ja das buch nicht zurückgeben konnten. lässt sich da was machen?
     
  2. Hi Spaggi,

    wie gewünscht ;D

    Gruß Matjes ;)
    Code:
    Sub DatumPlusMonat()
    
      Dim d_date As Date
      Dim i_Tag As Integer, i_Monat As Integer, i_Jahr As Integer
     
     ->nur eine Zelle selektiert ?
      If Selection.Count <> 1 Then
        MsgBox ( _
        Es sind mehrere Zellen markeirt. & vbLf & _
        Bitte nur eine Zelle markieren !)
        Exit Sub
      End If
      
     ->markierte Zelle ist nicht leer ?
      If Selection.Value <>  Then
        If vbYes <> MsgBox( _
          Die markierte Zelle ist nicht leer! & vbLf & _
          Soll der Inhalt mit dem Datum überschrieben werden?, _
          vbCritical + vbDefaultButton2 + vbYesNo) Then
          Exit Sub
        End If
      End If
    
     ->Datum heute
      i_Tag = Day(Now())
      i_Monat = Month(Now())
      i_Jahr = Year(Now())
      
     ->Monat + 1 bilden
      If i_Monat = 12 Then
        i_Monat = 1: i_Jahr = i_Jahr + 1
      Else
        i_Monat = i_Monat + 1
      End If
      
     ->Hier kann man noch Abfragen einbauen,
     ->die bestimmte Feiertage ausnehmen
     ->*** Weihnachten
      If ((i_Tag = 24) Or (i_Tag = 25) Or (i_Tag = 26)) _
          And (i_Monat = 12) Then
        i_Tag = 28
       ->oder wenn zwischen Weihnachten und Neujahr geschlossen ist
       ->i_tag = 2: i_Jahr = i_Jahr + 1
     ->*** Neujahr
      ElseIf (i_Tag = 1 And i_Monat = 1) Then
        i_Tag = 2
     ->*** 3.Oktober
      ElseIf (i_Tag = 3 And i_Monat = 10) Then
        i_Tag = 4
      End If
     ->*** Karfreitag, Ostern, Pfingsten sind im Datum variabel
     ->*** Diese Datum könnte man abhängig vom Jahr berechnen
     ->*** und dann auch vermeiden
      
     ->Datum + 1Monat
      d_date = i_Tag & . & i_Monat & . & i_Jahr
      
     ->Wenn Sonnbend oder Sonntag, Datum auf Montag verschieben
      If vbSunday = WeekDay(d_date) Then
          d_date = (i_Tag + 1) & . & i_Monat & . & i_Jahr
      ElseIf vbSaturday = WeekDay(d_date) Then
          d_date = (i_Tag + 2) & . & i_Monat & . & i_Jahr
      End If
        
     ->Datum eintragen
      Selection.Value = d_date
    End Sub
     
  3. Danke, funktioniert einwandfrei ;D :D ;) dann kann ich mir die sache mit der bedingten formatierung auch sparen, denn jetzt kann niemand mehr am wochendende überfällig werden =)
     
Die Seite wird geladen...

Excel makro... hilfe - Ähnliche Themen

Forum Datum
Excel VBA Makro zum suchen eines Textes und anschließend einen Breich zu kopieren Microsoft Office Suite 22. Jan. 2015
Excel VBA Makro zum suchen und markieren von Zeilen die ein bestimmtes Wort enthalten Microsoft Office Suite 16. Juni 2014
Excel: Makro ASCII verschieben Windows XP Forum 8. Nov. 2013
Makros und anderes - Excel Microsoft Office Suite 15. März 2013
Excel Sprungmarke mitten in ein anderes Makro Windows XP Forum 15. März 2012