Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1636to1640
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 mit Werten aus Schleife befüllen

MsgBox mit Werten aus Schleife befüllen
02.08.2018 11:36:50
Andrea
Hallo zusammen,
ich habe eine Datei mit 6 Tabellen und möchte vor dem Speichern prüfen, ob in einer der Tabellen noch ein Fehlerwert enthalten ist. Wenn ja, soll eine Msgbox ausgegeben werden, die mir sagt, in welcher Tabelle (Angabe des Tabellennamens) wie viele Fehlerwerte auftauchen. Dazu habe ich bereits folgenden Code geschrieben:
Sub Fehler_hervorheben()
Dim ws          As Worksheet    'Referenz auf ein Worksheet
Dim sheetNr     As Long         'Nummer des aktuellen Sheets
Dim c           As Range
Dim Zähler      As Integer
For sheetNr = 1 To Worksheets.Count
Set ws = Worksheets(sheetNr)
Zähler = 0
For Each c In Worksheets(sheetNr).UsedRange
If IsError(c) Then Zähler = Zähler + 1
Next c
Next sheetNr
MsgBox Worksheets(1).Name & ": " & Zähler & vbLf & _
Worksheets(2).Name & ": " & Zähler & vbLf & _
Worksheets(3).Name & ": " & Zähler & vbLf & _
Worksheets(4).Name & ": " & Zähler & vbLf & _
Worksheets(5).Name & ": " & Zähler & vbLf & _
Worksheets(6).Name & ": " & Zähler
End Sub
Probleme:
1

In der Msgbox werden zwar die Blattnamen alle richtig angegeben, aber natürlich immer derselbe Fehleranzahlwert; nämlich der von der letzten Tabelle, da ich einfach nicht weiß, wie ich es anstellen soll, dass er sich den Zählerwert von jeder einzelnen Tabelle merkt.
2
Dumm ist auch, dass ich in der MsgBox die Namen der Tabellenblätter hart mit 1-6 angebe. Wenn ein 7. Blatt hinzukommt, dürfte es nicht mehr funktionieren. Wie kann ich auch das variabel halten?
Vielen Dank und beste Grüße
Andrea

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: MsgBox mit Werten aus Schleife befüllen
02.08.2018 11:54:05
MatthiasG
Hallo Andrea,
Ungetestet: Definiere einen String für die Fehlermeldung und erweitere diesen innerhalb der Schleife:

Dim msg As String
If IsError(c) Then
Zähler = Zähler + 1
msg = msg & Worksheets(sheetNr).Name & ": " & Zähler & vbLf
End If
' unten dann:
If Len(msg)>0 then MsgBox msg

Gruß Matthias
AW: MsgBox mit Werten aus Schleife befüllen
02.08.2018 11:57:16
Matthias
Hallo
Option Explicit
Sub Fehler_hervorheben()
Dim ws          As Worksheet    'Referenz auf ein Worksheet
Dim sheetNr     As Long         'Nummer des aktuellen Sheets
Dim c           As Range
Dim Zähler      As Integer
Dim Strg As String
For sheetNr = 1 To Worksheets.Count
Set ws = Worksheets(sheetNr)
Zähler = 0
For Each c In Worksheets(sheetNr).UsedRange
If IsError(c) Then Zähler = Zähler + 1
Next c
Strg = Strg & vbLf & Worksheets(sheetNr).Name & ": " & Zähler
Next sheetNr
MsgBox Strg
End Sub
Gruß Matthias
Anzeige
AW: MsgBox mit Werten aus Schleife befüllen
02.08.2018 11:59:51
EtoPHG
Hallo,
so:
    Dim ws As Worksheet
Dim c As Range
Dim Zähler As Long
Dim msg As String
For Each ws In Worksheets
For Each c In ws.UsedRange
If IsError(c) Then Zähler = Zähler + 1
Next c
msg = msg & ws.Name & ":" & Zähler & vbCrLf
Zähler = 0
Next ws
If Len(msg) > 0 Then MsgBox msg
Gruess Hansueli
AW: MsgBox mit Werten aus Schleife befüllen
02.08.2018 12:24:51
Andrea
Vielen Dank an alle. Klappt prima.
Gruß Andrea

112 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige