Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zellenwert erhöhen in Abhängigkeit vom Datumswerte

Zellenwert erhöhen in Abhängigkeit vom Datumswerte
11.10.2017 09:00:44
Tronn
Hallo zusammen,
habe eine Datei wo kalendertäglich in den Zeilen Werte eingefügt werden. Nachträglich stellt sich heraus (heute), dass z.B. in der Zeit vom 01.05.2017 bis 13.09.2017 in einer Zeile der Wert um x erhöht werden muss. Da es häufiger vorkommt, möchte ich aber nicht jedes Mal in der Zeile den Datumsbereich markieren und den Wert um x zu erhöhen. Bei ca. 50 Zeilen ist die Fehlerquelle sehr groß. Hat jemand eine Idee wie es vielleicht nachträglich nachvollziehbar sich die Wert um x erhöhen lässt,ohne den von mir beschriebenen Weg zu gehen, weil die Veränderung im Nachhinein nicht nachvollziehbar ist. Anbei habe ich eine kleine Bsp.Datei angehängt.
Hoffe, dass ich das Problem darstellen konnte und jemand einen guten Lösungsansatz für mich hat.
Vielen Dank
Tronn
https://www.herber.de/bbs/user/116866.xlsx

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nachfrage
11.10.2017 14:49:08
Michael
Hallo!
in der Zeit vom 01.05.2017 bis 13.09.2017
Die leider nicht in Deiner Bsp-Datei enthalten ist, daher anders dargestellt:
Der Werte der "Reihe 2" (Zeile 3) muss vom 02.01. bis 05.01. um 3 erhöht werden, d.h. am 02. und 03.01. soll dann "7" in der Zelle, am 03. und 05.01. "8" in der Zelle stehen, richtig?
LG
Michael
AW: Nachfrage
11.10.2017 15:06:51
Tronn
Hallo Michael,
ja richtig. Meine Datei war nicht weiter geführt worden,weil nur Beispiel.
Hast du eine Idee? Wäre dir sehr dankbar. 04.01 und 05.01 "8" in der Zeile 3 ist richtig
LG Tronn
AW: Nachfrage
11.10.2017 15:28:02
Michael
Hallo!
Hast du eine Idee?
Ja, grds. schon. Aus den Parametern Von-Datum, Bis-Datum und Reihe wird der zu ändernde Bereich festgelegt - alle Zellwerte dieses Bereichs werden mit dem angegebenen Erhöhungs-Wert addiert.
Ich gehe davon aus, dass Dir klar ist, dass dies eine Makro-Lösung erfordert?
Für die Umsetzung sind Parameter-Eingaben erforderlich: Welche Zeile ist betroffen (bei Dir über "Reihe" definiert), Von- und Bis-Datum, sowie der Erhöhungs-Wert. Wie sollen diese eingeholt werden? Über je einzelne Abfragen (Input-Boxen), auf einem zusätzlichen Tabellenblatt, in einer UserForm?...
LG
Michael
Anzeige
AW: Nachfrage
11.10.2017 15:54:18
Tronn
Hallo Michael,
mir ist schon klar, dass ich wahrscheinlich mit VBA arbeiten muss, aber meine Kenntnisse in dem Bereich gehen nur soweit, dass ich eine nur "kopieren" und vllt. noch abändern kann, aber nicht selbst schreiben.
Mit UserForm habe ich zwar noch nicht gearbeitet, aber wenn es nicht anders geht werde ich es auch noch lernen müssen ;-)
Wegen Nachhaltigkeit würde ich gerne die neuen Werte gerne über ein zusätzliches Tabellenblatt eingeben.
LG Tronn
Zum Testen
11.10.2017 16:29:44
Michael
Hallo Volker!
Hier Deine Bsp-Datei mit meinen Erweiterungen retour: https://www.herber.de/bbs/user/116880.xlsm
Makros finden sich im allgemeinen Modul1, sowie im Modul der Tabelle1.
Ich habe ein zweites Tabellenblatt "Tabelle2" hinzugefügt, wo Du die Parameter setzen kannst.
Funktionsweise:
- Der gesuchte Datumsbereich (Von/Bis) wird im Blatt2 eingetragen. Ich habe hier zur Eingabekontrolle auf eine Datengültigkeit gesetzt, schau auch dort nach.
- Der gewünschte Erhöhungswert wird im Blatt2 eingetragen (auch hier mit Datengültigkeit).
- Die Wert-Änderung wird im Blatt1 ausgelöst, wenn Du in der ersten Spalte der betroffenen Reihe einen Doppelklick ausführst (also in die erste Zelle der jeweiligen Zeile).
- Der Bereich, in dem Werte geändert wurden, wird ausgewählt/markiert.
Die Benennung der Tabellenblätter kannst Du ändern, musst dies dann aber auch im Code (im Modul1) entsprechend anpassen (ist kommentiert).
Hier nur der Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Target
If .Column = 1 And .Row > 1 And .Cells.Count = 1 Then
ZellwerteErhoehen (.Row)
Cancel = True
End If
End With
End Sub
Sub ZellwerteErhoehen(Zeile As Long)
Dim Wb As Workbook: Set Wb = ThisWorkbook
Dim WsZ As Worksheet: Set WsZ = Wb.Worksheets("Tabelle1") 'anpassen
Dim WsQ As Worksheet: Set WsQ = Wb.Worksheets("Tabelle2") 'anpassen
Dim Von As Range, Bis As Range, Bereich As Range, Zelle As Range
Application.ScreenUpdating = False
With WsZ
Set Von = .Range(.Cells(1, 2), _
.Cells(1, .Columns.Count).End(xlToLeft)).Find(what:=WsQ.Range("A3"), _
LookIn:=xlValues, lookat:=xlWhole)
If Not Von Is Nothing Then
Set Bis = .Range(.Cells(1, 2), .Cells(1, _
.Columns.Count).End(xlToLeft)).Find(what:=WsQ.Range("A4"), _
LookIn:=xlValues, lookat:=xlWhole)
If Not Bis Is Nothing Then
Set Bereich = .Range(.Cells(Zeile, Von.Column), _
.Cells(Zeile, Bis.Column))
For Each Zelle In Bereich
Zelle.Value = Zelle.Value + WsQ.Range("A5")
Next Zelle
Bereich.Select
Else:
MsgBox "Bis-Datum wurde nicht gefunden!"
Exit Sub
End If
Else:
MsgBox "Von-Datum wurde nicht gefunden!"
Exit Sub
End If
End With
Set Wb = Nothing: Set WsZ = Nothing: Set WsQ = Nothing
Set Von = Nothing: Set Bis = Nothing: Set Bereich = Nothing
Set Zelle = Nothing
End Sub
Kommst Du damit hin?
LG
Michael
Anzeige
AW: Zum Testen
11.10.2017 16:33:18
Tronn
Hallo Michael,
erst einmal vielen lieben Dank für deine Bemühungen. Ich werde es spätestens morgen ausprobieren und dir eine Rückmeldung geben.
LG Tronn
AW: Zum Testen
13.10.2017 07:57:26
Tronn
Hallo Michael,
habe gestern den Code kopiert und entsprechend das Tabellenblatt geändert, aber es funzt nur bedingt, weil er aus einer Reihe mit den Zahlen 1,2,1,2,1,3 wenn ich diese +10 erhöhe die Ergebnisse 10,22,31,42,51,63 liefert, also die vorherige Zahl umd 10 erhöht. Hast du eine Idee?
LG Tronn
Kann ich nicht nachvollziehen
13.10.2017 09:34:27
Michael
Hallo!
Kannst Du das Problem in einer Bsp-Datei für mich nachstellen?
Dein mein Code funktioniert in Deiner ursprünglichen Bsp-Datei völlig korrekt.
LG
Michael
Anzeige

342 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige