online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Buelent vom 02.07.2020, 14:47 Options

Zeilen automatisch erweitern

Hallo liebe Excel Freunde,

ich habe mehrere Arbeitsblätter mit den gleichen Einstellungen. Die Tabellen enthalten Daten von Kunden. Jedes Arbeitsblatt hat 20 Zeilen,indem ich Daten befüllen kann. Bei einigen Arbeitsblätter benötige ich jedoch mehrere Zeilen und muss immer mühsam Zeilen wieder einfügen und die
Formatierungen und Formeln neu anpassen. Gibt es eine Möglichkeit, dass wenn die vorletzte Zeile befüllt ist automatisch eine neu Zeile mit all den Einstellungen erweitert.

Für Eure Antwort wäre ich sehr dankbar.


Antwort schreiben

Antwort 1 von coros vom 12.07.2020, 08:00 Options

Hallo Buelenet,

etwas waage Deine Angaben. Man müsste wissen, in welcher Zeile Deine 20 Zeilen enden. Mal als Ansatz der nachfolgende Code. Hier wird davon ausgegangen, dass es sich bei der letzten Zeile um Zeile 20 handelt. Sobald in Zeile 19 etwas eingtrtagen wird, wird in die letzte Zeile eine neue Zeile eingefügt. Diese hat dann automatisch das Format von Zeile 20.
Wie bereits erwähnt, ist der Code nur als Ansatz gedacht, da er bestimmt noch nicht 100%ig ist, da man Deine Datei nicht kennt und keine weiteren Angaben bekannt sind.

Kopiere das Makro in das VBA-Projekt des Tabellenblattes, in dem er wirken soll.
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
On Error GoTo Ende
Application.EnableEvents = False
If Target.Cells.Row >= 19 Then
Rows(Target.Row + 1).EntireRow.Insert
End If
Ende:
Application.EnableEvents = True
End Sub


Ich hoffe, Du mommst klar.

Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 2 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

Bei Fragen melde Dich.

MfG,\nOliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von lorf55 vom 12.07.2020, 21:12 Options

Hallo miteinander,
ich habe mich auch mal an einer Lösung versucht. Ich wusste auch nicht, wo die 20 Zeilen liegen, und habe deshalb angenommen, dass es sich bei der letzten Zeile um Zeile 20 handelt.

Private Sub Workbook__SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)

Static MaxRow As Integer  ' damit nur am Ende eingefügt wird

If (Target.row > MaxRow) And (Target.row > 19) Then
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    Call ZeileEinfügen
    MaxRow = Target.row
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End If
       
End Sub

Sub ZeileEinfügen()
Dim c As Range
On Error GoTo Ende  'falls ClearContents nichts zum Löschen findet
    Set c = ActiveCell
    Cells(c.row - 1, 1).EntireRow.Copy
    Cells(c.row, 1).PasteSpecial Paste:=xlPasteAll
    ' nur die Zahlen löschen, Formeln bleiben stehen
    Rows(c.row).SpecialCells(xlCellTypeConstants, 1).ClearContents
Ende:
    Application.CutCopyMode = False
    c.Select
End Sub



Jetzt müsste man noch das Ganze in ein Workbookmakro umwandeln, damit man nicht den Code für jedes Blatt extra einfügen muss und die letzte eingefügte Zeile pro Blatt müsste auch noch irgendwo abgelegt werden, damit bei einer Nachbearbeitung der eingefügten Zellen nicht sinnlos eingefügt wird.

Ansonsten schließe ich mich coros' Anmerkungen an.

Gruß
lorf

Antwort 3 von Buelent vom 14.07.2020, 12:00 Options

Hallo liebe Excel Freunde,

Danke für die antworten . Meine Tabelle sieht folgendermaßen aus. Die Tabellen enthalten Daten von Kunden.
Diese sieht so aus:

| Nr.| Name|Vorname|Status |Datum |
| 1 | Mayr |Hans |beendet| 12.03.08|
| 2 | Muse |Eva |Aktuell | 07.04.08|
usw...

Die 19 Zeile ist die Überschrift(Kopfzeile s.oben.
Ab der 20 Zeile kann ich meine Daten mit einer fortlaufenden Nummer eingeben. Meine letzte Zeile ist die 40. Ab jetzt muss es automatisch weitergeführt werden.

Formatierungen, Formeln und die Gültigkeiten sollten automatisch nummeriert fortgeführt werden.

Gibt es eine Möglichkeit, dass wenn die letzte Zeile befüllt ist automatisch eine neu Zeile mit all den Einstellungen übernommen wird.

Für Eure Antwort wäre ich sehr dankbar.

Antwort 4 von coros vom 14.07.2020, 12:31 Options

Hallo Buelent,

mein Code aus Antwort 1 mit einer Änderung in Zeile

If Target.Cells.Row >= 19 Then
Anstelle der 19 die Zahl 39 eintragen.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 5 von Buelent vom 14.07.2020, 14:20 Options

Hallo Oliver,

danke für die schnelle Antwort. Allerdings habe ich das Problem, dass wenn ich in die Spalten was einfüge die Zeilen weiterhin automatisch erweitert werden. Zum anderen wird die Nr. nicht weitergeführt wird.

mfg

Bülent

Antwort 6 von coros vom 14.07.2020, 14:47 Options

Hallo Buelent,

der Code macht das, was Du gefordert hast. Wenn ab der 39. Zeile etwas eingetragen wird, wird eine Zeile mit den Formaten der Zeile 39 eingefügt.
Das die Nummer sich automatsich erhöhen soll, hast Du nirgends erwähnt.
Was meinst Du mit Deiner Aussage

Zitat:
Allerdings habe ich das Problem, dass wenn ich in die Spalten was einfüge

Welche Spalten meinst Du? Du musst schon etwas mehr von dem schreiben, was Du erreichen möchtest (hatte ich auch in AW1 bereits erwähnt) und wie Deine Datei aufgebaut ist. Eventuell eine Beispieldatei z.B. bei www.netupload.de hochladen.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 7 von lorf55 vom 14.07.2020, 17:57 Options

Hallo Buelent,
In der Zeile
If (Target.row > MaxRow) And (Target.row > 19) Then

müsste bei mir denn auch die 19 gegen die 39 getauscht werden.

Steht in Spalte A die Nummer, muss zu deren Fortführen direkt vor der Ende:-Zeile eine Zeile eingefügt werden mit
Range("A" & c.Row).value=Range("A" & c.Row-1)+1

Ansonsten das "A" anpassen.
Gruß
lorf

Antwort 8 von Buelent vom 15.07.2020, 15:05 Options

Also hier die Beispieldatei:

http://s1.directupload.net/file/d/1491/oysgwpzj_gif.htm

Antwort 9 von coros vom 15.07.2020, 15:40 Options

Hallo Buelnet,

ich meinte eigentlich die Exceldatei und nicht ein Bild. Oder denkst Du, dass ich Deine Datei jetzt nachbaue. Außerdem hast Du meine Fragen nicht beantwortet.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Ähnliche Themen

Makro automatisch aktualisieren
pc-makro  07.02.2007 - 192 Hits - 1 Antwort

Leere Zeilen automatisch loeschen
dvdh  30.05.2007 - 215 Hits - 3 Antworten

Excel hat 65.536 Zeilen
Rolando  27.11.2007 - 173 Hits - 2 Antworten

Zeile automatisch erweitern
Buelent  04.07.2008 - 88 Hits - 2 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 11:26:25 2026