Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1160to1164
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

MsgBox Error

MsgBox Error
Sascha
Hallo Forum
Ich habe ein Makro das beim Ausführen kontrolliert ob Daten in einer Spalte sind.
Wenn nicht kommt eine MsgBox wo man die Zeit eintragen soll die dann in die Spalte eingefügt wird.
Leider erscheint danach dann immer eine MsgBox mit
Abbruch Bitte Daten eingeben kann man das ändern das diese Meldung nicht kommt wenn man die Zeit eingegebn hat.
Gruß Sascha
Sub feierabendzeit()
Dim i As Long, z As Long, lngLastRow As Long
Dim myDate
With Sheets(1)
lngLastRow = .Cells.Find(What:="*", after:=Range("A1"), _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
For i = 4 To lngLastRow
If WorksheetFunction.CountA(.Range(.Cells(i, 1), .Cells(i, 13))) > 0 Then
If .Cells(i, 6) = "" Then
MsgBox "Bitte Daten eingeben !", vbCritical, "ABBRUCH"
Exit For
End If
If .Cells(i, 11) = "" Then
myDate = InputBox("Bitte Feierabendzeit vom: " & .Cells(i, 11).Offset(, -5) & "  _
eingeben!        z.B.: 19:30", "Heute ist der " & Date)
If IsDate(myDate) Then
z = i
Do
.Cells(z, 11) = myDate
z = z + 1
Loop Until .Cells(z, 6)  .Cells(i, 6)
Else
MsgBox "Bitte gültige Uhrzeit eingeben ! z.B.: 19:30", vbCritical, "Fehler"
Exit For
End If
End If
End If
Next
End With
End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
bitte den alten Beitrag erst schließen !
13.06.2010 18:20:32
Matthias
Hallo
warum neuer Beitrag ?
Dann schließe diesen wenigstens.
https://www.herber.de/forum/messages/1161584.html


If .Cells(i, 6) = "" Then
MsgBox "Bitte Daten eingeben !", vbCritical, "ABBRUCH"
Kann ich nicht ganz nachvollziehen. Wenn Du in Cells(i, 6) Daten drin hast, kommt doch die Meldung nicht, oder?
Gruß Matthias
wie Beitrag schließen !
13.06.2010 18:43:54
Sascha
Hallo Matthias L
Wie schliesse ich einen Beitrag?
Wenn in .Cells(i, 6) Zahlen stehen genauer gesagt steht dort ein Datum dann wird um eine Eingabe der Uhrzeit gebeten in einer MsgBox.
Wenn ich die Zeit eingebe und Enter Drücke kommt dann die MsgBox Bitte Daten eingeben.
Das soll aber nur kommen wenn in .Cells(i, 6) nichts steht.
Grüsse
Sascha
Anzeige
so:
13.06.2010 18:54:25
CitizenX
Hallo Mathias
Sub test()

Dim i As Long, z As Long, lngLastRow As Long
Dim myDate
With Sheets(1)
lngLastRow = .Cells.Find(What:="*", after:=Range("A1"), _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
For i = 4 To lngLastRow
    If WorksheetFunction.CountA(.Range(.Cells(i, 1), .Cells(i, 13))) > 0 Then
        If .Cells(i, 6) = "" Then
        MsgBox "Bitte Datum in Zeile " & i & "  eingeben !", vbCritical, "ABBRUCH"
        .Cells(i, 6).Activate
        Exit For
        End If
    
        If .Cells(i, 14) = "" Then
            myDate = InputBox("Bitte Feierabendzeit vom: " & .Cells(i, 14).Offset(, -8) & " eingeben!", "Heute ist der " & Date)
            If IsDate(myDate) Then
                z = i
                Do
                .Cells(z, 14) = myDate
                z = z + 1
                Loop Until .Cells(z, 6) <> .Cells(i, 6)
                Exit Sub
            Else
                MsgBox "Bitte gültige Uhrzeit eingeben !", vbCritical, "ABBRUCH"
                Exit For
            End If
        End If
    End If
Next
End With
End Sub

Grüße
Steffen
Anzeige
wie Beitrag schließen ...
13.06.2010 18:56:51
Matthias
Hallo
Dein alter Beitrag ist als "offen" deklariert, da Du "Frage noch offen" angeklickt hast.
Nun kann es sein das ich gerade hier antworte und im "offenen Beitrag" ein anderer Forumteilnehmer
versucht zu antworten.
Das ist Kontraproduktiv,
da der Eine vom Anderen nichts weiß und einer in dieser Zeit etwas anderes tun könnte.
Verstehst Du das ?
Zur Frage
Wenn ich die Zeit eingebe und Enter Drücke kommt dann die MsgBox Bitte Daten eingeben.
Das soll aber nur kommen wenn in .Cells(i, 6) nichts steht.
Dürfte ja eigentlich auch nicht
Probier mal so:
If .Cells(i, 6).Value = "" Then
MsgBox "Bitte Daten eingeben !", vbCritical, "ABBRUCH"
ansonsten müsstest Du mal ein Bsp. hochladen.
Ich hab keine Lust das erst nachzubauen.
Gruß Matthias
Anzeige
Beispiel hängt dabei
13.06.2010 20:14:51
Sascha
Hallo Matthias L
Verstehe schon das du da kein Beispiel bauen willst hab nur gedacht das es nicht aufwendig ist was an dem Makro zu ändern.
Hab deinen Vorschlag probiert aber ohne Erfolg. Darum nun hier mein Beispiel dazu.
Hoffe das noch Lust hast es zu probieren und ändern.
https://www.herber.de/bbs/user/70036.xls
Grüsse Sascha
ich finde keinen Fehler im Code
14.06.2010 17:16:22
Matthias
Hallo Sascha
Der Code macht genau das was Du vorgibst!
Userbild
In Deinem Beispiel ist Cells(i, 6) = leer, also i hat dabei den Wert 7 (Zeile 7)
Also wenn Zeile7 Spalte6 entpr. Cells(7,6) leer ist, rufst Du die MSGBox auf.
Gruß Matthias
Anzeige
Code anderst ändern
14.06.2010 21:05:23
Sascha
Hallo Matthias
Du hast recht hab da etwas falsch gedacht.
Im moment schaut der Code nach ob in Zeile 7 Spalte 6 Daten stehen oder nicht so wie du es sagst.
Der Code soll aber schauen ob in der Zeile F ab der Spalte 4 bis 300 ein Datum steht.
Das macht er auch.
Wenn nicht dann soll die MsgBox kommen Bitte Daten eingeben.
Das macht er auch.
Wenn dort Daten stehen soll nach der Uhrzeit gefragt werden für jeden DatumsTag.
Das macht er auch.
Aber dnan soll gut sein und er soll nichts mehr machen.
Nur kommt jetzt wieder die Meldung ABBRUCH Bitte Daten eingeben!
Das wer cool wenn das nicht merh kommt mehr will ich nicht.
Gruss Sascha
Anzeige
AW: Code anderst ändern
15.06.2010 04:54:32
Matthias
Hallo Sascha
Nur kommt jetzt wieder die Meldung ABBRUCH Bitte Daten eingeben!
Wenn Deine Zeilen bis 300 (Variable i=300) alle gefüllt sind, kommt die Meldung nicht mehr.
https://www.herber.de/bbs/user/70059.xls
Zur besseren Übersicht habe ich mal ein paar Zeilen ausgeblendet (die sind aber alle gefüllt)
Die MSGBox kommt nur, solange i kleiner 300 ist und Spalte(F) leer ist.
Kann es sein das Du einige Zeilen ausgeblendet hast und deshalb garnicht merkst
das irgendwo ein Datum fehlt? Denn dann kommt die MSGBox logischerweise wieder.
Gruß Matthias
Anzeige
Code in anderer Spalte
17.06.2010 21:09:52
Sascha
Hallo Matthias
Hab deine Excel Tabelle getestet und deine Funktioniert.
Beim vergleich zu meiner hab ich rausgefunden das dort in denn Spalten L; M; N; Code steht.
Dieser Code ist scheinabr dafür schuldig das nach eingabe der Uhrzeit der Abbruch fehler kommt.
Code aus Spalte L 7-300
=WENN(ISTZAHL(VERGLEICH(F4;'Import 202'!F:F;0)); INDEX('Import 202'!G:G;VERGLEICH(F4; 'Import 202'!F:F;0)); "")
Code aus Spalte M 7-300
=WENN(ISTZAHL(VERGLEICH(F4;'Import 202'!F:F;0)); INDEX('Import 202'!B:B;VERGLEICH(F4; 'Import 202'!F:F;0)); "")
Code aus Spalte N 7-300
=WENN(ISTZAHL(VERGLEICH(F4;'Import 202'!F:F;0)); INDEX('Import 202'!C:C;VERGLEICH(F4; 'Import 202'!F:F;0)); "")
Wenn ich diesen Code rauslösche klappt es aber Leider ist das nicht der Sinn der Sache.
Gruss Sascha
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige