Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Joshua,
ich habe mir deine Datei aus Beitrag #15 heruntergeladen. Das Makro von Atilla funktioniert bei mir.
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
10.06.2017, 05:28
(Dieser Beitrag wurde zuletzt bearbeitet: 10.06.2017, 05:28 von schauan.)
Hallöchen,
also, bei mir läuft der Code zwar durch, funktioniert aber nicht. COUNTA im Array liefert mir hier immer die Anzahl der Felder, aber nicht die der nicht leeren ... Lastrow ist 7 und ...COUNTA auch immer.
Mit COUNT funktioniert es zumindest in Spalte A, weil die Zahlen gezählt werden.
Hier mal meine angepasste "Prinziplösung". Es werden zwar alle Spalten A:H geprüft, obwohl B und C nicht geprüft werden sollten, aber falls es nicht passt kann man noch ein If drumrum bauen
Code:
Sub test()
Dim strMsg As String, iCnt%, r As Range
'Schleife ueber Spalten A bis H
For iCnt = 1 To 8
'Bereich von Zeile 2 bis zur letzten gefuellten Zeile aus B setzen
Set r = Range(Cells(2, iCnt), Cells(Cells(Rows.Count, 2).End(xlUp).Row, iCnt))
'Wenn Leerzellen enthalten, dann
If Application.CountBlank(r) Then
'Meldungstext aufbauen
strMsg = strMsg & vbLf & r.SpecialCells(xlCellTypeBlanks).Address
'Ende Wenn Leerzellen enthalten, dann
End If
'Ende Schleife ueber Spalten A bis H
Next
'Meldung ausgeben
MsgBox strMsg
End Sub
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo,
das sind die Daten mit denen ich getestet habe:
Arbeitsblatt mit dem Namen 'tblOne' |
| A | B | C | D | E | F | G | H | I |
1 | 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 |
2 | a2 | b2 | c2 | d2 | e2 | f2 | g2 | h2 | i2 |
3 | a3 | b3 | c3 | d3 | e3 | f3 | g3 | h3 | i3 |
4 | a4 | b4 | c4 | d4 | e4 | f4 | g4 | h4 | i4 |
5 | a5 | b5 | c5 | d5 | e5 | f5 | g5 | h5 | i5 |
6 | a6 | b6 | c6 | | | f6 | g6 | h6 | i6 |
7 | a7 | b7 | c7 | | e7 | f7 | w | h7 | i7 |
8 | a8 | b8 | c8 | d8 | e8 | f8 | g8 | h8 | i8 |
9 | a9 | b9 | c9 | d9 | e9 | f9 | g9 | h9 | i9 |
10 | a10 | b10 | c10 | d10 | e10 | f10 | g10 | h10 | i10 |
11 | a11 | b11 | c11 | d11 | e11 | f11 | g11 | h11 | |
12 | a12 | b12 | c12 | d12 | e12 | f12 | g12 | h12 | i12 |
13 | a13 | b13 | c13 | d13 | e13 | f13 | g13 | h13 | i13 |
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg |
Das sind die Ergebnisse von CountA() für jede Spalte aus dem Direktfenster kopiert: 13 11 12 13 13 13 12 Spalten B und C sind ausgelassen.
Außerdem hat Stefan es auch bestätigt, dass es bei ihm funktioniert. In den Eingestellten Screenshots ist auch zu sehn, dass es bei mir funktioniert.
Falls es wirklich in bestimmten Versionen nicht funktioniert ist das ein Excel Bug.
@joshua
unten eine leicht veränderte Version ohne Array, bitte mal testen:
Code:
Sub Vollständigkeits_Prüfung()
Dim LastRow As Long, j As Long, n As Long
Dim 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
For j = 1 To 9
If Application.CountA(Application.Index(Range("A1:I" & LastRow), , 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
Registriert seit: 22.04.2016
Version(en): 2016
Hallo schauan, vielen Dank für deine Unterstützung (:
Hallo atilla, der neue Code funktioniert super (: Vielen Dank dafür!
Fragt sich nur, wo der Bug genau liegt, da es sich wohl wirklich um die Unterschiede der Versionen handelt.