Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
456to460
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
456to460
456to460
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
3 Spalten in markierten Reihen vergleichen
21.07.2004 14:15:28
Sabrina
Hallo,
ich verzweifle gerade an einem - für euch Profis bestimmt ganz leichtem -
VBA Problem:
Ich habe 3 Spalten in einem Exceldokument markiert und möchte jetzt
jede Reihe dieser markierten Spalten vergleichen und bearbeiten.
D.H. zuerst B2 mit C2 mit D2, danch B3 mit C3 mit D3 usw.
Sind z.B. alle 3 Zahlen einer Reihe gleich, möchte ich sie FETT darstellen,
die kleinste Zahl möchte ich immer nebenan in Zeile F schreiben.
Mein Problem: Markierte Spalten Reihenweise durchgehen und die einzelnen
Zellen der Reihen miteinander vergleichen.
Wer kann einer VBA Anfängerin helfen ?
Liebe Grüsse
Sabrina

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

Betreff
Datum
Anwender
Anzeige
AW: 3 Spalten in markierten Reihen vergleichen
Beni
Hallo Sabrina,
versuche es mit diesem Code.
Gruss Beni

Sub Spaltenvergleich()
For i = 1 To Cells(Rows.Count, 2).End(xlUp).Row
If Cells(i, 2) = Cells(i, 3) And Cells(i, 2) = Cells(i, 4) Then
Range(Cells(i, 2), Cells(i, 4)).Font.Bold = True
Else
Set zeile = Range(Cells(i, 2), Cells(i, 4))
minWert = Application.WorksheetFunction.Min(zeile)
Cells(i, 6) = minWert
End If
Next i
End Sub

AW: 3 Spalten in markierten Reihen vergleichen
21.07.2004 14:38:51
Jens
Hallo sabrina,
hier mal ein vorschlag. Allerdings feste zuordnung der zu vergleichenden Spalten. B mit C und D. Minimum in F schreiben. Wobei das doch bei gleichen zellen keinen sinn macht. So musst du halt zeile 6 in die for schleife mit reinnehmen.
Gruß Jens

Sub Makro3()
For i = 2 To 20
If Cells(i, 2) = Cells(i, 3) And Cells(i, 3) = Cells(i, 4) And Cells(i, 2) = Cells(i, 4) Then
Range(Cells(i, 2), Cells(i, 4)).Font.Bold = True
End If
Cells(i, 6) = Application.WorksheetFunction.Min(Cells(i, 2), Cells(i, 3), Cells(i, 4))
Next
End Sub

Anzeige
AW: 3 Spalten in markierten Reihen vergleichen
Nike
Hi,
mein Check hat leider nicht funktioniert, aber der Rest funktinabelt ;-)
Bye
Nike

Sub test()
Dim rngBereich As Range
Dim rw As Long
On Error GoTo ErrEnd
Set rngBereich = Application.InputBox("Auswahl", "Auswahl", "A1", , , , , 8)
'If Not Intersect(rngBereich, Columns(2), Columns(3), Columns(4)) Is Nothing Then
For rw = rngBereich.Cells(1).Row To rngBereich.Cells(1).Row + rngBereich.Rows.Count - 1
If Cells(rw, 2) = Cells(rw, 3) And Cells(rw, 2) = Cells(rw, 4) Then
Range(Cells(rw, 2), Cells(rw, 4)).Font.Bold = True
Cells(rw, 6) = Cells(rw, 2)
Else
Cells(rw, 6) = WorksheetFunction.Max(Range(Cells(rw, 2), Cells(rw, 4)))
End If
Next
'End If
Exit Sub
ErrEnd:
Err.Clear
End Sub

Anzeige
AW: 3 Spalten in markierten Reihen vergleichen
21.07.2004 14:58:50
Sabrina
Hi nochmal,
und vielen Dank für die antworten.
Wenn ich es richtig gesehen habe, habe Ihr die Spalten fest eingetragen.
Ich suche jedoch nach einer Möglichkeit die Spalten frei auszuwählen.
Also z.B. auch mal Spalte X,Y,Z.
Gibt es da eine Möglichkeit ?
Vielen Dank für die vielen Tipps
Sabrina
AW: 3 Spalten in markierten Reihen vergleichen
Nike
Hi,
na dann kannst du ja den Ansatz mit der Auswahl aufnehmen,
bleibt die Frage, ob die Ausgabe auch in Spalte F erfolgen soll
oder entsprechend versetzt...
Bye
Nike
AW: 3 Spalten in markierten Reihen vergleichen
21.07.2004 15:33:14
Sabrina
Hi nochmal,
was mir jetzt noch fehlt ist:
Statt einem Eingabekasten werden die markierten Spalten genommen.
Wie kann ich die erste und letzte markierte Spalte heraus bekommen?
Liebe Grüsse
Sabrina ;-))
Anzeige
AW: 3 Spalten in markierten Reihen vergleichen
Nike
Hi,
was meinst du mit markiert?
In meinem Beispiel sieht man, wie mit .cells(1) die erste
und mit .rows.count die letzte Zeile ermittelt wird,
so aehnlich (mit columns) muesstest du da wohl was machen,
wenn ich dich richtig verstanden hab...
Bye
Nike
AW: 3 Spalten in markierten Reihen vergleichen
Beni
Hallo Sabrina,
dieser Code ermittelt zuerst die selectierte Spalte ganz links und ganz recht.
Gruss Beni

Sub Spaltenvergleich()
L = 0
Dim cell As Range
For Each cell In Selection.Cells
sel = cell.Column
If L = 0 Then L = sel 'selectierte Spalte links
R = sel  'selectierte Spalte rechts
Next
For i = 1 To Cells(Rows.Count, L).End(xlUp).Row
If Cells(i, L) = Cells(i, L + 1) And Cells(i, L) = Cells(i, L + 2) Then
Range(Cells(i, L), Cells(i, R)).Font.Bold = True
Else
Set zeile = Range(Cells(i, L), Cells(i, R))
minWert = Application.WorksheetFunction.Min(zeile)
Cells(i, 6) = minWert
End If
Next i
End Sub

Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige