Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Nach Eingabe von Text, drunter neue Zeile hinzufügen

VBA Nach Eingabe von Text, drunter neue Zeile hinzufügen
28.10.2024 10:00:24
Chuchu
Hallo zusammen,

ich würde gerne in eine beliebige Zeil einen Wert eingeben, mit enter bestätigen und dass in der Zeile darunter eine neue Zeile hinzugefügt wird.

Hintergrund dazu ist, dass ich mehrere Tabellen untereinander habe und den Abstand zueinander gleich halten will und dass mir die anderen Tabellen nicht überschrieben werden.

In VBA am besten.

Bitte um schnelle Hilfe...

Ich bedanke mich schon mal im Vorras. :)
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Nach Eingabe von Text, drunter neue Zeile hinzufügen
28.10.2024 10:22:20
GerdL
Moin C.
Private Sub Worksheet_Change(ByVal Target As Range)


With Target
If .CountLarge = 1 Then
If .Value > "" Then
If MsgBox("Neue Zeile?", vbYesNo, "Leerzeile darunter") = vbYes Then
.Offset(1).Insert shift:=xlDown
End If
End If
End If
End With

End Sub

Gruß Gerd
Anzeige
AW: VBA Nach Eingabe von Text, drunter neue Zeile hinzufügen
28.10.2024 11:56:22
Yal
Hallo Chu^2,

versuche so:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim Lo1 As ListObject
Dim Lo2 As ListObject
Dim Abstand As Long

Const cZielAbsatand = 7

With Workbooks("173194.xlsm").Worksheets(1) 'anpassen
Set Lo1 = .ListObjects("QR_Stahl_235JRH")
Set Lo2 = .ListObjects("QR_Stahl_355J2H")
Abstand = Lo1.DataBodyRange.Row + Lo1.DataBodyRange.Rows.Count - Lo2.DataBodyRange.Row
Application.EnableEvents = False
Do While Abstand > cZielAbsatand
If Abstand cZielAbsatand Then 'sind zu wenige Zeilen, einfügen
Lo2.DataBodyRange.Offset(-2).Insert Shift:=xlDown
Else 'sonst (=zuviele) löschen
Lo2.DataBodyRange.Offset(-2).Delete Shift:=xlUp
End If
Abstand = Lo1.DataBodyRange.Row + Lo1.DataBodyRange.Rows.Count - Lo2.DataBodyRange.Row
Loop
Application.EnableEvents = True
End With
End Sub


VG
Yal
Anzeige
AW: VBA Nach Eingabe von Text, drunter neue Zeile hinzufügen
28.10.2024 14:07:40
Chuchu
Hallo, leider hat es nicht geklappt.

Es loopt die ganze zeit und stürzt ab
AW: VBA Nach Eingabe von Text, drunter neue Zeile hinzufügen
28.10.2024 16:47:15
schauan
Hallöchen,

also, um nur den Teil des Einfügens darzustellen, das würde so gehen.

'Pruefen, ob in einem Listobjekt selektiert ist

If Not Selection.ListObject Is Nothing Then
'Mit dem Listobjekt
With Selection.ListObject
'Zeile darunter einfuegen
.ListRows.Add Selection.Row - .HeaderRowRange.Row + 1
'Emde Mit dem Listobjekt
End With
'Ende Pruefen, ob in einem Listobjekt selektiert ist
End If
Anzeige
AW: VBA Nach Eingabe von Text, drunter neue Zeile hinzufügen
28.10.2024 12:25:40
ralf_b
https://learn.microsoft.com/de-de/office/vba/api/excel.listrows.add

schau dir mal den Parameter "alwaysinsert" an.

vielleicht liege ich hier ja falsch, aber du willst doch an/in eine intelligente Tabelle eine Zeile einfügen. Dann nutze auch deren Objekte.
Anzeige
AW: VBA Nach Eingabe von Text, drunter neue Zeile hinzufügen
28.10.2024 10:43:13
Onur
Solltest du mal testen...
AW: VBA Nach Eingabe von Text, drunter neue Zeile hinzufügen
28.10.2024 11:33:57
Chuchu
Also das hat nicht funktioniert. danke erstmal für den Vorschlag.

Hier die Tabelle
https://www.herber.de/bbs/user/173194.xlsm


wenn ich in der ersten Tabelle einen neuen Querschnitt eines Rohres eingebe.....sortiert sich dieser ein und ich möchte aber zu der nächsten Tabelle unten den gleichen Abstand beibehalten, sodass mir die Tabelle nicht mit neuen Zeilen der ersten Tabelle überschrieben wird.

vielen dank
Anzeige
AW: VBA Nach Eingabe von Text, drunter neue Zeile hinzufügen
28.10.2024 11:59:11
MCO
Hey, Gerd!

Du musst es in das Worksheet_Change_ereignis einfügen, wo schon die ganzen Sortierungen stehen.

Aber abgesehen davon:
-Rückfrage gelöscht
-Prüfung erweitert (schreibe in A, B muss leer sein), ansonsten kommt es jedesmal wieder.
-Ereignisse zeitweise abgeschaltet (endlos-Schleife droht!)
-Einfügen von Zelle auf Zeile erweitert (Fehler abgefangen)

Vielleicht wäre es auch ganz ratsam entweder zu sortieren oder eine Zeile einzufügen.
Jetzt ist es nämlich so, dass beim Eintrag in Spalte A der Artikel schon einsortiert wird.....

Also bei der sortieren-Funktion evtl noch ein exit sub einbauen

Sollte klappen:

    Application.EnableEvents = False


With Target
If .CountLarge = 1 And .Column = 1 Then
If .Value > "" And .Offset(0, 1) = "" Then
.Offset(1).EntireRow.Insert shift:=xlDown
.exit sub
End If
End If
End With

Application.EnableEvents = True


Gruß, MCO
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige