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

automatisches kopieren

automatisches kopieren
09.06.2022 07:55:06
Ruben
Hallo alle miteinander, ich habe ein Excel Blatt mit Mitarbeiterdaten [dbPersonal]. in Spalte H2:H1000 befindet sich der Name. Das dazugehörige aktuelle Gehalt in Spalte AX2:AX1000, die Wochenstunden befindet sich in AO2:AO1000 und das Datum der Änderung wird in AZ2:AZ1000 erfasst. Wenn sich nun in der Spalte AX2:AX1000 (Gehalt) ein Wert ändert, so soll das neue Gehalt im Blatt [Gehaltsentwicklung] unter dem entsprechenden Namen in der nächsten freien Spalte (nach rechts) erfasst werden, sowie in der nächsten Spalte das Änderungsdatum mit Monat und Jahr und eine Spalte weiter nach rechts, die Wochenstunden. Ich habe die gleiche Frage ohne Wochenstunden vor kurzem erst gestellt und von UweD folgenden Code bekommen, der einwandfrei funktioniert – recht herzlichen Dank noch einmal. Leider schaffe ich es nicht auch noch die Wochenstunden in der Gehaltsentwicklung zu erfassen.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim RNG As Range, Zeile As Long, SpName As Integer, SpSuch As Integer, SpalteNeu As Integer
Dim NName As String, Tb1 As Worksheet, Tb2 As Worksheet
Set Tb1 = Sheets("dbPersonal")
Set Tb2 = Sheets("Gehaltsentwicklung")
SpName = 8 'Namen in Spalte H
SpSuch = 1 'Namen stehen in Spalte A
Set RNG = Tb1.Range("AX2:AX1000")
If Not Intersect(RNG, Target) Is Nothing Then
If Target  "" Then
NName = Tb1.Cells(Target.Row, SpName)
If NName  "" And WorksheetFunction.CountIf(Tb2.Columns(SpSuch), NName) > 0 Then
'Name gefunden in Zeile
Zeile = WorksheetFunction.Match(NName, Tb2.Columns(SpSuch), 0)
'letzte Spalte einer Zeile
SpalteNeu = Tb2.Cells(Zeile, Tb2.Columns.Count).End(xlToLeft).Column
Tb2.Cells(Zeile, SpalteNeu + 1) = Target
Tb2.Cells(Zeile, SpalteNeu + 2) = Format(Target.Offset(0, 2), "DD.MM.YYYY")
Else
MsgBox "Name unbekannt"
End If
End If
End If
End Sub

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: automatisches kopieren
09.06.2022 08:56:07
UweD
Hallo
Das Datum steht 2 Spalten dahinter ( also Offset +2 )
Die Wochenstunden stehen 9 Spalten davor ( also Offset -9 )
ergänze die 3. Zeile
ungetestet...

...
Tb2.Cells(Zeile, SpalteNeu + 1) = Target
Tb2.Cells(Zeile, SpalteNeu + 2) = Format(Target.Offset(0, 2), "DD.MM.YYYY")
Tb2.Cells(Zeile, SpalteNeu + 3) = Target.Offset(0, -9)
LG UweD
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige