Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1816to1820
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

Code richtig interpreitert?

Code richtig interpreitert?
01.03.2021 11:37:12
Seb
Hallo zusammen,
dies ist ein Nachtrag zu meiner vorherigen Frage: https://www.herber.de/forum/archiv/1812to1816/t1815823.htm
mit nun etwas konkreterer Beispielsmappe:
https://www.herber.de/bbs/user/144337.xlsm
Kurz: ich möchte das Datum für jeden Projektschritt aus dem ersten Blatt im zweiten Blatt festhalten. Ich habe den Code, den ich netterweise schon als Antwort bekommen habe, versucht, für mich verständlich aufzuschlüsseln, da ein Teil davon noch nicht ganz funktioniert. Ist meine Interpretation des Codes richtig? Was muss noch geändert werden, damit das zweite Blatt mit den Daten ausgefüllt wird?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim raZeile As Range, raSpalte As Range
If Target.Column = 14 Then 'Target befindet sich in diesem Blatt ("Übersicht") in Spalte N
If Target.Count = 1 Then
If Target = "" Then
Target.Offset(0, -2).ClearContents
Else
Target.Offset(0, -2) = Date
'bis hierhin funktioniert alles. Aktuelles Datum wird in Spalte L eingefügt, sobald  _
_
Eintrag in Spalte N verändert wird.
With Worksheets("Controlling")
Set raZeile = .Columns("A").Find(what:=Target.Offset(0, 9), LookIn:=xlValues,   _
_
lookat:=xlWhole)
'Der Eintrag in Blatt "Übersicht", Spalte W, wird in Blatt "Controlling",  _
Spalte A, gesucht und bei Übereinstimmung als raZeile festgelegt
If Not raZeile Is Nothing Then
Set raSpalte = .Rows(1).Find(what:=Target.Offset(0, 1), LookIn:=xlValues,   _
_
lookat:=xlWhole)
'Der Eintrag in Blatt "Übersicht", Spalte O, wird in Blatt "Controlling",   _
_
Reihe 1, gesucht und bei Übereinstimmung als raSpalte festgelegt
If Not raSpalte Is Nothing Then
.Cells(raZeile.Row, raSpalte.Column) = Date
'In die Zelle(raZeile.Row, raSpalte.Column) in Blatt "Controlling" wird  _
_
das aktuelle Datum eingefügt
End If
End If
End With
End If
End If
End If
Set raZeile = Nothing: Set raSpalte = Nothing
End Sub

Vielen Dank schon mal!

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code richtig interpreitert?
01.03.2021 12:45:00
Werner
Hallo,
es nervt, wenn man hier Beispieldateien hochgeladen bekommt, die in ihrem Aufbau vom Original abweichen. In den Fällen kommt es (siehe auch bei dir) dann immer wieder dazu, dass der (für die Beispieldatei) Code vom Beitragsersteller nicht auf den Aufbau der Originaldatei adaptiert werden kann.
Das ist lästig.
Hier der Code für die jetzt hier (und hoffentlich mit dem Original übereinstimmenden Aufbau) hochgeladene Datei (mit Kommentaren).
Private Sub Worksheet_Change(ByVal Target As Range)
Dim raZeile As Range, raSpalte As Range
'Spalte 14 (N) wird auf Änderung überwacht
If Target.Column = 14 Then
'Nur wenn keine Mehrfachauswahl
If Target.Count = 1 Then
'wird der Eintrag in Spalte N geleert
If Target = "" Then
'dann wird auch der Eintrag in Spalte L (Offset(0, -2) geleert
Target.Offset(0, -2).ClearContents
Else
'ansonsten wird in Spalte L (Offset(0, -2) das Datum geschrieben
Target.Offset(0, -2) = Date
'mit Blatt Controlling
With Worksheets("Controlling")
'Suche in Übersicht Spalte A den Wert aus Übersicht _
'Spalte W (Target = 14 Offset(0, 9) = W
Set raZeile = .Columns("A").Find(what:=Target.Offset(0, 9), _
LookIn:=xlValues, lookat:=xlWhole)
'wenn gefunden
If Not raZeile Is Nothing Then
'Suche in Controlling Zeile 2 den Suchbegriff aus Target = Spalte N
Set raSpalte = .Rows(2).Find(what:=Target, LookIn:=xlValues, _
lookat:=xlWhole)
'wenn gefunden
If Not raSpalte Is Nothing Then
'Datum in Zelle Fundzeile raZeile Spalte raSpalte schreiben
.Cells(raZeile.Row, raSpalte.Column) = Date
End If
End If
End With
End If
End If
End If
End Sub
Wozu hast du im Blatt Übersicht in Spalte O und im Blatt Controlling in Zeile 1 den Index deiner Pulldown Einträge hinterlegt und suchst dann mit dem Index aus Blatt Übersicht Spalte L im Blatt Controlling Zeile 1 nach diesem Index?
Die "Texteinträge" deiner Pulldown sind doch identisch mit den Überschriften in Zeile 2 im Blatt Controlling. Da kannst du dann doch direkt nach dem Pulldown-Eintrag in Zeile 2 in Controlling suchen.
Gruß Werner

Anzeige
AW: Code richtig interpreitert?
01.03.2021 12:46:20
ralf_b
Soweit ich das hier richtig verstanden habe und meinen Versuchen zufolge passt das schon. die werte werden in "Controlling" geschrieben. Was stimmt denn deiner Meinung nach nicht?
Wozu werden die Zahlen 1-4 neben den Dropdowntexten benötigt? Für die reine Spaltensuche sind die Nicht notwendig, da die Überschhriften mit den Dropdownbezeichnungen übereinstimmen.
gruß
rb

AW: Code richtig interpreitert?
01.03.2021 14:08:48
Seb
Hallo an alle,
vielen Dank für eure Hilfe, es scheint jetzt zu funktionieren. Tut mir leid, falls die Veranschaulichung missverständlich war - ich bin wirklich blutiger Anfänger und weiß nicht, was die Beantwortung der Frage vonseiten eines Helfers erleichtern würde. Die Tabelle im Original konnte ich leider nicht hochladen, da Sie zum einen sehr komplex ist und zum anderen vertrauliche Daten enthält. Ich werde nächstes Mal auf eine bessere Darstellung des Problems achten.
Daher ein riesengroßes Dankeschön für eure Mühe!

Anzeige
Gerne u. Danke für die Rückmeldung und..
01.03.2021 14:32:14
Werner
Hallo,
...hier geht es nicht um die Originaldatei oder sensible Daten (die kann man auch anonymisieren) sondern um die Tatsache, dass die hogeladene Datei in ihrem Aufbau exakt dem Original entspricht.
Gruß Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige