Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
716to720
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
716to720
716to720
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeilen nach dem Einfügen formatieren

Zeilen nach dem Einfügen formatieren
07.01.2006 16:55:17
Dirk
Hallo zusammen!
Wie schaffe ich es über VBA, dass excel sich die Anzahl eingefügter Zellen merkt und markiert.
Zur Erläuterung:
Über eine InputBox habe ich mir die Möglichkeit geschaffen, die Anzahl von einzufügenden Zeilen einzugeben. Die Tabelle hat 22 Spalten (A bis V). Wenn ich nun die Zeilen eingefügt habe, sollen genau dies noch formatiert werden. Um was muss der unten aufgeführte Programmcode erweitert werden, damit die Zellen von Spalte A bis Spalte V der neuen Zeilen markiert werden?
Sub ZeilenEinfuegen()
Dim iCount As Integer
On Error Resume Next
iCount = InputBox("Anzahl der Zeilen:")
If iCount = vbCancel Then
ActiveSheet.Range("A5:A" & Cells(Rows.Count, 1).End(xlUp).Row).Select
ActiveCell.Offset(1, 0).Select
With Selection
Rows(ActiveCell.Row + iCount & ":" & _
.Row + (iCount * 0) + 1).Rows.Insert
Range(ActiveCell, ActiveCell.Offset(0, 21)).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
ActiveWindow.LargeScroll ToRight:=-1
End With
Else
Exit Sub
End If
End
Danke im voraus
Dirk

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Schrift formatieren ?
07.01.2006 22:18:11
Gregor
Hallo Dirk,
meinst du mit
"Wenn ich nun die Zeilen eingefügt habe, sollen genau dies noch formatiert werden."
So was:

Sub ZeilenEinfuegen()
With Selection.Font
.Name = "Verdana"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
End Sub

Gregor
AW: Schrift formatieren ?
07.01.2006 22:32:04
Dirk
Hallo Gregor!
Mit formatieren meine ich z.B. die Hintergrundfarben und die Rahmen der Zellen.
Mir würde es aber schon reichen, wenn ich wüsste, wie ich die neu eingefügten Zellen von Spalte A bis V makieren kann.
Gruß
Dirk
Anzeige
Formatieren, Rahmen und Farbe
07.01.2006 22:49:07
Gregor
Hallo Dirk,
vielleicht so:
Option Explicit

Sub ZeilenEinfuegen()
Dim iCount As Integer
On Error Resume Next
iCount = InputBox("Anzahl der Zeilen:")
If iCount = vbCancel Then
ActiveSheet.Range("A5:A" & Cells(Rows.Count, 1).End(xlUp).Row).Select
ActiveCell.Offset(1, 0).Select
With Selection
Rows(ActiveCell.Row + iCount & ":" & _
.Row + (iCount * 0) + 1).Rows.Insert
Range(ActiveCell, ActiveCell.Offset(0, 21)).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlMedium 'Rahmenstärke
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin 'Rahmenstärke
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin 'Rahmenstärke
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin 'Rahmenstärke
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin 'Rahmenstärke
.ColorIndex = xlAutomatic
End With
ActiveWindow.LargeScroll ToRight:=-1
End With
With Selection.Interior
.ColorIndex = 6 'Hintergrundfarbe der Zellen
End With
Else
Exit Sub
End If
End
End Sub

Gregor
Anzeige
AW: Formatieren, Rahmen und Farbe
07.01.2006 23:05:09
Dirk
Hallo Gregor!
Ich glaube meine Aussage war nicht ganz eindeutig. Mein Problem ist nicht das Formatieren, sondern das Markieren der gerade eingefügten Zeilen und da auch nur die Zellen von Spalte A bis Spalte V. Im Klartext, ich gebe in die InputBox eine 3 ein, dann soll der Bereich (Spalte A bis V) dieser drei Zeilen markiert werden.
Ich bekomme diese Markierung nicht hin.
Gruß
Dirk
AW: Formatieren, Rahmen und Farbe
08.01.2006 00:01:51
Gregor
Hallo Dirk,
sorry da kann ich dir noch nicht weiter helfen.
Gregor
AW: Zeilen nach dem Einfügen formatieren
08.01.2006 10:28:50
Hajo_Zi
Hallo Dirk,
Das Makro läuft bei Dir. Ich habe die von Dir ot beschriebene Zahl 3 eingegeben und bei
If iCount = vbCancel Then
wird das Makro beendet.
Ich würde die Eingabebox ja so verändern das nur Eingaben von Zahlen zulässig sind.
In VBA kann zu 99% auf select usw. verzichtet werden.

Anzeige
AW: Zeilen nach dem Einfügen formatieren
08.01.2006 17:08:08
Dirk
Hallo Hajo!
Du hast natürlich recht. Die Zeile "If iCount ..." ist hier wohl wieder versehentlich wieder reingerutscht (Alter Code).
Aber auch wenn es vielleicht nervt Hajo, hast Du nicht eine Lösung, was ich in dieses Programm einbinden muss, um die gerade eingefügten Zeilen (von Spalte A bis V) markieren zu können?
Gruß
Dirk
AW: Zeilen nach dem Einfügen formatieren
08.01.2006 19:32:54
Hajo_Zi
Hallo Dirk,
Deine Code ist mir nicht klar. Ich würde vermuten es werden immer die Zeilen Zeile 6 eingefügt.

Sub ZeilenEinfuegen()
Dim iCount As Integer
On Error Resume Next
iCount = Application.InputBox("Anzahl der Zeilen:", "Zeilen einfügen", Type:=1)
If iCount = False Then Exit Sub
'   hier alles markier von A5 bis zu letzten Zelle in Spalte A
ActiveSheet.Range("A5:A" & Cells(Rows.Count, 1).End(xlUp).Row).Select
'   jetzt wird A6 ausgewählt warum dann erst andere Markierung
ActiveCell.Offset(1, 0).Select

Auf select kann in VBA zu 99% verzichtet werden.
Gruß Hajo
Anzeige
AW: Zeilen nach dem Einfügen formatieren
09.01.2006 14:28:32
Dirk
Hallo Hajo!
Der Code ist vielleicht etwas umständlich, zugegeben. Bin eben Anfänger.
Zur Erläuterung:
In der Symbolleite erscheint beim Öffnen der Datei eine neue Leiste. Dort ist ein Button für das Einfügen von neuen Zeilen. Nach der Betätigung erscheint die InputBox, in die ich dann die Anzahl der neu einzufügenden Zeilen eingebe. Das Programm sucht dann in der Spalte A die letzte belegte Zelle und springt dann mit der Offset-Anweisung in die nächste leere Zelle. Dort werden dann die Zeilen eingefügt.
Gruß
Dirk
AW: Zeilen nach dem Einfügen formatieren
10.01.2006 06:06:48
Hajo_Zi
Hallo Dirk,
ich seher es nicht so das am Ende 3 Leerzeilen einge3fügt werden, bei mir waren A1:A10 belegt und es wurden nach A6 Zeilen eingefügt. (So weit ich das noch in Erinnerung habe.)
Gruß Hajo
Anzeige
AW: Zeilen nach dem Einfügen formatieren
10.01.2006 18:52:30
Hajo_Zi
Hallo Dirk,
fülle A5:A10 aus und es wird nicht wie von Die beschrieben nach A10 sondern nach A6 Zeilen eingefügt.
Gruß Hajo

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige