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

VBA: Datum verschieben und in Zelle hinzufügen

VBA: Datum verschieben und in Zelle hinzufügen
Boris
Hallo Forum,
ich habe ein kleines Problem mit einem VBA code und hoffe hier kann mir jemand helfen.
Situation ist folgende:
a) ich habe eine Excel Tabelle mit Aufgaben; das Zieldatum steht in Spalte G.
b) Bei einer Verzögerung soll das Datum in G nach H verschoben werden (um einen Überblick über die Historie zu wahren).
c) Sollte Sich das Datum in G nochmals ändern, so soll das Datum in H hinzugefügt werden.
Zusatz:
+ Spalte G soll als Datumsformat TT/MM/JJ in schwarzz anzeigen
+ Spalte H soll jedes Datum in TT/MM/JJ in rot durchgestrichen anzeigen
Ich habe hierfür folgenden Code:

Sub Action_Delayed()
' Macro Delayed Action
Cells(ActiveCell.Row, 7).Activate
S = Chr$(10)                                                'separator skip line
Sheets("Actions").Select                                    'confirms worksheet
Actual = ActiveCell.FormulaR1C1
Col = ActiveCell.Column
If Col = 7 And ActiveCell.Value  "" Then
Actual = Format(Actual, "dd/mm/yy")                     'select actual date and add  _
separator
Delay = Format(Actual, "dd/mm/yy")                      'format delay date
Delay = ActiveCell.Offset(0, 1).FormulaR1C1             'copy delayed field
If Delay = "" Then
ActiveCell.Offset(0, 1).FormulaR1C1 = Actual         'update delayed field
With Selection.Font                                  'add red color
.Color = -16776961
.TintAndShade = 0
End With
Else
ActiveCell.Offset(0, 1).FormulaR1C1 = Delay + S + Actual
End If
ActiveCell.Value = ""
End If
End Sub

Problem ist folgendes:
1. in der Situation C wird zwar das Datum in H eingefügt, jedoch ist geht das Datumsformat verloren und das Datum wird numerisch angezeigt
2. Meine Spalte G wird mit roter Schrift formatiert
3. Spalte H with im Dtaumsformat MM/TT/JJ angezeigt
4. der Code funktioniert manchmal, manchmal aber auch nicht. Soll heissen, es ist unabhängig vom User, PC, Spracheinstellungen, etc...
Kann mir hier bitte jemand den rechten Weg weisen.
Dnake & Gruß,
Boris

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

Betreff
Benutzer
Anzeige
AW: VBA: Datum verschieben und in Zelle hinzufügen
06.09.2012 12:34:04
Matze,Matthias
Hallo Borris,
bin nicht der Profi in Sachen VBA aber wenn deine Bedingungen erfüllt sind, kannst du doch am Ende des Codes den Spalten das Format zuweisen.
Vorrausgesetz die sollen immer je Spalte gleich sein.
Gruß Matze

AW: VBA: Datum verschieben und in Zelle hinzufügen
06.09.2012 13:16:03
fcs
Hallo Boris,
den Zellen der Spalte G (alle Zellen!) weist du das benutzerdefinierte Zahlenformat TT/MM/JJ zu. Das muss nicht im Makro erfolgen.
Für Zellen der Spalte H (alle Zellen!) kannst du die Schriftformat Farbe Rot und durchgestrichen festlegen.
Die Zellen der Überschriften danach wie gewünscht formatieren. Das muss nicht unbedingt im Makro erfolgen.
Mit den nachfolgenden ANpassungen sollte dann der Delay-Datumstext korrekt eingetragen werden.
Die Rot-Durchgestrichen-Formatierung für Zelle in Spalte G ist noch drin.
Gruß
Franz
Sub Action_Delayed()
' Macro Delayed Action
Dim S As String
Dim Col As Long
Dim Actual As String, Delay As String
If ActiveSheet.Name  "Actions" Then                 'checks worksheet
Sheets("Actions").Activate
End If
Cells(ActiveCell.Row, 7).Activate
S = Chr$(10)                                          'separator skip line
With ActiveCell
Col = .Column
If Col = 7 And .Value  "" Then
Actual = Format(.Value, "DD\/MM\/YY")           'select actual date
Delay = .Offset(0, 1).Text                      'copy delayed field
'update delayed field
If Delay = "" Then
.Offset(0, 1).Value = "'" & Actual    'das Hochkomma verhindert Umwandlung von  _
Text in Datum
Else
.Offset(0, 1).FormulaR1C1 = Delay & S & Actual
End If
'Delay-Zelle formatieren
With .Offset(0, 1).Font
.Color = -16776961   'add red color
.TintAndShade = 0
.Strikethrough = True
End With
.ClearContents
End If
End With
End Sub

Anzeige
AW: VBA: Datum verschieben und in Zelle hinzufügen
07.09.2012 09:16:28
Boris
Hallo Franz,
sehr genial - danke für Deine promte Hilfe - funktioniert super!
Nur noch etwas kleines kosmetisches:
das 2. delayed Datum würde ich gerne oben anstellen, jedoch nicht unten hinzufügen.
Hatte eigentlich erwartet, dass die Zeile "Delay & S & Actual" das macht...
Gruß,
Boris

AW: VBA: Datum verschieben und in Zelle hinzufügen
07.09.2012 10:37:14
fcs
Hallo Boris,
Delay ist immer der Wert in Spalte H, Actual der Wert in G.
Vertausche in der Zeile Actual und Delay, dann steht der letzte Wert aus Spalte G immer in der 1. Zeile.
Hättest du da nicht irgendwie selber drauf kommen können, wenn du die Reihenfolge ändern willst?
Gruß
Franz

Anzeige
AW: VBA: Datum verschieben und in Zelle hinzufügen
07.09.2012 20:58:51
Boris
Hallo Franz,
natürlich hätte ich da drauf kommen können und müssen! Peinlich...
Danke trotzdem nochmal für Deine Hilfe und wünsche Dir ein schönes Wochenende.
Gruß,
Boris

357 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige