Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1216to1220
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

zellbezogene Prüfung via VBA

zellbezogene Prüfung via VBA
Sandra
Hallo zusammen,
ich brauche mal wieder Eure Unterstützung ...
Ich habe eine Datei bei der ab Zeile 65 bis Zeile 500 eine Prüfung erfolgen muss.
Und zwar muss in den Bereichen geprüft werden:
- wenn B65 >0
- dann muss es in den Zellen: C65, D65, E65, G65, O65, P65, Q65, R65 einen Inhalt geben. Dieser darf aber nicht =0 sein.
Diese Prüfung muss bis Zeile 500 erfolgen, wobei die Spalten gleichbleiben.
Also bis:
- wenn B500 >0
- dann muss es in den Zellen: C500, D500, E500, G500, O500, P500, Q500, R500 einen Inhalt geben. Dieser darf aber nicht =0 sein.
Wenn es in einer oder mehreren Zellen keinen Inhalt gibt oder der Inhalt =0 ist, dann muss eine Meldung erscheinen.
Könnt Ihr mir da bitte bitte weiterhelfen?
1000-DANK!!!!
Liebe Grüße
Sandra

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: zellbezogene Prüfung via VBA
07.06.2011 18:01:52
Hajo_Zi
Hallo Sandra,
benutze doch die bedingte Formatierung, falls Dir eine Markierung reicht.

AW: zellbezogene Prüfung via VBA
07.06.2011 19:24:10
Sandra
Hallo Hajo,
danke für die schnelle Antwort. Leider reicht mir das nicht. Die Datei, die geprüft werden soll entsteht nämlich immer erst mit Ausführung eines Makros. Und dieses Makro will/muss ich dahin gehend ergänzen, dass die genannten Bereiche geprüft werden.
Hast Du eine Idee, wie ich da weiter komme?
Danke & Gruß
Sandra
AW: zellbezogene Prüfung via VBA
07.06.2011 20:44:20
Gerd
Hallo Sandra,
ich habe unterstellt, dass in den zu prüfenden Zellen nur Zahlen, also keine Texte, vorkommen.
Sub Bedingte_Leer_und_Null_Prüfung()
Dim arr() As Variant
Dim intIndex As Integer
Dim strMessage As String
arr = Range("B65:R68").Value
For intIndex = 1 To UBound(arr)
If arr(intIndex, 1) > 0 Then
If arr(intIndex, 2) * arr(intIndex, 3) * arr(intIndex, 4) * arr(intIndex, 5) * arr( _
intIndex, 14) * _
arr(intIndex, 15) * arr(intIndex, 16) * arr(intIndex, 17) = 0 Then
strMessage = strMessage & vbLf & intIndex + 64
End If
End If
Next
If Len(strMessage) Then MsgBox "Leer- oder Nullwerte in Zeile:" & vbLf & strMessage
End Sub
Gruß Gerd
Anzeige
@Gerd: leider doch ...
07.06.2011 20:59:16
Sandra
Hallo Gerd,
leider kommt beides vor, je nachdem, um welche spalte es sich handelt. Die Null musste ich aber deshalb ausschließen, weil diese in den Zellen auftaucht, wenn die Quelldatei nicht ordnungsgemäß ausgefüllt wurde.
Ist es denn sehr viel Arbeit dieses abzuändern?
Ich werde Deinen Vorschlag morgen früh gleich mal einarbeiten und testen.
Lieben Dank
Sandra
AW: @Gerd: leider doch ...
07.06.2011 22:11:58
fcs
Hallo Sandra,
hier eine Variante die direkt die Zellinhalte auswertet und nicht die Zellwerte in ein Array einliest.
Bei vielen Zellen kann die Array-Variante deutlich schneller sein.
Gruß
Franz
Sub Bedingte_Leer_und_Null_Prüfung()
Dim Zeile As Long, Spalte As Long, wks As Worksheet
Dim strMessage As String
Set wks = ActiveSheet ' zu prüfendes Tabellenblatt
With wks
For Zeile = 65 To 500
If Not IsEmpty(.Cells(Zeile, 1)) Then 'oder
'    If .Cells(Zeile, 1).Value > 0 Then
For Spalte = 3 To 18
Select Case Spalte
Case 3 To 5, 7, 15 To 18 'Spalten C-D, G, O bis R
If .Cells(Zeile, Spalte).Value = 0 Or .Cells(Zeile, Spalte).Value = "" Or _
IsEmpty(.Cells(Zeile, Spalte)) Then
strMessage = strMessage & vbLf & Zeile
Exit For
End If
Case Else
'do noting
End Select
Next
End If
Next Zeile
End With
If Len(strMessage) Then
MsgBox "Leer- oder Nullwerte in Zeile(n):" & vbLf & strMessage, vbInformation, _
"Prüfen Eingabewerte"
Else
MsgBox "keine Leer- oder Nullwerte in den zu prüfenden Zellen gefunden!", vbInformation, _
"Prüfen Eingabewerte"
End If
End Sub

Anzeige
Eine Fehlermeldung...
08.06.2011 08:08:02
Sandra
...gibt es zwar nicht, aber ...
Guten Morgen Franz.
Ich habe Deinen Vorschlag eingearbeitet und auf dem ersten Blick funktioniert es auch. Aber auf dem zweiten Blick leider nicht.
Ich habe als Beispiel mal die Zelle G65 + G76 leer gelassen (dort gibt es eine DropDownListe). Auch habe ich C76 (diese ist komplett leer) mal ohne Inhalt durch die Prüfung laufen lassen. Ich bekomme immer die Meldung es sei alles okay, obwohl ich drei Zellen ohne Inhalt habe.
Wo kann das Problem liegen?
Danke und Gruß
Sandra
AW: Eine Fehlermeldung...
10.06.2011 02:42:28
fcs
Hallo Sandra,
hier meine Beispiel-/Testdatei in der nach Meiner Einschätzung alle Fehler erkannt werden.
Fehlerzellen werden per bedingter Formatierung hervorgehoben.
https://www.herber.de/bbs/user/75253.xls
Keine Ahnung warum es bei einigen Zellen bei dir Probleme gibt.
Die DropDownAuswahl (Datengpltiglkeitsprüfung ?) sollte eigentlich keine Probleme machen.
Potenzielle Problemkinder sind verbundene Zellen.
Gruß
Franz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige