Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1704to1708
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 Wert gegenchecken

VBA Wert gegenchecken
13.08.2019 14:12:11
Raphael
Hallo, ich bins mal wieder.
vor einer Woche ca. wurde mir hier schonmal geholfen.
Nun muss ich bei der VBA nochmals eine kleine Änderung vornehmen, stehe aber abermals wie der Ochse vorm Berg...
Folgendes:
die aktuelle ist soweit richtig. ich gebe in Sheet "Mitarbeiter2019" Daten ein. Diese werden über eine Formel asugewertet. Anschließend wird über das VBA der Wert kopiert und immer wieder untereinander im Sheet "Übersicht2019" eingesetzt. Soweit so gut. Nur habe ich eine kleinigkeit übersehen:
Falls die Daten, die ich in "Mitarbeiter2019" eingegeben habe nicht richtig sind, kann ich diese ja dort ändern. Allerdings werden dann die alten Daten nicht überschrieben, sondern die nächste zeile wird befüllt.
Ich bräuchte also einen Gegencheck, der die KW in "Mitarbeiter2019" (Zelle H6) mit der in "Übersicht2019" (diese befinden sich in D4:D56) vergleicht. Sollte diese gleich sein, sollten die Werte überschrieben werden, falls ungleich, in die nächste Zeile...
hier ist der Code:
Sub aktualisieren2019()
'kopieren des Datums aus Zelle H5 in Mitarbeiter nach Übersicht2019
Application.ScreenUpdating = False
With Worksheets("Übersicht2019")
Dim a As Long
a = .Cells(Rows.Count, 2).End(xlUp).Row + 1  'a ist die erste leere Zelle in Spalte B
If .Range("B1") = "" Then b = 1
Worksheets("Mitarbeiter2019").Range("H5").Copy 'Wert aus Mitarbeiter wird kopiert
Range("B" & a).PasteSpecial Paste:=xlPasteValues 'Wert wird eingefügt
End With
Application.CutCopyMode = False  'Kopierspeicher leeren
'kopieren des Wertes aus Zelle H30 in Mitarbeiter nach Übersicht2019
With Worksheets("Übersicht2019")
Dim c As Long
c = .Cells(Rows.Count, 2).End(xlUp).Row + 1 'a ist die erste leere Zelle in Spalte B
If .Range("F1") = "" Then b = 1
Worksheets("Mitarbeiter2019").Range("H30").Copy  'Wert aus Mitarbeiter wird kopiert
Range("F" & a).PasteSpecial Paste:=xlPasteValues  'Wert wird eingefügt
End With
Application.CutCopyMode = False 'Kopierspeicher leeren
'kopieren des Wertes aus Zelle Q18 in Mitarbeiter nach Übersicht2019
With Worksheets("Übersicht2019")
Dim d As Long
d = .Cells(Rows.Count, 2).End(xlUp).Row + 1 'a ist die erste leere Zelle in Spalte B
If .Range("G1") = "" Then b = 1
Worksheets("Mitarbeiter2019").Range("Q18").Copy 'Wert aus Mitarbeiter wird kopiert
Range("G" & a).PasteSpecial Paste:=xlPasteValues  'Wert wird eingefügt
End With
Application.CutCopyMode = False      'Kopierspeicher leeren
Application.ScreenUpdating = True    'Aktualisierung einschalten
End Sub

Bis hierhin schon einmal vielen Dank!
LG,
Raphael

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Wert gegenchecken
13.08.2019 17:35:56
onur
Poste doch mal die Datei.
AW: VBA Wert gegenchecken
13.08.2019 22:23:53
Raphael
Die habe ich jetzt leider nicht zur Hand. Wofür wäre die denn relevant?
Eigentlich müsste ja nur eine If schleife rein, die checkt, ob die KW von dem Blatt "Mitarbeiter2019" gleich der KW in der Range (D4:D56) ist?
und falls ja, müssten die Werte, die schon drin stehen, überschrieben werden.
Falls nein: müsste der normale code, der schon vorhanden ist kommen, oder?
Aber ich wüsste auch nicht, wie ich das dann Überschreiben soll..
AW: VBA Wert gegenchecken
13.08.2019 22:51:37
onur
"Wofür wäre die denn relevant?" - Vielleicht, um deinen Code programmieren und testen zu können?
Dein recht wirrer Code aleine reicht dazu nicht aus.
Anzeige
AW: VBA Wert gegenchecken
13.08.2019 23:17:10
Raphael
https://www.herber.de/bbs/user/131426.xlsm
Tut mir leid das ich nachfrage - dachte das wäre erlaubt (der ton macht die Musik ;))
Also ich habe jetzt kurz eine ähnliche Datei erstellt..
Kurz nochmal zur Erklärung:
Ich trage in Sheet "Mitarbeiter2019" das aktuelle Datum ein und die Stunden in den Zeilen H7:H12 und Q7:Q9.
Dann gehe ich auf das Sheet "Übersicht2019", klicke den Button. Die Zellen, die in Sheet "Mitarbeiter2019" gelb markiert sind, werden kopiert und in Spalte B, F und G eingetragen.
Hier liegt das Problem: die Werte werden immer untereinander gesetzt - an sich richtig, allerdings nicht, wenn ich nochmal bspw. KW 33 ändern möchte, dann sollten die Werte überschrieben werden.
Ich hoffe, das ganze ist jetzt nicht mehr so wirr..
Anzeige
AW: VBA Wert gegenchecken
13.08.2019 23:55:43
Raphael
aaah super! Das ist ja wesentlich besser als die Version davor. Tausend Dank!
Eine bitte noch:
Kannst du es noch so umschreiben, das es auch überschrieben wird, wenn die KW gleich ist?
kann ja sein, dass ich die Daten mal Montags eintrage, Mittwochs aber ändere. Dann habe ich ein anderes Datum, aber die gleiche KW
AW: VBA Wert gegenchecken
15.08.2019 09:47:50
Raphael
Habs selbst hinbekommen. Topic kann dann geschlossen werden.
Danke für die Hilfe!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige