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

Forumthread: Zeilen per VBA einfügen, bestimmte Werte kopieren!

Zeilen per VBA einfügen, bestimmte Werte kopieren!
23.04.2015 14:27:24
Steve
Hallo,
ich habe aus dem Archiv einen tollen Beitrag gefischt, der mir sehr gut geholfen hat, Zeilen in ein geschütztes Blatt einzufügen, das ist dieser hier:
https://www.herber.de/forum/archiv/1376to1380/t1377097.htm
Es funktioniert bei mir soweit auch genau so, wie es soll, also ich kann in spalte A in eine beliebige Zeile, sagen wir A12 doppelklicken und es öffnet sich das Abfragefenster, in dem ich die gewünschte Anzahl an zusätzlichen Zeilen eintrage und nach Klick auf OK werden unterhalb der ausgewählten Zeile entsprechend leere Zeilen eingefügt, auch mit den Formeln, wenn vorhanden.
Nun möchte ich aber gern, dass er nicht kommplett leere Zeilen einfügt, sondern dass die Werte der ausgewählten Zeile, unter der eingefüght werden soll, also z.B. A12 - F12 mit übernommen werden, möglichst auch in einem anderen Schrift-Format, also Farbe und kursiv.
Kann mir da jemand helfen?
Vielen Dank!

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen per VBA einfügen, bestimmte Werte kopieren!
24.04.2015 06:38:38
Werner
Hallo Steve,
da hast du ja was von mir ausgegraben.
Geändert ist jetzt: Die Zellwerte werden mit übernommen. Die Werte in der eingefügten Zeile werden kursiv und rot formatiert (komplette Zeile).
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, cancel As Boolean)
Dim zeilenanzahl As Long
Dim x As Integer
Dim i As Integer
x = 1
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
'#### Doppelklick in Spalte A ab Zeile 4, ggf. anpassen ####
If Target.Column = 1 And Target.Row > 3 Then
'#### Tabellenblatt und Passwort anpassen ####
Worksheets("Prozessbewertung").Unprotect Password:="Andreas"
On Error GoTo Notausgang
zeilenanzahl = InputBox("Wieviel Zeilen?", "Zeilen einfügen")
With ActiveCell
For i = 1 To zeilenanzahl
If ActiveCell = "" Then
.EntireRow.Copy
.EntireRow.Offset(x, 0).Insert shift:=xlDown
.EntireRow.Offset(x, 0).PasteSpecial
Else
.EntireRow.Copy
.EntireRow.Offset(x, 0).Insert shift:=xlDown
.EntireRow.Offset(x, 0).PasteSpecial
.EntireRow.Offset(x, 0).Font.Italic = True
.EntireRow.Offset(x, 0).Font.ColorIndex = 3
ActiveCell.Offset(-x, 0).Select
End If
x = x + 1
Next i
.Offset(1, 0).Select
End With
'#### Tabellenblatt und Passwort anpassen ####
Sheets("Prozessbewertung").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, _
AllowFormattingCells:=True, AllowFormattingRows:=True, AllowFormattingColumns:=True, _
AllowInsertingColumns:=True, AllowSorting:=True, AllowFiltering:=True, _
Password:="Andreas"
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Notausgang:
cancel = True
Application.CutCopyMode = False
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
'#### Tabellenblatt und Passwort anpassen ####
Sheets("Prozessbewertung").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, _
AllowFormattingCells:=True, AllowFormattingRows:=True, AllowFormattingColumns:=True, _
AllowInsertingColumns:=True, AllowSorting:=True, AllowFiltering:=True, _
Password:="Andreas"
End If
End Sub
Gruß Werner

Anzeige
AW: Zeilen per VBA einfügen, bestimmte Werte kopieren!
27.04.2015 10:23:10
Steve
Hallo,
vielen Dank, Werner. Ja, es ist ein alter Beitrag gewesen, aber es ist ja trotzdem noch hilfreich für mich!
Ich habe den Code entsprechend angepasst bei mir und es funktioniert auch soweit, wie es soll.
Ich müsste es nun nur noch etwas anpassen an mein Sheet, also es sollen z.B. nur die ersten sechs Werte der Ursprungszeile, also aus A-F übernommen werden, also nicht alle Werte der Zeile.
Die Schriftfarbe stelle ich ja hier...
 .EntireRow.Offset(x, 0).Font.ColorIndex = 3

über den Zahlenwert ein. Gibt es dafür eine Übersicht, welcher Wert für welche Farbe in VBA steht?
Und wie ist es mit der kursiven Schrift oder wenn ich die Schrift fett übernommen haben möchte oder einen anderen Schrifttyp für die einkopierten Zeilen, welche Code-Zeile ist dafür zuständig, ist das diese hier:
.EntireRow.Offset(x, 0).Font.Italic = True

?
Vielen Dank!

Anzeige
AW: Zeilen per VBA einfügen, bestimmte Werte kopieren!
27.04.2015 16:46:12
Werner
Hallo Steve,
bezüglich des Color Index siehe mal hier:
www.herber.de/forum/archiv/872to876/873033_ColorIndex_in_Excel_2007.html
Und richtig, für Kursiv ist folgende Zeile verantwortlich:
.EntireRow.Offset(x, 0).Font.Italic = True
Für Fett dann z.B.:
.EntireRow.Offset(x, 0).Font.Bold = True
Bezüglich der teilweisen Werteübernahme wäre es von Hilfe, wenn du eine Datei hochladen würdest. Es würde schon eine Datei mit einem Tabellenblatt genügen. Das Blatt sollte vom Aufbau her deiner Originaldatei enstprechen. Ein paar Zeilen mit den enthaltenen Formeln und Werten würde genügen.
Gruß Werner

Anzeige
AW: Zeilen per VBA einfügen, bestimmte Werte kopieren!
27.04.2015 16:54:11
Werner
Hallo Steve,
ich habe noch was vergessen.
Die Schriftart kannst du so ansprechen:
.EntireRow.Offset(x, 0).Font.Name = "Courier"
Die Schriftgröße so:
EntireRow.Offset(x, 0).Font.Size = 9
Wobei es hier natürlich so ist, dass sich das für die ganze Zeile auswirkt (EntireRow). Sollte das nur für einen bestimmten Bereich der Zeile gelten, dann bitte Datei-Upload.
Werner
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige