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

Abhängigen Zellenwert mittels VBA löschen

Abhängigen Zellenwert mittels VBA löschen
23.07.2014 00:42:37
FelixP
Hallo liebe Excelgemeinde,
ich habe heute das erste Mal mit VBA gearbeitet und verzweifle fast. Mein Problemist folgendes.
Ich habe im Bereich G14 Namen in einer Dropdown Liste. Sofern ein Name ausgewählt wird, soll in der Zelle I14 das Tagesdatum eingetragen werden. Dieses Tagesdatum soll aber nur geändert werden, wenn der Name aus G14 gelöscht wird.
Ich hatte mir dieses Makro aus dem Internet kopiert:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Intersect(Range("G14"), Target) Is Nothing Then Exit Sub
Range("I" & Target.Row).Value = Now()
Range("I" & Target.Row).NumberFormat = "dd/mm/yyyy"
End Sub
Nur kann ich es leider nicht realisieren, dass das Datum unveränderlich ist (bei Tageswechsel) und das es wieder gelöscht wird, sofern der Name auf G14 gelöscht wird.
Ich suche seit Stunden in diversen Excelforen, auch hier, nach einer Lösung, aber das für mich passende konnte ich bisher nicht finden. Ich muss dazu sagen, dass ich absolut unbeleckt im Umgang mit VBA bin.
Ist es überhaupt möglich das so zu realisieren, wie ich es beschrieben habe?
Ich hoffe ich konnte mich verständlich ausdrücken.
Gibt es dort eine Möglichkeit das zu realisieren?
Vielen Dank an Euch im Voraus.
Lieben Gruß
Felix

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abhängigen Zellenwert mittels VBA löschen
23.07.2014 06:44:55
Hajo_Zi
Hallo Felix,
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$G$14" Then
Application.EnableEvents = False
If Target  "" Then
Range("I" & Target.Row).Value = Now()
Range("I" & Target.Row).NumberFormat = "dd/mm/yyyy"
Else
Range("I" & Target.Row).ClearContents
End If
Application.EnableEvents = True
End If
End Sub

AW: Abhängigen Zellenwert mittels VBA löschen
23.07.2014 08:50:38
FelixP
Hallo Hajo,
vielen vielen Dank, das funktioniert prima.
Nun ist das Problem, dass sich Spalte G seit heute erweitert hat, sodass es von G14 bis G60 reichen muss.
Wie muss ich das abändern, so dass Excel mir dasselbe noch bei G15 in I15 schreibt usw.?
Vielen Dank schonmal für die Mühe und eure Geduld.
Lieben Gruß
Felix

Anzeige
AW: Abhängigen Zellenwert mittels VBA löschen
23.07.2014 08:56:03
Hajo_Zi
Hallo Felix,
Option Explicit                                     ' Variablendefinition erforderlich
Private Sub Worksheet_Change(ByVal Target As Range)
'* H. Ziplies                                  *
'* 23.07.14                                    *
'* erstellt von HajoZiplies@web.de             *
'* http://Hajo-Excel.de/
Dim RaBereich As Range                          ' Variable für Bereich
Dim RaZelle As Range                            ' Variable für Zelle
Set RaBereich = Range("G14:G60")                ' Bereich der Wirksamkeit
' noch mehr Bereiche
'Set RaBereich = Union(Range("C11:AG11 , C13:AG13, C15:AG15 , C17:AG17"), _
'    Range("C35:AE35, C37:AE37, C43:AG43, C45:AG45 , C47:AG47 , C49:AG49"), _
'    Range("C67:AF67 , C69:AF69 , C75:AG75 , C77:AG77 , C79:AG79 , C81:AG81"), _
'    Range("C99:AF99 , C101:AF101, C107:AG107 , C109:AG109 , C111:AG111"), _
'    Range("C127:AG127 , C129:AG129 , C131:AG131 , C133:AG133 , C139:AF139"), _
'    Range("C155:AG155, C157:AG157 , C159:AG159 , C161:AG161 , C163:AG163"), _
'    Range("C179:AF179 , C181:AF181, C187:AG187 , C189:AG189 , C191:AG191"))
' Zelle die in dem Bereich liegen auf die Variable schreiben
' damit werden nur noch die Zellen bearbeitet die im vorgegeben Bereich liegen
' jede Zelladresse ist einzeln angegeben
Set RaBereich = Intersect(RaBereich, Range(Target.Address))
If Not RaBereich Is Nothing Then
Application.EnableEvents = False
'ActiveSheet.Unprotect ("Passwort")
For Each RaZelle In RaBereich
With RaZelle
If .Value  "" Then
Range("I" & .Row).Value = Now()
Range("I" & .Row).NumberFormat = "dd/mm/yyyy"
Else
Range("I" & .Row).ClearContents
End If
End With
Next RaZelle
'ActiveSheet.protect ("Passwort")
Application.EnableEvents = True
End If
Set RaBereich = Nothing                         ' Variable leeren
End Sub
Gruß Hajo
Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige