Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Excel, Datum





Frage

hi, ich komme irgendwie nicht weiter, wenn ich in Zell A2 Montag schreibe, , ich will dass in Zell A3 automatisch Dienstag geschrieben wird, und in Zll A4 Mittwoch. Frank

Antwort 1 von romeoyankee

Dazu musst Du die Zellen auch als Datumszellen formatieren. Klick mal mit der rechten Maustatse auf eine Zelle und sag "Zellen"

Antwort 2 von Alexx1

hi Romeoyankee,
ich komme nicht weiter, ich kann nur manuell die wochentagen automatisch ausführen, ich wollte gerne dass das excel es automatisch macht indem ich nur eines tages name eingebe.

z.B. ich schreibe in A2 "Montag dann soll in A3 automatisch Dienstag und in A4 Mittwoch schreiben.
ioch werde sehr danbar wenn jemand mir hilft.

Gruß
alex

Antwort 3 von cmkatz

Hallo,

mit einem Makro ist das ziemlich leicht zu lösen.


´   Nachfolgendes Makro prüft den eingegebenen Tag in der aktuellen Zelle
´   füllt die darunter liegenden Zellen mit den restlichen Tagen aus.
´
´   Vorgehensweise:
´   Tag eingeben, dann eine andere Zelle anklicken, dann wieder die mit dem Tag
´   aktivieren.
´   (funktioniert auf dem gesamten Arbeitsblatt)
´
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    
    ´Collection, in der alle Wochentage drin sind
    ´
    Dim coll As New Collection
    
    ´Zeile, auf der der aktuell Cursor steht
    ´
    Dim aktZeile As Integer
    
    ´Spalte, auf der der aktuell Cursor steht
    ´
    Dim aktSpalte As Integer
    Dim naechsteZeile As Integer
    
    ´Collection befüllen
    ´
    coll.Add ("Montag")
    coll.Add ("Dienstag")
    coll.Add ("Mittwoch")
    coll.Add ("Donnerstag")
    coll.Add ("Freitag")
    coll.Add ("Samstag")
    coll.Add ("Sonntag")
    
    ´Aktuelle Zelle merken
    ´
    aktZeile = ActiveCell.Row
    aktSpalte = ActiveCell.Column
    naechsteZeile = 1
    
    ´Per Schleife die Collection durchgehen und prüfen, ob der Eintrag in
    ´in der Zelle identisch mit dem i-ten Eintrag in der Collection ist.
    ´
    For i = 1 To 7
        
        ´Wenn ja, ...
        ´
        If ActiveCell.Value = coll.Item(i) Then
            
            ´...dann ab diesem Eintrag in den nachfolgenden Zellen die
            ´restlichen Werte aus der Collection einfügen.
            ´
            For y = i + 1 To 7
                Cells(aktReihe + nextRow, aktSpalte).Value = coll.Item(y)
                naechsteZeile = naechsteZeile + 1
            Next
        End If
    Next

End Sub


Zum Einbinden des obigen Makros gehe wie folgt vor::

Drücke in Excel gleichzeitig Alt+F11 und du gelangst in den Visual-Basic-Editor.
(kommst auch über Extras - Makro - Visual-Basic-Editor dorthin)
Hier klickst du doppelt auf "Tabelle1(Tabelle1)", am oberen Rand des rechten Fensters siehst du "Allgemein", das änderst du auf "Worksheet".

Jetzt kopierst du obigen Text in dieses weiße Fenster ein.
Wieder zurück zur Tabelle wechseln nud mal ausprobieren, einfach mal in A1 Montag eingeben, kurz eine andere Zelle anklicken, dann wieder A1. Jetzt sollten in den Tabellen A2 ff. Dienstag, Mittwoch etc. stehen.

Antwort 4 von cmkatz

Hallo,

nochmal ich:

hab da noch den ein oder anderen Fehler gefunden:

(hier nun das lauffähige Makro)

__________________________________________

´ Nachfolgendes Makro prüft den eingegebenen Tag in der aktuellen Zelle
´ füllt die darunter liegenden Zellen mit den restlichen Tagen aus.
´
´ Vorgehensweise:
´ Tag eingeben, dann eine andere Zelle anklicken, dann wieder die mit dem Tag
´ aktivieren.
´ (funktioniert auf dem gesamten Arbeitsblatt)
´
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

´Collection, in der alle Wochentage drin sind
´
Dim coll As New Collection

´Zeile, auf der der aktuell Cursor steht
´
Dim aktZeile As Integer

´Spalte, auf der der aktuell Cursor steht
´
Dim aktSpalte As Integer
Dim naechsteZeile As Integer

´Collection befüllen
´
coll.Add ("Montag")
coll.Add ("Dienstag")
coll.Add ("Mittwoch")
coll.Add ("Donnerstag")
coll.Add ("Freitag")
coll.Add ("Samstag")
coll.Add ("Sonntag")

´Aktuelle Zelle merken
´
aktZeile = ActiveCell.Row
aktSpalte = ActiveCell.Column
naechsteZeile = 1

´Per Schleife die Collection durchgehen und prüfen, ob der Eintrag in
´in der Zelle identisch mit dem i-ten Eintrag in der Collection ist.
´
For i = 1 To 7

´Wenn ja, ...
´
If ActiveCell.Value = coll.Item(i) Then

´...dann ab diesem Eintrag in den nachfolgenden Zellen die
´restlichen Werte aus der Collection einfügen.
´
For y = i + 1 To 7
Cells(aktZeile + naechsteZeile, aktSpalte).Value = coll.Item(y)
naechsteZeile = naechsteZeile + 1
Next
End If
Next

End Sub
_______________________________________

Gruß
cmkatz

Antwort 5 von coros

Moin an alle,

ich hätte da noch folgende Lösung anzubieten. Kopiere den Code in das VBA Projekt, in dem die Tage automatisch vervollständigt werden sollen.

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Select Case Target.Cells
Case "Montag"
Target.Cells.AutoFill Destination:=Range(Cells(Target.Row, Target.Column), _
Cells(Target.Row + 6, Target.Column))
Application.EnableEvents = True
Case "Dienstag"
Target.Cells.AutoFill Destination:=Range(Cells(Target.Row, Target.Column), _
Cells(Target.Row + 6, Target.Column))
Application.EnableEvents = True
Case "Mittwoch"
Target.Cells.AutoFill Destination:=Range(Cells(Target.Row, Target.Column), _
Cells(Target.Row + 6, Target.Column))
Application.EnableEvents = True
Case "Donnertsag"
Target.Cells.AutoFill Destination:=Range(Cells(Target.Row, Target.Column), _
Cells(Target.Row + 6, Target.Column))
Application.EnableEvents = True
Case "Freitag"
Target.Cells.AutoFill Destination:=Range(Cells(Target.Row, Target.Column), _
Cells(Target.Row + 6, Target.Column))
Application.EnableEvents = True
Case "Samstag"
Target.Cells.AutoFill Destination:=Range(Cells(Target.Row, Target.Column), _
Cells(Target.Row + 6, Target.Column))
Application.EnableEvents = True
Case "Sonntag"
Target.Cells.AutoFill Destination:=Range(Cells(Target.Row, Target.Column), _
Cells(Target.Row + 6, Target.Column))
End Select
Application.EnableEvents = True
End Sub


Bei dem VBA Code wird immer wenn ein Wochentag eingegeben wird, untereinander die nachfolgenden Tage aufgeführt. Im Moment wird für 7 Tage die Tagesnamen aufgefüllt. Beispiel: Bei Eingabe für Dienstag werden untereinander die Tage Mittwoch, Donnerstag, Freitag, Samstag, Sonntag, Montag aufgeführt. Sollen es mehr werden, dann einfach in dem VBA Code in den Zeilen

Cells(Target.Row + 6, Target.Column)), Type:=xlFillDefault

die Zahl 6 tauschen.

Ich hoffe Du kommst klar. Bei Fragen melde DIch. Wie Du den Code in Deine Datei bekommst, hat cmkatz ja schon beschrieben. Solltest Du damit nicht klar kommen, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 2 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 6 von Alexx1

Hallo an alle,
ich bedanke mich bei cmkatz und coros, Ihr seid super, hat bisschen länger gedauert,bis ich es hingekriegt habe, aber es klappt.

mein Programm ist inzwichen fertig, ich fange mit einem neuen programm an, und mal sehen wie weit ich komme.

Danke nochmal

Alex

Antwort 7 von cmkatz

Hallo Alex,

kein Thema und danke für die Rückmeldung!

Viel Spass beim Programmieren.

:-)

Gruß
cmkatz

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: