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

Werte vergleichen und bei Änderung unterstreichen

Werte vergleichen und bei Änderung unterstreichen
18.07.2013 21:34:06
Tim
Hallo liebes Forum,
als VBA-Anfänger habe ich mir ein großes Projekt vorgenommen.
Ich mit euren zahlreichen Beiträgen weit gekommen.
Nun habe ich jedoch eine Frage, die ich mir leider nicht mit bestehenden Threads beantworten kann.
Ich habe eine Tabelle ("A:K") mit beliebig vielen Zeilen.
Die Spalten "H" und "J" sind leere Spalten und sollten auch leer bleiben.
In Spalte A befinden sich Leitungsbezeichnungen.
Diese sind in 100er-Schritten fortlaufend, beginnen bei 0100 und enden irgendwo im 4000er-Bereich nach. Prinzip folgend dargestellt:
0100
0100
0100
0200
0300
0300
0400
0500...
Zur besseren Übersicht soll ich jedes Mal, wenn sich die Leitungsbezeichnung ändert,
einen dicken Trennstrich zwischen den unterschiedlichen Werten und in der ganzen Zeile (A:K) einfügen.
Jedoch soll in den Spalten H und J kein Trennstrich sein, diese sollen leer bleiben.
Ich hoffe, dass ich mein Problem präzise genug geschildert habe.
Mein Versuch baut auf einem ähnlichen Forenbeitrag auf, scheitert aber meiner Meinung nach in der "Fragezeichenzeile" (siehe unten).
Wäre echt super, wenn mir jemand helfen mag.
Bis dahin: euch allen einen schönen Abend!!!
Tim

Sub Aenderung_Leitungsnummer()
Dim Zeile1 As Long    'Erste Verhgleichszeile
Dim Zeile As Long     'Zweite Vergleichszeile
Dim ZeileL As Long    'Letzte Datenzeile
Const Spalte = 1 'Spalte A, in der die Leitungsnummern bei Änderung durch dicke Linie  _
getrennt werden sollen
With ActiveSheet
ZeileL = .Cells(.Rows.Count, Spalte).End(xlUp).Row 'Letzte Datenzeile Spalte A
Zeile1 = Zeile 'Startzeile für 1. Wert merken.
Do Until Zeile > ZeileL
Zeile = Zeile + 1
If Zeile - Zeile1 > 1 Then 'mehrere identische Zeilen
'do nothing
Else
.Cells(Zeile, Spalte).Value = .Cells(Zeile - 1, Spalte).Value Then
End If
'Startzeile für nächsten Wert merken
Zeile1 = Zeile
End If
Loop
End With
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte vergleichen und bei Änderung unterstreichen
18.07.2013 22:39:11
Gerd
Hallo Tim,
ohne Fehlerbehandlung.
Sub Luecken_Linie()
Dim Bereich As Range, letzterWert As String, i As Long, X As Long
Set Bereich = Range(Range("A2"), Range("A2").End(xlDown))
letzterWert = Range("A2").End(xlDown).Text
For i = 200 To CLng(letzterWert) Step 100
X = Application.Match(Format(i, "0000"), Bereich, 0)
With Union(Bereich.Cells(X, 1).Resize(1, 7), Bereich.Cells(X, 9), Bereich.Cells(X, 11)). _
Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThick
End With
Next
End Sub
Gruß Gerd

Anzeige
AW: Werte vergleichen und bei Änderung unterstreichen
19.07.2013 09:43:14
Tim
Guten Morgen Gerd,
danke für die schnelle Hilfe.
Beim Testen deines Sub' stößt VBA in der "For"-Zeile auf den Laufzeitfehler 13 - Typen unverträglich.
Durch mein schlaues VBA Handbuch habe ich die meinung, das da was mit der Variablendeklarierung schief gelaufen ist. Aber lösen konnte ich das Problem trotzdem nicht.
Darf ich nochmal deine Hilfe in Anspruch nehmen?

AW: Werte vergleichen und bei Änderung unterstreichen
19.07.2013 19:35:41
Gerd
Hallo Tim,
lade bitte deine Datei hoch, mit der Tabelle( weitere Daten außer Spalte A kannst du anonymisieren) u.
dem Code.
Gruß Gerd

AW: Werte vergleichen und bei Änderung unterstreichen
21.07.2013 12:41:52
Tim
Hallo,
hier ist die teilanonymisierte Tabelle, so, wie sie mal aussehen soll:
Userbild
Ich habe mich geirrt, die Leitungsnummern wechseln nicht in 100er Schritten sondern in 10er Schritten.
Und bei jedem Wechsel sollte eine dicke Trennlinie durch die ganze Tabelle gehen.
Ich bin mir nicht sicher, welchen Code du meinst? Den, der gesamten Tabelle? Der bringt dir leider nichts, weil darin die Importierten Daten fehlen. So hättest du nur eine leere Tabelle. Und die Daten kann ich dir nicht schicken, weil ich denke, dass das Auftragsunternehmen an der Geheimhaltung interessiert ist.
Zudem ist er 18 Seiten lang und mit Sicherheit entgegen aller Regeln der Kunst. Versteh mich bitte nicht falsch, ich schicke ihn gern, aber ich denke er würde für mehr Verwirrung als für Aufklärung sorgen.
Einen schönen Sonntag wünsche ich!

Anzeige
AW: Werte vergleichen und bei Änderung unterstreichen
21.07.2013 13:21:13
Gerd
Hallo Tim,
eine Tabelle sagt mehr als 1000 Bilder.
Ändere mal versuchsweise:
Dim Bereich As Range, letzterWert As Long, i As Long, X As Long
Set Bereich = Range(Range("A3"), Range("A3").End(xlDown))
letzterWert = Range("A3").End(xlDown).Value
For i = 110 To letzterWert Step 10
Gruß Gerd

AW: Werte vergleichen und bei Änderung unterstreichen
21.07.2013 14:39:47
Tim
"Laufzeitfehler 13, Typen unverträglich" in Zeile:
letzterWert = Range("A3").End(xlDown).Value
Aus diesem Fehler werde ich nicht ganz schlau.
Ich habe gedacht, dass er auftritt, wenn man die Variablen falsch bestimmt hat.
Also habe ich versuchsweise "letzterWert" als Variant deklariert.
Dann war die Zeile okay, und trat in der nächsten Zeile wieder auf:
For i = 110 To letzterWert Step 10
Also habe ich auch i als Variant bestimmt.
Aber dadurch war der Fehler in dieser Zeile nicht zu beheben.
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige