Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
828to832
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
828to832
828to832
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Tagesplaner

Tagesplaner
19.12.2006 18:16:38
Dirk
Hallo Leute,
brauche bitte nochmal eure Hilfe
habe in Spalte (C) ein Datum fortlaufend eingetragen per vba, und möchte realisieren,
dass wenn man eben nur auf diese Zelle in der Spalte C doppelklickt,das neue Makro nachschaut
ob es ein Tabellenblatt mit Namen des angeklickten Datums gibt,
falls ja dann zu diesem springen
falls nein soll das makro in das Tabellenblatt Tagesplaner springen, und
ein neues Tabellenblatt mit dem angeklickten Datum plus das angeklickte Datum in E4 als Datum erstellen, so dass dort der Tagesplaner drin ist, aber das blancko-Tabellenblatt auch noch da ist.
Hoffe man versteht was ich meine, und ihr könnt mir helfen
Super wäre auch (hab keine Ahnung wie ich das hinkriegen soll) wenn ich je nach Spalte unterschiedliche Aktionen ausführen könnte.
2. Frage wäre,wenn die Tabellenblätter ja dd.mm.yyyy betitelt sind, wie kann ich es anfangen, in einem weiteren Makro nach yyyy kleiner aktuelles Jahr zu suchen bzw. löschen
Matthias G. hatte mir letztens schon bei einem ähnlichen Problem geholfen(herzlichen Dank nochmal auch wenn ich es jetzt anders machen muß),
was ich dachte, so machen zu können, aber leider muß der Umweg über das Tagesplanertabellenblatt um die Formatierung immer gleich zu haben, oder habt ihr ne andere elegantere und oder bessere Lösung?
Wäre wirklich super wenn ihr mir helfen könntet,schon mal besten Dank im Vorraus
Dirk

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tagesplaner
19.12.2006 19:34:34
Daniel
Hallo
alles keine große Sache, hier die Makros dazu:
das erste muß im Codebereichs des Übersichstblatts stehen, daß zweite zum Löschen kann auch in ein allgemeines Modul.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Select Case Target.Column
Case 1
MsgBox "Aktion, wenn Doppelklick in Spalte 1"
Case 2
MsgBox "Aktion, wenn Doppelklick in Spalte 2"
Case 3 'zu Kalenderblatt springen bzw anlegen
Select Case IsDate(Target.Value)
Case False
Case True
On Error Resume Next
Sheets(Format(Target.Value, "DD.MM.YYYY")).Select
Select Case Err
Case 0
Case 9
Target.Offset(0, 1).Value = "Kalenderblatt erstellt"
Sheets("Vorlage").Copy after:=Sheets("Übersicht")
ActiveSheet.Name = Format(Target.Value, "DD.MM.YYYY")
ActiveSheet.Cells(4, 5).Value = Format(Target.Value, "DD.MM.YYYY")
Case Else
MsgBox "Komischer Fehler"
End Select
On Error GoTo 0
End Select
Case Else
'keine aktion
End Select
End Sub
Public Sub Alte_Einträge_Löschen()
Dim sh As Worksheet
Application.DisplayAlerts = False
For Each sh In ThisWorkbook.Sheets
If IsNumeric(Right(sh.Name, 4)) Then
If CInt(Right(sh.Name, 4)) < Year(Date) Then sh.Delete
End If
Next
Application.DisplayAlerts = True
End Sub

Die Sache mit dem Vorlagensheet als Kopiervorlage würde ich beibehalten.
Natürlich kannst du jedesmal ein Sheet neu erstellen und die Formatierung per VBA durchführen, aber das ist etwas umständlich zu programmieren und benötigt relativ viel Code.
Da ist es leichter, von Hand die Vorlage zu gestalten.
falls du angst hast, daß jemand die Vorlage überschreibt, kannst du sie ja unsichtbar machen
(geht übers Menü mit Format-Blatt-Ausblenden).
Zum Sichtbarmachen des kopierten Kalenderblattes musst du dann beim Erstellen am Ende noch diese Zeile einfügen:
ActiveSheet.Visible = true
Gruß, Daniel
(p.s. Blattnamen ggf. noch anpassen)
Anzeige
AW: Tagesplaner
19.12.2006 20:11:56
Dirk
Hallo Daniel
danke für den Code, und das du so kompetent und recht schnell antwortest,
wrede Deinen Code gleich ausprobieren.
Falls ich noch Probleme haben sollte melde ich mich nochmal
Schönen Dank und schon mal frohe Weihnachtszeit noch
Dirk
AW: Tagesplaner
19.12.2006 19:36:15
ChrisL
Hallo Dirk
Für Frage 1 bin ich zu faul, aber betr. Frage 2

Sub t()
Dim sh As Object
On Error GoTo ErrorHandler
Application.DisplayAlerts = False
For Each sh In ThisWorkbook.Sheets
If Right(sh.Name, 4) <> CStr(Year(Now)) Then sh.Delete
Next sh
Application.DisplayAlerts = True
Exit Sub
ErrorHandler:
Application.DisplayAlerts = True
MsgBox Err.Description
End Sub

Löscht alle Blätter, deren Namen nicht auf "2006" (Jahr ist dynamisch) enden.
Gruss
Chris
Anzeige
AW: Tagesplaner
19.12.2006 19:38:09
ChrisL
geschlossen, Daniel war fleissig(er)
AW: Tagesplaner
19.12.2006 20:14:08
Dirk
Hallo Chris,
auch Dir danke, auch für eine Teillösung bin ich dankbar.
wünsche noch eine schöne Weihnachtszeit
Dirk

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige