Anzeige
Archiv - Navigation
1504to1508
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

VBA-Automatisch neue leere Zeile erstellen

VBA-Automatisch neue leere Zeile erstellen
14.07.2016 19:35:01
John
Hallo Community,
ich brauche dringend Hilfe bei folgendem Problem. Ich habe eine Tabelle mit Eingabefeldern in Excel erstellt. Ich möchte nun das nur die ersten drei Eingabefelder sichtbar sind und wenn die ausgefüllt sind und mit Enter bestätigt wird sollen automatisch darunter drei neue leere Eingabefelder erzeugt werden u.s.w. Habe es mit folgendem Code probiert, wobie dieser die letzte Zeile samt Inhalt kopiert was ich nicht will. Es sollen nur die Eingabefelder neu erzeugt werden. Vielen Dank im Voraus!
Sub aktuelleReihe_nachUntenKopieren()
With Selection.Cells(1, 1).EntireRow
.Copy
.Offset(2).Insert Shift:=xlDown
End With
Application.CutCopyMode = False
End Sub
Gruß

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Automatisch neue leere Zeile erstellen
15.07.2016 13:16:59
Michael
Hallo John!
Ohne konkretes Bsp von Dir kann ich mir nicht vorstellen, was Du mit Ich habe eine Tabelle mit Eingabefeldern in Excel erstellt meinst.
Daher hier ein "wild guess" meinerseits, wie etwas umsetzbar wäre, was Du (glaube ich) willst:
https://www.herber.de/bbs/user/107031.xlsm
Der Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range, i As Long
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
If Target.Cells.Count > 1 Then GoTo Ende
If Target.Value = vbNullString Then GoTo Ende
If Target.Row > 1 Then
If IsEmpty(Target.Offset(-1, 0)) Then
MsgBox "Bitte Zellen sequentiell füllen!", vbCritical, "Fehler: Leerzelle!"
Target.Clear: Target.Offset(-1, 0).Select: GoTo Ende
End If
End If
If Target.Column = 1 And _
Target.Value  vbNullString And _
Target.Row Mod 3 = 0 Then
Set r = Me.Range(Target, Target.End(xlUp))
If r.Cells.Count = WorksheetFunction.CountA(r) Then
For i = 1 To 3: Me.Rows(Target.Row + i).Hidden = False: Next i
End If
End If
Ende:
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
LG
Michael
Anzeige
AW: VBA-Automatisch neue leere Zeile erstellen
15.07.2016 14:36:01
John
Hallo Michael,
danke erstmal für deine schnelle Antwort und sry das ich mich so undeutlich ausgedrückt habe. Das ist nicht was ich haben möchte. Was ich haben möchte werde ich als Datei anhängen. Wie in dieser Datei zu sehen ist gibt mehrere Unterpunkte unter denen Eingabefelder sind für die Eingabe von Informationen. Es jedoch unter jedem Unterpunkt jeweils nur eine Zeile solcher Eingabefelder existieren. Sobald dort was eingegeben wird und mit Enter bestätigt wird soll sich eine neue Zeile darunter öffnen mit weiteren Eingabefelder u.s.w. Hoffe diesmal ist es verständlicher. Danke schonmal!
Userbild
Gruß
Anzeige
AW: VBA-Automatisch neue leere Zeile erstellen
18.07.2016 10:03:49
Michael
Hallo John!
Hoffe diesmal ist es verständlicher
Leider nein; mit diesem Bild kann ich mir noch nichts vorstellen - besser Du lädst eine Bsp-Mappe hoch in der die Ausgangssituation und die Zielsituation zu sehen ist (also das Blatt bevor und das Blatt nachdem "dort was eingegeben wurde").
Und was meinst Du mit soll sich eine neue Zeile darunter öffnen mit weiteren Eingabefelder u.s.w.
Sind Zeilen prinzipiell ausgeblendet und sollen in Abhängigkeit von Eingaben eingeblendet werden? Willst Du mit (bedingten) Formatierungen arbeiten?
Du siehst: eine Mappe, die das Blatt mit Vorher/Nachher darstellt ist am zielführendsten!
LG
Michael
Anzeige
AW: VBA-Automatisch neue leere Zeile erstellen
18.07.2016 13:59:49
John
Hallo Michael,
tut mir leid das es nicht so verständlich ist. Ich hoffe diesmal kommt es besser rüber. Eine Datei möchte ich nicht hochladen, da ich nicht will, dass diese online ist. Wie dem neuen Screenshot zu entnehmen ist sind unter jedem gelb makierten Unterpunkt eine Zeile, die jeweils drei Felder beinhaltet in denen Informationen eingegeben werden sollen. Nach eingabe der Infos in Zeile 1 und bestätigung mit der Entertaste soll genau unter Zeile 1 z.B. eine neue Zeile 2 erscheinen mit drei weiteren Felder. Das ganze soll beschränkt sein auf 15 Zeilen pro Unterpunkt. Vielen Dank im Voraus.
Userbild
Gruß
Anzeige
Wohl nur sehr mühsam umzusetzen...
18.07.2016 18:20:11
Michael
John,
...wenn überhaupt. Woran kann zB erkannt werden, dass für einen "Unterpunkt" bereits 15 Zeilen erstellt wurden? Excel kennt Zellen, Zeilen, Spalten aber keine "Unterpunkte" - das ist in Deinem Formular eine rein optische Unterscheidung.
Wenn es irgendein Element in Deiner Tabelle gibt, auf das man Bezug nehmen kann, das jeweils den Beginn oder das Ende eines "Unterpunktes" markiert, dann überleg ich nochmal.
So ist das (für mich) zu mühselig umzusetzen.
LG
Michael
AW: Wohl nur sehr mühsam umzusetzen...
18.07.2016 19:38:55
John
Hallo,
Bezugspunkt sind doch die Zeilen beim Programmieren in Excel oder nicht? Alles klar dann muss ich das wohl selber in die Hand nehmen.
Anzeige
Bezugspunkt...
19.07.2016 09:01:51
Michael
Guten Morgen John!
...sind doch die Zeilen beim Programmieren in Excel oder nicht
Scherzkeks. Das ist schon klar, aber die Problematik besteht darin, dass Deine (!) Bezugsgrenzen aktuell nur optisch definiert sind, nicht zeilenmäßig. Schau Dir Deine Tabelle einmal an - woran kann man hier feststellen, dass bspw. zwischen 1.1 und 1.2 bereits 15 Einträge bestehen?
LG
Michael
Anzeige

341 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige