Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1200to1204
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

Excel-VBA-Kombiniert für Zellvergleich

Excel-VBA-Kombiniert für Zellvergleich
TommiH
Moin,
ich habe ein Problem. Ich habe (immer mal wieder) einige Dateien mit 150-250 Spalten und ca. 100-1000 Zeilen. Das Problem besteht darin, das ich bestimmte Spalten auf die Gesamtsumme abgleichen muss. Also z.B. Spalte A+B+C=100 oder 0 und K+L=100 oder 0 und O+P+Q=100 oder 0.
Das Ganze soll nur visuell dargestellt werden, da dachte ich zunächst an die bedingte Formatierung nur sollte es halt möglichst einfach (mit wenigen Schritten) machbar sein.
Ich könnte ein VBA-Script schreiben, was die Spalte ABC aufaddiert und wenn 100 oder 0 rauskommt, dann bleibt alles wie es ist, wenn was anderes rauskommt, dann werden die 3 Zellen ROT.
Nur das ist enorm umständlich, da ich ja dann fix die Spalten angeben muss, bei 60-70 Vergleichen je Datei ist das eine Heidenarbeit.
Ist es irgendwie zu realisieren, das man z.B. einfach in der Exceldatei 2 Zellen (oder auch die Spalten) markiert und dann die dazugehörigen Spalten verglichen werden? Also kann ich in einem VBA-Script auf die in Excel gemachte Markierung zugreifen (ist vlt. 'ne dumme Frage, aber so eine 'Interaktion' habe ich noch nie gemacht, nur mit direkten Adressierungen in VBA gearbeitet)
Ich würde das ganze halt am liebsten mit MARKIER Anfang - MARKIER Ende - Klick - für einen Abgleich erledigen.
Tommi

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Excel-VBA-Kombiniert für Zellvergleich
11.02.2011 09:22:00
Rudi
Hallo,
Sub Vergleich()
Dim lngR As Long, rngTest As Range
Application.ScreenUpdating = False
With Selection
If .Columns.Count > 1 Then
For lngR = 1 To .Rows.Count
Set rngTest = .Cells(lngR, 1).Resize(, .Columns.Count)
Select Case Application.Sum(rngTest)
Case 0, 100
rngTest.Font.ColorIndex = xlAutomatic
Case Else
rngTest.Font.Color = RGB(255, 0, 0)
End Select
Next
End If
End With
End Sub

Gruß
Rudi
AW: Excel-VBA-Kombiniert für Zellvergleich
11.02.2011 09:32:43
TommiH
Ui - super, wobei damit zwar nicht die Zelle gefärbt wird, sondern nur die Zahl, geht aber auch.
Hm, der Haken bei der Variante ist allerdings, wenn man die Spalten komplett markiert läuft es ewig. Geht er mit (.Rows.Count) bei einer komplett markierten Spalte bis zum Ende der Datei?
Ich habe das mal fix auf die (aktuell) nötigen 540 gesetzt, dann klappts perfekt.
Nun muss ich nur noch rauskriegen wie man bei Excel 2007 (ist ja schon 'ne Umgewöhnung was die Bedienung angeht) ein Makro bleibend mit einem ICON zur Benutzung auf den Schirm bekommt, dann ist es perfekt.
DANKE!
Tommi
Anzeige
AW: Excel-VBA-Kombiniert für Zellvergleich
11.02.2011 09:46:05
Rudi
Hallo,
jetzt mit Hintergrundfarbe und nur belegter Bereich:
Sub Vergleich()
Dim lngR As Long, rngTest As Range
Application.ScreenUpdating = False
With Selection
If .Columns.Count > 1 Then
For lngR = 1 To Cells(Rows.Count, .Cells(1).Column).End(xlUp).Row
Set rngTest = .Cells(lngR, 1).Resize(, .Columns.Count)
Select Case Application.Sum(rngTest)
Case 0, 100
rngTest.Interior.ColorIndex = xlNone
Case Else
rngTest.Interior.Color = RGB(255, 0, 0)
End Select
Next
End If
End With
End Sub

Gruß
Rudi
AW: Excel-VBA-Kombiniert für Zellvergleich
11.02.2011 09:53:13
TommiH
Du bist unglaublich - DANKE !!! - und inzwischen habe ich auch gefunden wie ich ein Makro in die Schnellzugriffzeiile packe, nun geht es echt rasend schnell.
Wobei ich recht lange gesucht habe bis ich das Makro gefunden habe - ich wusste gar nicht, das der Name der SUB und nicht der des Scripts/Makros in der Auflistung (was man in die Menüleiste packen will) steht, habe nach 'Modul6' gesucht und nicht nach 'Vergleich' ;)
Tommi
Anzeige
Die Sub IST das Makro, Modul nur Container! orT
11.02.2011 11:48:53
Luc:-?
Gruß Luc :-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige