Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: warum funktioniert das Makro nicht?

warum funktioniert das Makro nicht?
07.05.2004 19:53:35
Pit
Hi,
ich brauche mal nen Excel-VBA-Experten.
Das Makro prüft zuerst, ob die Zelle bereits einen Rahmen hat. -funktioniert
Wenn nicht werden 2 neue Zeilen hinzugefügt und die Schriftformatierung für die neuen Zeilen auf bold gesetzt. -funktioniert
Und jetzt krachts:
Die beiden Zeilen sollen in 4 Bereiche eingeteilt und umrahmt werden.
Beispiel:
A3 ist die aktive Zelle wenn das Makro ausgeführt wird.
Es werden 2 neue Zeilen eingefügt (Zeile 3 und Zeile 4) und auf bold gesetzt.
Bereich 1 ist dann A3:B4
Bereich 2 ist dann C3:D4
Bereich 3 ist dann E3:E4
Bereich 4 ist dann F3:F4
Vielen Dank im Voraus
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: warum funktioniert das Makro nicht?
07.05.2004 20:00:55
Beni
hallo Pit,
stelle das Makro rein.
Gruss Beni
AW: hab ich doch glatt vergessen, ich Dussel
Pit

Sub np()
Dim i%
Dim B(1 To 4) As Range
If ActiveCell.Borders.LineStyle = xlNone Then
For i = 1 To 2
Rows(ActiveCell.Row).Insert Shift:=xlDown
Next i
Rows(ActiveCell.Row).Font.Bold = True
Rows(ActiveCell.Row + 1).Font.Bold = True
B(1) = Range(Cells(ActiveCell.Row, ActiveCell.Column), _
Cells(ActiveCell.Offset(1, 1).Row, ActiveCell.Offset(1, 1).Column))
B(2) = Range(Cells(ActiveCell.Offset(0, 2).Row, ActiveCell.Offset(0, 2).Column), _
Cells(ActiveCell.Offset(1, 3).Row, ActiveCell.Offset(1, 3).Column))
B(3) = Range(Cells(ActiveCell.Offset(0, 4).Row, ActiveCell.Offset(0, 4).Column), _
Cells(ActiveCell.Offset(1, 4).Row, ActiveCell.Offset(1, 4).Column))
B(4) = Range(Cells(ActiveCell.Offset(0, 5).Row, ActiveCell.Offset(0, 5).Column), _
Cells(ActiveCell.Offset(1, 5).Row, ActiveCell.Offset(1, 5).Column))
For i = 1 To 4
B(i).BorderAround (xlHairline)
Next i
End If
End Sub

Anzeige
AW: hab ich doch glatt vergessen, ich Dussel
Martin
Hallo Pit,

Sub np()
Dim i%
Dim B(1 To 4) As Range
If ActiveCell.Borders.LineStyle = xlNone Then
For i = 1 To 2
Rows(ActiveCell.Row).Insert Shift:=xlDown
Next i
Rows(ActiveCell.Row).Font.Bold = True
Rows(ActiveCell.Row + 1).Font.Bold = True
Set B(1) = Range(Cells(ActiveCell.Row, ActiveCell.Column), _
Cells(ActiveCell.Offset(1, 1).Row, ActiveCell.Offset(1, 1).Column))
Set B(2) = Range(Cells(ActiveCell.Offset(0, 2).Row, ActiveCell.Offset(0, 2).Column), _
Cells(ActiveCell.Offset(1, 3).Row, ActiveCell.Offset(1, 3).Column))
Set B(3) = Range(Cells(ActiveCell.Offset(0, 4).Row, ActiveCell.Offset(0, 4).Column), _
Cells(ActiveCell.Offset(1, 4).Row, ActiveCell.Offset(1, 4).Column))
Set B(4) = Range(Cells(ActiveCell.Offset(0, 5).Row, ActiveCell.Offset(0, 5).Column), _
Cells(ActiveCell.Offset(1, 5).Row, ActiveCell.Offset(1, 5).Column))
For i = 1 To 4
B(i).BorderAround (xlHairline)
Next i
End If
End Sub

Gruß
Martin Beck
Anzeige
AW: Danke, Bäume und Wald ;-))
Pit
Hi Martin,
danke für die Hilfe. "Set" ... hab vor lauter Bäumen den Wald nicht mehr gesehen.
Gruß Pit
AW: so wars ursprünglich
Pit
Funktioniert auch nicht, deshalb die umständliche Variante mit den Cells

Sub np()
Dim i%
Dim B(1 To 4) As Range
If ActiveCell.Borders.LineStyle = xlNone Then
For i = 1 To 2
Rows(ActiveCell.Row).Insert Shift:=xlDown
Next i
Rows(ActiveCell.Row).Font.Bold = True
Rows(ActiveCell.Row + 1).Font.Bold = True
B(1) = Range(ActiveCell, ActiveCell.Offset(1, 1))
B(2) = Range(ActiveCell.Offset(0, 2), ActiveCell.Offset(1, 3))
B(3) = Range(ActiveCell.Offset(0, 4), ActiveCell.Offset(1, 4))
B(4) = Range(ActiveCell.Offset(0, 5), ActiveCell.Offset(1, 5))
For i = 1 To 4
B(i).BorderAround (xlHairline)
Next i
End If
End Sub

Anzeige
AW: funktioniert auch mit dem "Set" o.T.
Pit
... vor den B()

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige