Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

MsgBox Schleife
#11
(09.06.2017, 08:25)atilla schrieb: Nun zu Deiner Frage, was soll im einzelnen auftauchen?
Mit obigen Code werden die Überschriften gelistet. Ich gehe davon aus , dass sich in Zeile 1 Überschriften befinden.
Es werden Spalten A und D:j untersucht.
Was soll erscheinen, wenn in Spalte A leere, was wenn Spalte D, Spalte E usw...

Genau, in der Zeile 1 sind die jeweiligen Überschriften zu finden.
Folgender Text so jeweils erscheinen:
Spalte A: Die Nummerierung ist nicht vollständig
Spalte D: Die Betitelung ist nicht vollständig
Spalte E: Die Bewertung ist nicht vollständig
Spalte F: Die Bezeichnung ist nicht vollständig
Spalte G: Das Department fehlt
Spalte H: Die Wirkung ist nicht vollständig
Spalte I: Die Abteilung fehlt
Antworten Top
#12
Hallo joshua,

dann so:


Code:
Sub Vollständigkeits_Prüfung()
 Dim LastRow As Long, j As Long, n As Long
 Dim x
 Dim ati, frage
 Dim boVar As Boolean
 Dim varText
 Dim strgText As String
 
 strgText = "Leere Zellen in:"
 varText = Array("Die Nummerierung ist nicht vollständig", "Die Betitelung ist nicht vollständig", "Die Bewertung ist nicht vollständig", "Die Bezeichnung ist nicht vollständig", "Das Department fehlt", "Die Wirkung ist nicht vollständig", "Die Abteilung fehlt")
 With Sheets("tblOne")
   LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row
   ati = Range("A1:I" & LastRow)
   For j = 1 To 10
     If Application.CountA(Application.Index(ati, , j)) <> LastRow Then
       boVar = True
       strgText = strgText & vbLf & Space(5) & varText(n)
       n = n + 1
     End If
     If j = 1 Then j = 3
   Next j
 End With

 If boVar Then
   frage = MsgBox(strgText & vbLf & vbLf & "Möchten Sie dennoch weitermachen?", vbYesNoCancel, "Ich habe da mal eine Frage...")
   
   If frage = vbYes Then
     'hier geht es weiter bei "Ja"
   ElseIf frage = vbNo Then
     'hier geht es weiter bei "Nein"
     ThisWorkbook.Close True 'mit speichern der Änderungen
   Else
     'hier geht es weiter bei "Abbrechen"
   End If
 End If
 
End Sub

nicht wie oben sondern so:

Code:
Sub Vollständigkeits_Prüfung()
  Dim LastRow As Long, j As Long, n As Long
  Dim x
  Dim ati, frage
  Dim boVar As Boolean
  Dim varText
  Dim strgText As String
 
  strgText = "Leere Zellen in:"
  varText = Array("Die Nummerierung ist nicht vollständig", "Die Betitelung ist nicht vollständig", "Die Bewertung ist nicht vollständig", "Die Bezeichnung ist nicht vollständig", "Das Department fehlt", "Die Wirkung ist nicht vollständig", "Die Abteilung fehlt")
  With Sheets("tblOne")
    LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row
    ati = Range("A1:I" & LastRow)
    For j = 1 To 9
      If Application.CountA(Application.Index(ati, , j)) <> LastRow Then
        boVar = True
        strgText = strgText & vbLf & Space(5) & varText(n)
      End If
      If j = 1 Then j = 3
      n = n + 1
    Next j
  End With

  If boVar Then
    frage = MsgBox(strgText & vbLf & vbLf & "Möchten Sie dennoch weitermachen?", vbYesNoCancel, "Ich habe da mal eine Frage...")
    
    If frage = vbYes Then
      'hier geht es weiter bei "Ja"
    ElseIf frage = vbNo Then
      'hier geht es weiter bei "Nein"
      ThisWorkbook.Close True 'mit speichern der Änderungen
    Else
      'hier geht es weiter bei "Abbrechen"
    End If
  End If
 
End Sub
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • joshua
Antworten Top
#13
Hallo atilla!

Vielen Dank für deine Hilfe (:

Der Code funktioniert schonmal, leider werden aber nicht alle entsprechenden Texte angezeigt.
Anbei ist einmal eine Musterdatei.
Obwohl Spalte A und D:I leer sind (Zeile 2-4) wird mir nur der erste Text angezeigt (Nummerierung fehlt).
Wo liegt mein Fehler?


Angehängte Dateien
.xlsx   Muster.xlsx (Größe: 15,3 KB / Downloads: 2)
Antworten Top
#14
Hallo joshua,

bei mir sieht es so aus:[
Bild bitte so als Datei hochladen: Klick mich!
]


du musst in dieser Zeile:

Code:
 varText = Array("Die Nummerierung ist nicht vollständig", "Die Betitelung ist nicht vollständig", "Die Bewertung ist nicht vollständig", "Die Bezeichnung ist nicht vollständig", "Das Department fehlt", "Die Wirkung ist nicht vollständig", "Die Abteilung fehlt")

Die Bezeichnung entsprechend der Reihenfolge in der Tabelle auflisten.
Gruß Atilla
Antworten Top
#15
(09.06.2017, 09:33)atilla schrieb:
nicht wie oben sondern so:

Code:
Sub Vollständigkeits_Prüfung()
  Dim LastRow As Long, j As Long, n As Long
  Dim x
  Dim ati, frage
  Dim boVar As Boolean
  Dim varText
  Dim strgText As String
 
  strgText = "Leere Zellen in:"
  varText = Array("Die Nummerierung ist nicht vollständig", "Die Betitelung ist nicht vollständig", "Die Bewertung ist nicht vollständig", "Die Bezeichnung ist nicht vollständig", "Das Department fehlt", "Die Wirkung ist nicht vollständig", "Die Abteilung fehlt")
  With Sheets("tblOne")
    LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row
    ati = Range("A1:I" & LastRow)
    For j = 1 To 9
      If Application.CountA(Application.Index(ati, , j)) <> LastRow Then
        boVar = True
        strgText = strgText & vbLf & Space(5) & varText(n)
      End If
      If j = 1 Then j = 3
      n = n + 1
    Next j
  End With

  If boVar Then
    frage = MsgBox(strgText & vbLf & vbLf & "Möchten Sie dennoch weitermachen?", vbYesNoCancel, "Ich habe da mal eine Frage...")
    
    If frage = vbYes Then
      'hier geht es weiter bei "Ja"
    ElseIf frage = vbNo Then
      'hier geht es weiter bei "Nein"
      ThisWorkbook.Close True 'mit speichern der Änderungen
    Else
      'hier geht es weiter bei "Abbrechen"
    End If
  End If
 
End Sub

Ok, mit folgendem Code funktioniert nun garnichts mehr :/
Gehe zwar mit F8 alles durch, verstehe nun aber garnichts mehr ...

Die Bezeichnung entsprechend der Reihenfolge ist von dir ja bereits korrekt, hier müsste ich doch nicht mehr machen, richtig?


Angehängte Dateien
.xlsm   Muster.xlsm (Größe: 23,28 KB / Downloads: 6)
Antworten Top
#16
Hallo joshua,

so sieht es in Deiner .xlsm Datei nach Codeausführung aus:

[
Bild bitte so als Datei hochladen: Klick mich!
]



Ich weiß nicht, was Du machst, und was Du erwartest, was da wann passieren soll.
Der Code muss manuell oder per Schaltfläche gestartet werden, dass ist Dir klar?
Gruß Atilla
Antworten Top
#17
Hallo atilla,

ich lasse den Code ganz klassisch über F5 starten.
Auch wenn ich den Code komplett über F8 durchlaufe, erhalte ich keine MsgBox.

Ich starte mal den Rechner neu. Nicht das irgendwas im Hintergrund temporär gelagert ist, was Excel behindert könnte oder so.
Antworten Top
#18
Irgendwas stimmt mit der Range von der variable "ati" nicht so ganz:/
Änder ich diese auf
Code:
ati = Range("A1:A" & LastRow)
so erhalte ich fast alle Fehler/ Meldungen, außer die erste.
Antworten Top
#19
Hallo joshua,

wenn das Bild dem entspricht, was Du erwartest, dann hast Du andere Gegebenheiten bei Dir als die, die Du in Deiner Beispielmappe hast.

Du siehst, dass es bei mir funktioniert.
Gruß Atilla
Antworten Top
#20
Hallo atilla,

ich beziehe mich auf die Datei aus Post #15.
Ich bin nun Zuhause am Rechner und habe versucht die Prozedur zu starten.
Leider ohne Erfolg...

Irgendwas stimmt hier doch nicht. Mag vielleicht jemand anderes die Datei und den Code bei sich mal checken?
Gehe die ganze Zeit mit F8 durch, kann aber den Fehler nicht identifizieren  Undecided


Beste Grüße
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste