Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
416to420
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
416to420
416to420
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellen oberhalb einer bestimmten Zeile formatieren

Zellen oberhalb einer bestimmten Zeile formatieren
23.04.2004 12:22:31
Torsten K.
Hallo beisammen,
mit dem nachfolgenden Code kann ich aus einem WS("ENTER") Daten in ein anderes WS("SEARCH") übertragen, wenn ein bestimmtes Suchkriterium erfüllt ist. Funktioniert auch tadellos. Jetzt möchte ich das ganze aber noch abrunden, indem der Range, in den die Daten kopiert werden, durch Rahmen hervorgehoben wird. Das ist nicht ganz einfach, weil der Range nicht immer dieselbe Größe hat (z.B. mal B4:G14; dann B4:G20 usw.). Ich habe ein bißchen herumprobiert und bin mit dem Ergebnis eigentlich ganz zufrieden, bis auf einen Punkt, den ich alleine nicht mehr hinbekomme:

Private Sub cmb_START_Click()
Dim i As Integer
Dim J As Integer
J = 4
With Sheets("SEARCH").Range("B4:G70")
.ClearContents
.Font.ColorIndex = 0
End With
With Sheets("SEARCH").Range("A4:G70")
.Interior.ColorIndex = 2
.Borders(xlEdgeLeft).LineStyle = xlNone
.Borders(xlEdgeRight).LineStyle = xlNone
.Borders(xlEdgeTop).LineStyle = xlNone
.Borders(xlEdgeBottom).LineStyle = xlNone
.Borders(xlInsideVertical).LineStyle = xlNone
.Borders(xlInsideHorizontal).LineStyle = xlNone
End With
For i = 2 To Sheets("Enter").[B2000].End(xlUp).Row
If UCase(Sheets("ENTER").Range("B" & i)) Like UCase([B1]) & "*" Then
Sheets("ENTER").Range("B" & i & ":G" & i).Copy _
Destination:=Sheets("SEARCH").Range("B" & J)
J = J + 1
End If
Next
Sheets("SEARCH").Range("B" & J) = "End Of File"
'unterhalb des letzten ausgegebenen Datensatzes wird ein "EOF" hinzugefügt
With Sheets("SEARCH").Range("B" & J).Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With Sheets("SEARCH").Range("B" & J).Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With Sheets("SEARCH").Range("B" & J).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
Sheets("SEARCH").Range("B" & J).Interior.ColorIndex = 36
(...)
End Sub

Ich möchte oberhalb der Zeile, in die das "End of File" eingetragen wird, folgende Formatierung einfügen:
With Range ("A ").Borders(xlEdgeBottom)
.LineStyle=xlContinuous
.Weight = xlMedium
End With
With Range("C :G ").Borders(xlEdgeBottom)
.LineStyle=xlContinuous
.Weight = xlMedium
End With
Das Problem für mich ist, daß erst die Zeile bestimmt werden muß, in welcher das "End of File" eingetragen ist. Könnt Ihr mir helfen?
Vielen Dank im voraus.
Gruß
Torsten

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

Betreff
Datum
Anwender
Anzeige
AW: Zellen oberhalb einer bestimmten Zeile formatieren
23.04.2004 12:28:15
Gerd
Mit Sheets("SEARCH").Range("B" & J) hast du doch den Bereich bereits.
Gerd
AW: Zellen oberhalb einer bestimmten Zeile formatieren
23.04.2004 12:38:16
Torsten K.
Hallo Gerd,
da hast Du natürlich Recht, ich wußte aber nicht, wie ich diese Zeile dann ansprechen kann. (Ich bin halt immer noch VBA-Einsteiger und den Kern des Codes habe ich zT. mit Hilfe des Forums erstellt). Aber mit dem Hinweis von Martin wird es mir wohl gelingen.
Danke Für Deine Rückmeldung.
Gruß
Torsten
AW: Zellen oberhalb einer bestimmten Zeile formatieren
23.04.2004 12:28:36
Martin Beck
Hallo Torsten,
"End of File" wird doch in die Zeile eingetragen, die in der Variablen J gespeichert wurde. Also kannst Du in Deinem Codeschnipsel z.B. Range("A" & J-1) verwenden. Einfacher wäre allerdings generell Cells statt Range zu nehmen.
Gruß
Martin Beck
Anzeige
AW: Zellen oberhalb einer bestimmten Zeile formatieren
23.04.2004 12:41:01
Torsten K.
Hallo Martin,
vielen Dank für Deine Rückmeldung. Ich werd's gleich mal ausprobieren.
Wie müßte denn die Variante mit "Cells" aussehen? Dann könnte ich wieder etwas neues dazu lernen.
Gruß
Torsten
AW: Zellen oberhalb einer bestimmten Zeile formatieren
23.04.2004 12:54:09
Martin Beck
Hallo Torsten,
z.B. so (ungetestet):

Private Sub cmb_START_Click()
Dim i As Integer
Dim J As Integer
J = 4
With Sheets("SEARCH").Range("B4:G70")
.ClearContents
.Font.ColorIndex = 0
End With
With Sheets("SEARCH").Range("A4:G70")
.Interior.ColorIndex = 2
.Borders(xlEdgeLeft).LineStyle = xlNone
.Borders(xlEdgeRight).LineStyle = xlNone
.Borders(xlEdgeTop).LineStyle = xlNone
.Borders(xlEdgeBottom).LineStyle = xlNone
.Borders(xlInsideVertical).LineStyle = xlNone
.Borders(xlInsideHorizontal).LineStyle = xlNone
End With
For i = 2 To Sheets("Enter").[B2000].End(xlUp).Row
If UCase(Sheets("ENTER").Cells(i, 2)) Like UCase([B1]) & "*" Then
Sheets("ENTER").Range("B" & i & ":G" & i).Copy _
Destination:=Sheets("SEARCH").Cells(J, 2)
J = J + 1
End If
Next
Sheets("SEARCH").Cells(J, 2) = "End Of File"
'unterhalb des letzten ausgegebenen Datensatzes wird ein "EOF" hinzugefügt
With Sheets("SEARCH").Cells(J, 2).Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With Sheets("SEARCH").Cells(J, 2).Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With Sheets("SEARCH").Cells(J, 2).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
Sheets("SEARCH").Cells(J, 2).Interior.ColorIndex = 36
End Sub


Statt Range("B5") kann man also z.B. Cells(5, 2) schreiben (allgemein: Cells(Zeile, Spalte)). Cells läßt sich in Schleifen leichter indizieren, man kann auch einfacher Variablen einbauen (siehe oben).
Mir ist noch nicht klar, welcher Bereich oder welche Bereiche umrahmt werden sollen. Wenn Du nicht klarkommst, poste die nochmal im Klartext.
Gruß
Martin Beck
Anzeige
AW: Zellen oberhalb einer bestimmten Zeile formatieren
23.04.2004 13:27:14
Torsten K.
Hallo Martin,
vielen Dank für Deine Erläuterungen zu "Cells" statt "Range". Ich denke, den Unterschied habe ich verstanden. Meinen Code habe ich nun mit "Range" und Deiner Erweiterung angepaßt und es funktioniert prima.
Nochmals besten Dank und schönes Wochenende.
Vielleicht bis zum nächsten Mal...
Gruß
Torsten

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige