Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1420to1424
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
Inhaltsverzeichnis

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!

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

338 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige