1.4k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,
unter https://supportnet.de/fresh/2005/2/id1015672.asp
ist beschrieben, wie man Leerzeilen einfügen kann.
Habe dieses Makro erstellt und es läuft wunderbar.
Ich möchte jedoch anstelle von Leerzeilen Zeilen mit Text einfügen.
Wie muss ich das Makro anpassen?
Danke schon mal

6 Antworten

0 Punkte
Beantwortet von flupo Profi (17.9k Punkte)
Das kleine Makro hättest du ruhig hier nochmal posten können.

Eine mögliche Lösung ist sehr davon abhängig, was das für ein Text ist,
der da eingefügt werden soll und wo der herkommt.
Mehr Input bitte.

Gruß Flupo
0 Punkte
Beantwortet von
Falls möglich, würde ich diesen Text gerne aus festen und variablen Teilen (aus einer anderen Table dieses Sheets) zusammensetzen:
z.B.
=" Text xyz 12345 "&Table1!$F$2&" Text "&Table1!$D$2&" ab "

Falls das nicht möglich ist, könnte ich auch einen festen Text in die Kopfzeile einfügen.
z.B. in Zeile 1 würde dann stehen:
" Text xyz 12345 X999 Text 06082015 ab "

Danke und Gruß
Biene
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Biene,

natürlich kannst du eine entsprechenden Text in eine Zelle einfügen. Nur sprichst du nicht die Tabelle (Table) an, sondern das entsprechende Arbeitsblatt:
ThisWorkbook.Worksheets("Tabelle1").Range("A1") = " Text xyz 12345 " & ThisWorkbook.Worksheets("Tabelle2").Range("F2") & " Text " & ThisWorkbook.Worksheets("Tabelle2").Range("D2") & " ab "

Anstatt "Tabelle1" und "Tabelle2" musst du natürlich die Namen deiner entsprechenden Tabellenblätter einsetzen:
Tabelle 1 = Tabelle in der der Text eingefügt wird
Tabelle2 = Tabelle, aus der die Daten gelesen werden

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo,

danke, und wie füge ich diesen Part nun in das Makro ein?
Bisher sieht das Makro so aus:

Sub Zeile_einfuegen()
Set wksTemp = ActiveSheet
Menge = wksTemp.UsedRange.Rows.Count + 1
For i = Menge To 13 Step -1
Menge1 = i & ":" & i
Rows(Menge1).Select
Selection.Insert Shift:=xlDown
Next
End Sub


Damit erhalte ich Leerzeilen. Ich möchte jedoch Textzeilen anstatt Leerzeilen einfügen.

Danke und Gruß
Biene
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Biene,

versuch es mal so:
Sub Zeile_einfuegen()
Dim Menge As Long
Dim i As Long

Menge = ActiveSheet.UsedRange.Rows.Count + 1

For i = Menge To 13 Step -1

With ActiveSheet.Cells(i, 1)
.EntireRow.Insert
.Offset(-1, 0).Value = " Text xyz 12345 " & ThisWorkbook.Worksheets("Tabelle2").Range("F2") & " Text " & ThisWorkbook.Worksheets("Tabelle2").Range("D2") & " ab "
End With

Next

End Sub

Dabei wird der Text immer in Spalte A der eingefügten Zeile eingefügt. Die Einfügespalte kannst du mit Offset steuern.
Mit .Offset(-1,1) würde der Text in Spalte B eingefügt.
Das Tabellenblatt, aus dem die Daten eingefügt werden soll, musst du natürlich noch auf deine Verhältnisse anpassen.
Probiere das aber erst einmal in einer Testdatei aus.

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo M.O.
das funktioniert wunderbar!

Vielen Dank für die Hilfe
Gruß
Biene
...