Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1476to1480
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
Formel mit Datumsberechnung einfügen
04.03.2016 12:00:06
Kopenhagen
'Speichern Schaltfläche Ereignisroutine
Private Sub CommandButton3_Click()
Dim lZeile As Long
'Wenn kein Datensatz in der ListBox markiert wurde, wird die Routine beendet
If ListBox1.ListIndex = -1 Then Exit Sub
'Wir müssen prüfen, ob die ID Spalte auch gefüllt ist!!
If Trim(CStr(TextBox1.Text)) = "" Then
'Meldung ausgeben
MsgBox "Sie müssen mindestens einen Namen eingeben!", vbCritical + vbOKOnly, "FEHLER!" _
'Abbrechen der Speicherroutine
Exit Sub
End If
'Ausbauoption: Prüfen, ob die ID in Tabelle1 Spalte 1 schon vorhanden ist!
'Zum Speichern benötigen wir die Zeilennummer des ausgewählten Datensatzes
lZeile = 2 'Start in Zeile 2, Zeile 1 sind ja die Überschriften
'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht
Do While Trim(CStr(Tabelle1.Cells(lZeile, 1).Value))  ""
'Datensatz ID Spalte mit selektiertem Eintrag der ListBox vergleichen
If ListBox1.Text = Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) Then
'Eintrag gefunden, TextBoxen in die Zellen schreiben
Tabelle1.Cells(lZeile, 1).Value = Trim(CStr(TextBox1.Text))
Tabelle1.Cells(lZeile, 2).Value = TextBox2.Text
Tabelle1.Cells(lZeile, 4).Value = TextBox3.Text
Tabelle1.Cells(lZeile, 5).Value = TextBox5.Text
Tabelle1.Cells(lZeile, 6).Value = TextBox6.Text
Tabelle1.Cells(lZeile, 7).Value = TextBox7.Text
Date1 = Tabelle1.Cells(lZeile, 6).Value
Tabelle1.Cells(lZeile, 3).Value = Tabelle1.Cells(lZeile, 4).Value - (DateDiff("d", Date, Date1)  _
* Tabelle1.Cells(lZeile, 7).Value)
‘ Diese Zeilen funktionieren nicht. Muss mit den Datum zusammenhängen.
Originalformel lautet: C2=D2-((HEUTE()-F2)*G2). Diese soll mit den abspeichern der Textboxen  _
durchgeführt werden.
Wie kann ich das Problem lösen?
'Die ListBox muss nun neu geladen werden
'allerdings nur, wenn sich der Name (ID) geändert hat
If ListBox1.Text  Trim(CStr(TextBox1.Text)) Then
Call UserForm_Initialize
If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0
End If
Exit Do 'Vorzeitiges Ende, da der Datensatz schon gefunden ist
End If
lZeile = lZeile + 1 'Nächste Zeile bearbeiten
Loop
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel mit Datumsberechnung einfügen
05.03.2016 07:29:29
Crazy
Hallo
ich weiß ja nicht welche "Datümer" *sfg* du da eingibst
aber in meinem Test rechnet es hiermit
With Tabelle1
.Cells(lZeile, 1).Value = Trim(CStr(TextBox1.Text))
.Cells(lZeile, 2).Value = TextBox2.Text
.Cells(lZeile, 4).Value = CDate(TextBox3.Value)
.Cells(lZeile, 5).Value = TextBox5.Text
.Cells(lZeile, 6).Value = CDate(TextBox6.Value)
.Cells(lZeile, 7).Value = CLng(TextBox7.Value)
Date1 = .Cells(lZeile, 6).Value
.Cells(lZeile, 3).Value = .Cells(lZeile, 4).Value _
- (DateDiff("d", Date, Date1) * .Cells(lZeile, 7).Value)
End With

MfG Tom

Anzeige
AW: Formel mit Datumsberechnung einfügen
05.03.2016 22:10:57
René
Hi,
Tom hat dir ja schon einen Tip mit der With anweisung gegeben. Finde ich super, da die With anweisung viele Wiederholungen verringert.
Ich glaub bei dir weiß ich wo dein Fehler liegt, gucke hier mal, dies ist nur eines der ganzen beispiele, bei dir im Code:
Tabelle1.Cells(lZeile, 2).Value = TextBox2.Text
Müsste es nicht Worksheets("Tabelle1").Cells..... lauten?
Mit Worksheets("") weist man ja an, in welchem Tabellenblatt der Code laufen soll. Bze. welches Tabellenblatt er nutzen muss/wird/soll. Worksheets("") ist das für Tabellenblätter, wie Cells("") oder Range("") für die zellenauswahl.
Mfg
René

Anzeige
AW: Formel mit Datumsberechnung einfügen
05.03.2016 22:53:52
Crazy
Hallo René
das Worksheet muss nicht zwingend davor stehen
wenn man das Sheet mit dem Codenamen (der linke Name im Projektexplorer) anspricht
MfG Tom

AW: Formel mit Datumsberechnung einfügen
05.03.2016 23:01:02
René
Ah, danke dir.
Jetzt habe ich wieder etwas dazu gelernt.
Und natürlich gleich getestet.
Werde mich da auch mal weiter Kundig machen, was dabei alle Vor und Nachteile sind :).
Danke dir
Mfg
René

AW: Formel mit Datumsberechnung einfügen
05.03.2016 23:13:03
Crazy
Hallo René
der Vorteil mit dem Codenamen ist,
dass man danach das Tabellenblatt umbenennen kann wie man möchte
der Codename bleibt im Normalfall immer der gleiche
so braucht man dann den Code nicht ändern
MfG Tom
Anzeige

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige