Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
836to840
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
836to840
836to840
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Wi erweiter ich diesen Code um eine Spalte

Wi erweiter ich diesen Code um eine Spalte
16.01.2007 08:51:03
Kristijan
Wie erwiter ich diesen Code ume eine Spalte, hier wird bisher geprüft:
Wann A nicht leer aber Datum (Splate B) leer: Kommt eine Inputbox wo ich das Datum eiontrage und dann in die Zelle geschrieben wird...
Jetzt will ich noch prüfen.
Wie erweiter ich dfen unten stehenden Code?
Mein Ziel: Wenn in zb. A13 was steht und in B13 nichts soll kommen Datum fehlt (das klappt super). Wenn in A13 was steht, in B13 was steht aber in C13 nichts soll kommen: Uhrzeit fehlt (das brauch ich jetzt noch als Inputbox)
Und wenn einer was in B 13 oder C 13 schrweibt aber A 13 ist leer soll kommen...Bitte erst Spalte A füllen:
Das waren jetzt Beispiele für Reihe 13, natürlich wäre es super das dies dann bei allen Zeilen funktioniert, mit Schleife...Siehe Code

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim i As Long
Dim Datumfehlt As String
' Von Zeile 2 bis letzte volle in A
For i = 2 To Range("A65536").End(xlUp).Row
If Range("A2").Value <> "" And Range("B" & i).Value = "" Then
Range("B" & i).Select
Datumfehlt = InputBox("Es fehlt ein Datum," & (Chr(13)) & "Bitte eingeben", "Datum fehlt!")
Range("B" & i).Value = Datumfehlt
End If
Next
MsgBox "Komplett"
End Sub

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code-Erweiterung um eine Spalte
17.01.2007 04:47:22
Luc:-?
Hallo Kristijan!
1. Die Zeile If Range("A2").Value <> "" And Range("B" & i).Value = "" Then vergleicht aber alle B-Zellen stets nur mit Zelle A2, kann also so gar nicht super klappen.
2. Und wenn einer was in B13 oder C13 schreibt aber A13 ist leer, soll kommen... Bitte erst Spalte A füllen.
Dieser Fall sollte mit meiner dir bereits geposteten Ereignisprozedur eigentlich abgefangen sein! Gehört auch nicht an diese Stelle - vor dem Dateidruck! Ansonsten...

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Static DatumF As String, ZeitF As String
Dim i As Long, abb As Boolean
Const DatDef As String = "MM.TT.JJJJ", ZeitDef As String = "hh:mm:ss"
If IsEmpty(DatumF) Then DatumF = DatDef
If IsEmpty(ZeitF) Then ZeitF = ZeitDef
Rem Von Zeile 2 bis letzte volle in A
For i = 2 To Range("A65536").End(xlUp).Row
If Cells(i, 1).Value <> "" And (Cells(i, 2).Value = "" Then
di:         DatumF = InputBox("Bitte eingeben!", "Fehlendes Datum", DatumF)
abb = abb Or (DatumF = "")
If DatumF = "" Then GoTo ni
If DatumF = DatDef Then GoTo di
Cells(i, 2).Value = DatumF
ElseIf Cells(i, 1).Value <> "" And (Cells(i, 3).Value = "" Then
zi:         ZeitF = InputBox("Bitte eingeben!", "Fehlende Uhrzeit", ZeitF)
abb = abb Or (ZeitF = "")
If ZeitF = "" Then GoTo ni
If ZeitF = ZeitDef Then GoTo zi
Cells(i, 3).Value = ZeitF
End If
ni: Next i
Cancel = (MsgBox("Daten " & IIf(abb, "nicht ", "") & "komplett!" & IIf(abb, _
vbLf & "Trotzdem speichern?", ""), IIf(abb, vbYesNo + _
vbQuestion, vbOKOnly + vbInformation), "Dateistatus") > 6)
End Sub 

Ich habe die Inputs insoweit verbessert, dass ich einen Defaultwert für das Format vorgesehen habe (bitte entsprechend anpassen!). Nach der 1.Eingabe wird deren Wert als Default bei der nächsten Eingabe verwendet (bei OK wird dieser Wert verwendet und nichts muss eingegeben wdn!). Das bleibt so während der ganzen Excel-Sitzung! Wenn die Eingabe abgebrochen wird, wird zwar ohne Dateneintrag fortgesetzt, aber nach Zyklusdurchlauf die Unvollständigkeit mitgeteilt und gefragt, ob trotzdem gedruckt wdn soll. Bei Nein wird der Druck abgebrochen.
Übrigens wird nach Uhrzeit nur gefragt, wenn ein Datum angegeben wurde!
Und wie gesagt, für den anderen Fall die andere Ereignisprozedur verwenden!
Gruß Luc :-?
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige