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

Kommentare erweitern

Kommentare erweitern
29.03.2017 11:53:59
Dasha
Hallo Leute,
zweiter Anlauf. Bitte um Hilfe.
Es gibt 2 ganz kleine Tabellen: "Vorlage" und "Errorlist"
In der Tabelle "Vorlage" sind alle Fehler mit Grenzwerten aufgelistet.
Das Makro vergleicht alle Fehler der Errorlist mit der Vorlage und trägt den Vergleich als Kommentar ein. Ist der gleiche Fehler mehrmals in der Vorlage vorhanden, so wird auch mehrmals verglichen und die einzelnen Vergleiche als Kommentar geschrieben.
PROBLEM:
Falsche Kommentar werden eingetragen.
Code:
Sub Bewertung()
For i = 2 To 8 'Anzahl der Zeilen der Vorlage
For k = 2 To 4 'Anzahl der Zeilen der Errorlist
'Kommentar hinzufügen
If Cells(i, 2) = Cells(k, 6) Then 'Wenn Fehler in der Vorlage gefunden, dann
Cells(i, 3).ClearComments
Cells(i, 3).AddComment
Cells(i, 3).Comment.Visible = False
Cells(i, 3).Comment.Text Text:=a & Cells(i, 3) & " Nächsten Fehler überprüfen
End If
End If
Next k
Next i
End Sub

Datei:
https://www.herber.de/bbs/user/112504.xlsm

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kommentare erweitern
29.03.2017 12:08:28
Werner
Hallo Dasha,
Punkt 1 solltest du dir angewöhnen die Variablen zu deklarieren (hat in diesem Fall aber nichts mit deinem Problem zu tun)
Punkt 2:
du schreibst die Variable a in den Kommentar, bevor du sie überhaupt mit Werten gefüllt hast. Sprich du schreibst eine leere Variable in den Kommentar. Erst Variable füllen, dann in den Kommentar.
Sub Bewertung()
Dim i As Long
Dim k As Long
Dim a As String
For i = 2 To 8 'Anzahl der Zeilen der Vorlage
For k = 2 To 4 'Anzahl der Zeilen der Errorlist
'Kommentar hinzufügen
If Cells(i, 2) = Cells(k, 6) Then 'Wenn Fehler in der Vorlage gefunden, dann
a = Cells(i, 3) & " Nächsten Fehler überprüfen
End If
End If
Next k
Next i
End Sub
Gruß Werner
Anzeige
AW: Kommentare erweitern
29.03.2017 12:49:56
Dasha
Hallo Werner,
Variablen deklarieren habe ich jetzt aus Übersichtlichskeitsgründen weg gelassen, da das Makro trtzdem laufen wird. Grundsätzlich hast Du natürlich recht.
Mit der Variable a habe ich sehr viel ausprobiert und a = "" überall hinzugefügt, wo ich nur konnte. Das mit a ist eh nur ein möglicher Ansatz. Damit wollte ich nur auf das Problem hinweisen.
AW: Kommentare erweitern
29.03.2017 13:08:34
Werner
Hallo Dasha,
mit der Antwort kann ich jetzt nicht wirklich was anfangen.
Möglicherweise meinst du ja das:
Sub Bewertung()
Dim i As Long
Dim k As Long
Dim a As String
For i = 2 To 8 'Anzahl der Zeilen der Vorlage
For k = 2 To 4 'Anzahl der Zeilen der Errorlist
'Kommentar hinzufügen
If Cells(i, 2) = Cells(k, 6) Then 'Wenn Fehler in der Vorlage gefunden, dann
a = a & Cells(i, 3) & " Nächsten Fehler überprüfen
End If
End If
Next k
Next i
End Sub
Ansonsten schreib doch mal wie das Ergebnis in den Kommentaren aussehen soll.
Gruß Werner
Anzeige
AW: Kommentare erweitern
29.03.2017 13:26:04
Dasha
Mir ist noch ein Fehler unterlaufen, Werner.
Die beiden Tabellen musste ich vertauschen.
Ich habe eine neue Datei hochgeladen. Kommentare sind so drin, wie ich sie erwarte.
Makroerklärung:
Wenn ein Fehler in der Erroslist in der Vorlage existiert, dann vergleiche den Grenzwert. Wenn der Grenzwert aus der Errorlist kleener gleich dem aus der Vorlage ist, dann den durchgeführten Vergleich als Kommenar schreiben.
Wenn nicht kleiner gleich, dann suche den Fehler in der Vorlage weiter, mache den Vergleich nochmal.
und schreibe nun beide Vergleiche als Kommentar.
Ich hoffe das war verständlich.
https://www.herber.de/bbs/user/112509.xlsm
Anzeige
AW: @ Werner
29.03.2017 14:19:24
Werner
Hallo Dasha,
mit deiner letzten hochgeladenen Datei als Vorlage:
Sub Bewertung()
Dim loErrorList As Long
Dim loVorlage As Long
Dim i As Long
Dim k As Long
Dim a As String
loErrorList = Sheets("Bewertung_Errorlist").Cells(Rows.Count, 2).End(xlUp).Row
loVorlage = Sheets("Bewertung_Errorlist").Cells(Rows.Count, 6).End(xlUp).Row
For i = 2 To loErrorList
a = ""
For k = 2 To loVorlage
If Cells(i, 2) = Cells(k, 6) Then
a = a & Cells(i, 3) & "
Gruß Werner
Anzeige
AW: Werner ist Held des Tages!
29.03.2017 14:31:29
Dasha
VIELEN DANK!
AW: Gerne u. Danke für die Rückmeldung. o.w.T.
29.03.2017 15:04:53
Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige