Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
984to988
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
984to988
984to988
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Statt "msgbox" Tabelle füllen

Statt "msgbox" Tabelle füllen
19.06.2008 12:54:00
Rainer
Hallo,
ich stehe vor folgenden Problem:
Ich überprüfe in einer großen Tabelle die Werte Farben etc. mittels eines Makros. Die Hinweise/Fehler, die in der Tabelle erkannt werden, werden bislang mittels msgbox-Befehl am Bildschirm angezeigt. (z.B. "Zeile 12: Falscher Zahlenbereich") Das war bislang auch ok so.
Nun habe ich mein Makro nach und nach erweitert und erhalte so viele Hinweise, dass eine Ausgabe am Bildschirm nicht mehr sinnvoll ist. Ich möchte nun genau diese Hinweise, die ich bislang am Bildschirm hatte, in ein Tabellenblatt "Meldungen" in die Spalte A einfügen.
Lässt sich so etwas realisieren?
Gruß
Rainer

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Statt "msgbox" Tabelle füllen
19.06.2008 13:00:27
Rudi
Hallo,
ja.
sheets("Meldungen").cells(rows.count,1).end(xlup).offset(1,0)=Meldungstext
Gruß
Rudi

AW: Statt "msgbox" Tabelle füllen
19.06.2008 13:29:09
Rainer
Hallo,
vielen Dank für die schnelle Antwort. Das funktioniert prima.
Besteht die Möglichkeit, das nur die Meldungen in das Tabellenblatt kopiert werden, die in der A-Spalte noch nicht vorhanden sind und die Meldungen, die in der A-Spalte vorhanden sind, allerdings beim nächsten Makrodurchlauf nicht mehr vorhanden sind gelöscht werden? Sonst wird es nach kurzer Zeit sehr unübersichtlich. Dann könnte ich in der B-Spalte mir Anmerkungen machen und hätte immer einen aktuellen Stand über die Meldungen.
Danke und Gruß
Rainer

Anzeige
AW: Statt "msgbox" Tabelle füllen
19.06.2008 13:01:23
Chris
Servus,
dann schreib doch statt Msgbox "Fehler..." einfach für die Msgbox Sheets("Meldungen").Range("A65536").End(xlUp).Offset(1, 0) = "Fehler..." und das bei allen Msgboxen, die einen Fehler anzeigen. Aber dran denken, irgendwann ist das Blatt voll.
Gruß
Chris

AW: Statt "msgbox" Tabelle füllen
19.06.2008 13:39:09
Rainer
Hallo,
vielen Dank für die schnelle Antwort. Das funktioniert prima.
Besteht die Möglichkeit, das nur die Meldungen in das Tabellenblatt kopiert werden, die in der A-Spalte noch nicht vorhanden sind und die Meldungen, die in der A-Spalte vorhanden sind, allerdings beim nächsten Makrodurchlauf nicht mehr vorhanden sind gelöscht werden? Sonst wird es nach kurzer Zeit sehr unübersichtlich. Dann könnte ich in der B-Spalte mir Anmerkungen machen und hätte immer einen aktuellen Stand über die Meldungen.
Danke und Gruß
Rainer

Anzeige
AW: Statt "msgbox" Tabelle füllen
19.06.2008 13:45:07
Rudi
Hallo,
dann lösche die Spalte doch am Beginn des Makros.
Gruß
Rudi

AW: Statt "msgbox" Tabelle füllen
19.06.2008 13:52:33
Rainer
Hallo Rudi,
an sich eine gute Idee. Ich würde mir in der B-Spalte nur gerne nähere Informationen bzw. Anmerkungen zu den Meldungen machen, bzw. je nach Dringlichkeit farbig markieren. Wenn ich die Spalte lösche und neu aufbauen lasse, geht der Bezug zu diesen Informationen dann verloren.
Wenn man die Meldungen "abgleichen" könnte, würde es mir sehr helfen.
Gruß
Rainer

AW: Statt "msgbox" Tabelle füllen
19.06.2008 14:30:00
Rudi
Hallo,
geht prinzipiell, ist aber recht aufwändig.
Man müsste erst alle Meldungen in einem Araay sammeln und am Schluss des Makros mit den bisherigen Melgungen abgleichen. Dafür müsste man aber deinen Code kennen.
Gruß
Rudi

Anzeige
AW: Statt "msgbox" Tabelle füllen
19.06.2008 14:56:00
Rainer
Hallo Rudi,
anliegend habe ich dir das prinzip meines Codes mitgeschickt. In dieser Schleifenart werden die Daten gegeneinander abgeglichen. Vielleicht nicht elegant gelöst, aber es funktioniert.

Sub test()
Dim psplan As String
Dim psquelle As String
Dim fehler As Boolean
For i = 0 To 800
psplan = Range("F3").Offset(i, 0)
psquelle = Range("F3").Offset(i, 1)
If psplan  psquelle And psquelle  "" Then
Range("F3").Offset(i, 0).Font.ColorIndex = 3
fehler = True
If fehler = True Then MsgBox ("Abweichung!! Zeile " & i + 3)
fehler = False
Else
Range("F3").Offset(i, 0).Font.ColorIndex = 1
End If
Next i
End Sub


Gruß
Rainer

Anzeige
AW: Statt "msgbox" Tabelle füllen
19.06.2008 15:47:00
Rudi
Hallo,
teste mal

Sub test()
Dim i As Integer
Dim psplan As String
Dim psquelle As String
Dim FEHLER As Boolean
Dim arrERRORS(1 To 800, 1 To 2), arrColors(1 To 800), n As Integer
For i = 0 To 800
psplan = Range("F3").Offset(i, 0)
psquelle = Range("F3").Offset(i, 1)
If psplan  psquelle And psquelle  "" Then
Range("F3").Offset(i, 0).Font.ColorIndex = 3
FEHLER = True
'Meldung merken
n = n + 1
arrERRORS(n, 1) = "Abweichung!! Zeile " & i + 3
If WorksheetFunction.CountIf(Sheets("Meldungen").Columns(1), arrERRORS(n, 1)) > 0 Then
'Wenn Meldung vorhanden, Bemerkung merken
With Sheets("Meldungen").Columns(1).Find(arrERRORS(n, 1))
arrERRORS(n, 2) = .Offset(0, 1)
arrColors(n) = .Offset(0, 1).Interior.ColorIndex  'Hintergrundfarbe der Bemerkung
End With
End If
FEHLER = False
Else
Range("F3").Offset(i, 0).Font.ColorIndex = 1
End If
Next i
With Sheets("Meldungen")
.Cells.Clear
.Range(.Cells(1, 1), .Cells(n, 2)) = arrERRORS
For i = 1 To n
.Cells(n, 2) = arrColors(n)
Next i
End With
End Sub


Gruß
Rudi

Anzeige
AW: Statt "msgbox" Tabelle füllen
20.06.2008 08:06:00
Rainer
Hallo Rudi,
das funktioniert schon ganz prima. Allerdings werden die Farbmarkierungen auf dem "Meldungen"-Tabellenblatt gelöscht. Wenn ich das Makro mehrmals durchlaufen lasse, wird in der letzten Zeile in der B-Spalte immer die Zahl -4142 ausgegeben. Kann man das noch ändern?
Da ich mehrere Schleifen meiner Art in dem Makro habe, wie muss ich deinen Code einbauen?
Gruß
Rainer

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige