Frage von Monkee, 99

Tabelle dynamisch um 20 Datensätze erweitern?

Hallo Experten, versuche mich schon ein paar Stunden...kein Erfolg Ich möchte eine Tabelle "C5:D24" um genau 20 Sätze erweitern. Also das was ich sonst beim runterkopieren mit dem kleinen Kreuz mache. Kann mir da einer helfen.

Gruß Monkee

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Oubyi, Community-Experte für Excel, 52

Also das was ich sonst beim runterkopieren mit dem kleinen Kreuz mache

Und warum machst Du das "sonst", aber nicht jetzt?
Beschreibe Dein Problem und das "erweitern" mal genauer.
Was hast Du schon versucht?

Kommentar von Monkee ,

Die Tabelle soll sowas wie  eine Aufgabenplanung in einer größeren Exceldatei darstellen, Also wenn die erste 19 Datensätze "C23-D23 aufgenommen sind soll mit einem Klick die Tabelle mit 20 leeren erweitert werden. Mit der Datei arbeiten mehrere und dadurch wird immer einheitlich erweitert.

Hoffe jetzt ist das verständlicher beschrieben

Gruß Monkee

Kommentar von Oubyi ,

Hast Du Deine Tabelle mit "Einfügen/ Tabelle" erstellt?
Ich gehe mal davon aus.
"Auf Knopfdruck" kann das Erweitern nur mithilfe von VBA funktionieren.
Wie weit kennst Du Dich damit aus?
Wenn Du diesen Code auf einen Button legst, sollte es eigentlich funktionieren (Namen der Tabelle evtl. anpassen):

Sub TabelleErweitern()
Dim Tabelle As Object
Dim Rng As Range
Set Tabelle = ActiveSheet.ListObjects("Tabelle1")
Set Rng = Range("Tabelle1[#All]").Resize(Tabelle.Range.Rows.Count + 20, Tabelle.Range.Columns.Count)
Tabelle.Resize Rng
End Sub
Kommentar von Oubyi ,

P.S.:
Da ich ehrlich bin, muss ich noch ergänzen, dass ich mir für den Code hier:
http://www.thespreadsheetguru.com/blog/2014/6/20/the-vba-guide-to-listobject-exc...
Hilfe geholt habe.
Da findest Du auch Codes zu anderen Tabellen-Manipulationen.

Kommentar von Monkee ,

Erstmal Tausent Dank für deine Hilfe

Ich komme mit dem Code nicht zu recht da ich keine Tabelle1 besitze. Ich habe nur in Den Zellen C2-D24 Daten zu stehen.

Wenn ich nun den Bereich C2:D24  den Namen Tabelle1 vergebe kommt ein Laufzeit Fehler.

Der Link ist bestimmt interessant nur ich kann kein englisch.

Darf ich nochmal auf deine Hilfe hoffen?

Gruß Monkee 

Kommentar von Oubyi ,

Dann muss ich erst nochmal nachfragen:

Hast Du Deine Tabelle mit "Einfügen/ Tabelle" erstellt?

Wenn nicht, was meinst Du dann mit erweitern?
Du kannst doch einfach weiter schreiben.
Geht es um einen Bereich mit Rahmen?
Poste vielleicht mal zwei Screenshots mit vorher/ nachher.
Entweder per Upload-Service oder hier in eine Antowort (kein Kommentar).

Kommentar von Oubyi ,

Danke fürs

Weiter in Deiner Antwort.

Antwort
von Monkee, 35

Hier die Bilder zum Versuch UserForm

Antwort
von Monkee, 38

Ich möchte die letzte Zeile der Tabelle kopieren und dann 20mal einfügen.

Dass muss ich so machen da in Spalten E und G Formeln stehen.

Oder einfach "neuer Eintrag"  erstellen

Nochmal Danke

Gruß Monkee 

Kommentar von Oubyi ,

Ich möchte die letzte Zeile der Tabelle kopieren und dann 20mal einfügen.

Ich denke, dieser eine Satz als Fragestellung hätte völlig gereicht.
Zumindest, wenn ich Dich jetzt richtig verstehe.
Diese Code sollte das erledigen:

Sub Tabelle_erweitern()
Dim LezteZelle As Range
Set LezteZelle = Cells(Rows.Count, 1).End(xlUp)
LezteZelle.EntireRow.Copy Range(LezteZelle.Offset(1, 0), LezteZelle.Offset(20, 0))
End Sub

Oder?

Kommentar von Oubyi ,

P.S.: Ich sehe gerade, DAMIT würde die ausgefüllte letzte Zeile kopiert.
Du willst die Zeilen aber - bis auf die Formeln leer haben.
Richtig?
Da schaue ich nochmal. Melde mich gleich wieder.
Außerdem ist bei Dir Spalte A leer, deshalb müsste es in obigem Code heißen:


Cells(Rows.Count, 2).End(xlUp)





Kommentar von Oubyi ,

SO müsste es jetzt klappen, oder?:

Sub Tabelle_erweitern()
Dim LezteZelle As Range
Set LezteZelle = Cells(Rows.Count, 2).End(xlUp)
LezteZelle.EntireRow.Copy Range(LezteZelle.Offset(1, -1), LezteZelle.Offset(20, -1))
Range(LezteZelle.Offset(1, 0), LezteZelle.Offset(20, 2)).ClearContents
Range(LezteZelle.Offset(1, 4), LezteZelle.Offset(20, 4)).ClearContents
End Sub
Antwort
von Monkee, 19

Gut ich Danke dir noch einmal. Ist selten geworden dass einer so viel Geduld.

Gruß Monkee

Antwort
von Monkee, 30

Habe das bisher versucht.

Gruß Monkee

Antwort
von Monkee, 21

Das funktioniert wie du gesagt hast 20 mal der letzte Satz.

Die Variante mit der Userform scheint mir die bessere  zu sein und funktioniert auch.

 Nur die Zeile 

ActiveCell.Offset(0, 4).Value = ActiveCell.Offset(0, 3) - ActiveCell.Offset(0, 2)

ergibt bei  Endtermin=ActiveCell.Offset(0, 3) minus  

Angangstermin= ActiveCell.Offset(0, 2)  
     eine Zahl von -20990000

Da weiß ich nicht was ich falsch gemacht habe.

Könntest du mal in diese Richtung sehen. Sorry, fiel mir erst jetzt ein, dass ich so was ähnliches schon gemacht habe.

Gruß Monkee

Kommentar von Oubyi ,

Also bei mir klappt

ActiveCell.Offset(0, 4).Value = ActiveCell.Offset(0, 3).Value - ActiveCell.Offset(0, 2).Value

tadellos.
Sind die Datumszellen richtig formatiert?

P.S.:
Ich werde die Woche über nicht mehr so viel Zeit haben.
Stelle am besten wegen der UF nochmal eine neue Frage.
Dann können sich auch die andere Experten hier damit beschäftigen.
Hier wird es mit Deinen vielen Antworten auch langsam unübersichtlich.
Am besten wäre es, wenn Du in der neuen Frage eine Beispieldatei bei einem Upload-Service (z.B. http://www.file-upload.net) hochladen und  den Link einstellen könntest.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten