431 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo Spezies,

bitte helft mir wie folgt weiter.
Ich möchte im Arbeitsblatt1 eine Zeile einfügen (Zeile x) und die gleiche Zeile im Arbeitsblatt2einfügen.
Das Problem ist dank eines freundlichen supportnet members bereits gelöst.
Danach möchte ich die darüberliegende Zeile kopieren (x-1) und in die vorher eingefügte Zeile einfügen. Auch das für Arbeitsblatt 1 + 2, immer auf der selben (flexiblen) Zeilenposition.
Lässt sich das eventuell in einem Schritt vollziehen?
Wer kann mir weiterhelfen?

Danke vorab.
Jamy

6 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Jamy,

du hättest ruhig den schon vorhandenen Code posten können, oder wenigstens auf den entsprechenden Thread (alter Thread verweisen können oder dort die Frage als Ergänzung stellen können ;-).

Versuch mal den folgenden Code:
Sub zeilen_einfügen()

'Zeile in aktuellem Tabellenblatt einfügen
ActiveCell.EntireRow.Insert

'Zeile in anderem Tabellenblatt einfügen - Namen anpassen
With Worksheets("Tabelle2")
.Rows(ActiveCell.Row).Insert
End With

'Zeile über eingefügter Zeile kopieren und in aktuelles Tabellenblatt und Tabelle2 einfügen
Rows(ActiveCell.Row - 1).Copy Rows(ActiveCell.Row)
Rows(ActiveCell.Row - 1).Copy Worksheets("Tabelle2").Cells(ActiveCell.Row, 1)

End Sub


Gruß

M.O.
0 Punkte
Beantwortet von
Danke M.O. deine erste Antwort hat schon tadellos funktioniert, die jetzige probiere ich aus.
Und deine Kritik nehme ich mir natürlich zu Herzen, sorry, bin neu hier.

Nochmals Danke für deine Unterstützung!

Jamy
0 Punkte
Beantwortet von
Hallo M.O.,

das hat fast geklappt.
Allerdings wird bei diesem Skript die Zeile aus Tabelle1 kopiert und in Tabelle2 eingefügt.
Ich benötige aber die Zeilenkopie von Tabelle1 in Tabelle 1, von Tabelle 2 in Tabelle 2.....
Hintergrund ist, das ich ein Basisddatenblatt habe in dem ich Eintragungen vornehmen kann (Tabelle1), die dann über Verknüpfungen auf Tabelle 2-8 übernommen werden sollen.
Bestimmt hast du hier noch eine gute Idee.
Übrigens, würde mich gerne hier weiter einlesen, hast du zu diesen VBA-Themen Literatur zu empfehlen?
Bisher arbeite ich nur mit dem Makrorekorder und passe ein bisschen an.

Bisheriger Skript gemäß deiner Vorlage:
'Zeile in aktuellem Tabellenblatt einfügen
ActiveCell.EntireRow.Insert
Rows(ActiveCell.Row - 1).Copy Rows(ActiveCell.Row)



'Zeile in anderem Tabellenblatt einfügen - Namen anpassen
With Worksheets("Tabelle2")
.Rows(ActiveCell.Row).Insert
Rows(ActiveCell.Row - 1).Copy Worksheets("Tabelle2").Cells(ActiveCell.Row, 1)
End With

With Worksheets("Tabelle3")
.Rows(ActiveCell.Row).Insert
Rows(ActiveCell.Row - 1).Copy Worksheets("Tabelle3").Cells(ActiveCell.Row, 1)
End With

...usw

Danke
Jamy
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Jamy,

dann ändere die Zeile

Rows(ActiveCell.Row - 1).Copy Worksheets("Tabelle2").Cells(ActiveCell.Row, 1)

in
Worksheets("Tabelle2").Rows(ActiveCell.Row - 1).Copy Worksheets("Tabelle2").Cells(ActiveCell.Row, 1)


Bezüglich Literatur: ich hatte mir mal ein VBA-Buch gekauft, aber kaum reingeschaut. Ich habe mir VBA selber nach und nach während meiner Projekte beigebracht und bei Problemen gegoogelt ;-). Ansonsten gehe mal in einen Buchladen und schaue dir ein paar Bücher an und nimm das, das dir am besten gefällt. Außerdem gibt es auch diverse Webseiten zu VBA.

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo M.O.

grandios, jetzt passt es.
Und auch noch kurz und schmerzlos.
Wenn ich mir überlege wie ich mich immer verbiegen muss......
Herzlichen Dank.

Werde dir bestimmt noch einmal auf den Schweller gehen, wenn du erlaubst ;-)

Jamy
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Jamy,

danke für die Rückmeldung.

Und zum Helfen ist das Supportnet ja da ;-).

Gruß

M.O.
...