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

Forumthread: Neuen Datensatz einfügen über VBA

Neuen Datensatz einfügen über VBA
26.11.2014 09:51:57
Tom
Hallo,
ich benötige eine kleine Anpassung des Codes.
Durch den Doppelklick soll immer die Zeile 10.000 als Grundlage für die neue Zeile unten angehängt werden und nicht die darüber liegende. Grund dafür wenn die User die Formatierung der bereits eingefügten Zeilen durch copy-past ändern, wird nicht mehr die richtige Formatierung in die neue Zeile kopiert.
Des Weiteren dürfen auch nur Zeilen unterhalb der Zeile 10.000 eingefügt werden. Oberhalb dieser Zeile darf nichts passieren.
Gruß Tom
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
If Target.Column = 1 Then
On Error GoTo Notausgang
With ActiveCell
.EntireRow.Copy
.EntireRow.Offset(1, 0).Insert shift:=xlDown
.EntireRow.Offset(1, 0).PasteSpecial
.EntireRow.Offset(1, 0).SpecialCells(xlCellTypeConstants).ClearContents
.Offset(1, 0) = Date
.Offset(1, 0).Select
End With
Application.CutCopyMode = False
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Notausgang:
Cancel = True
Application.CutCopyMode = False
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Exit Sub
End If
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Neuen Datensatz einfügen über VBA
26.11.2014 10:05:22
Daniel
Hi
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 1 And Target.Row > 10000 Then
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
On Error GoTo Notausgang
With ActiveCell
Rows(10000).Copy
.EntireRow.Offset(1, 0).Insert shift:=xlDown
Der Rest dann wie gehabt

Gruß Daniel

Anzeige
AW: Neuen Datensatz einfügen über VBA
26.11.2014 10:13:51
Tom
hi,
ok danke
gruß tom
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Neuen Datensatz mit VBA einfügen


Schritt-für-Schritt-Anleitung

Um einen neuen Datensatz über VBA in Excel einzufügen, kannst du den folgenden Code verwenden. Dieser sorgt dafür, dass immer unterhalb der Zeile 10.000 eingefügt wird und die Formatierung von Zeile 10.000 übernommen wird.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Wähle das entsprechende Arbeitsblatt im Projektfenster aus.
  3. Füge den folgenden Code in das Codefenster ein:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Column = 1 And Target.Row > 10000 Then
        Application.ScreenUpdating = False
        Application.Calculation = xlCalculationManual
        On Error GoTo Notausgang
        With ActiveCell
            Rows(10000).Copy
            .EntireRow.Offset(1, 0).Insert shift:=xlDown
            ' Der Rest dann wie gehabt
        End With
        Application.CutCopyMode = False
        Application.Calculation = xlCalculationAutomatic
        Application.ScreenUpdating = True
    End If
    Notausgang:
    Cancel = True
    Application.CutCopyMode = False
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
    Exit Sub
End Sub
  1. Schließe den VBA-Editor und teste den Code, indem du auf eine Zelle in Spalte A unterhalb der Zeile 10.000 doppelklickst.

Häufige Fehler und Lösungen

Fehler: Nichts passiert beim Doppelklick

  • Lösung: Stelle sicher, dass du dich unterhalb der Zeile 10.000 befindest und dass die Spalte A (Spalte 1) aktiv ist.

Fehler: Formatierung wird nicht übernommen

  • Lösung: Überprüfe, ob der Code korrekt in das entsprechende Arbeitsblatt eingefügt wurde. Der Code muss im richtigen VBA-Modul sein.

Alternative Methoden

Eine alternative Methode, um Datensätze hinzuzufügen, ist die Verwendung von Excel-Formeln oder das Erstellen eines UserForms. Damit kannst du Eingaben erleichtern und die Daten direkt an den richtigen Stellen einfügen.


Praktische Beispiele

Wenn du häufig Datensätze hinzufügst, könnte es hilfreich sein, den VBA-Code anzupassen, um beispielsweise auch andere Daten wie das aktuelle Datum oder spezifische Werte automatisch zu übernehmen. Hier ist ein Beispiel, um das aktuelle Datum in die neue Zeile einzufügen:

.Offset(1, 0) = Date

Füge dies an der Stelle hinzu, wo du den neuen Datensatz einfügst.


Tipps für Profis

  • Nutze die Application.ScreenUpdating und Application.Calculation Befehle, um die Leistung zu verbessern, während dein VBA-Code ausgeführt wird.
  • Überlege, wie du den Code modularisieren kannst, um die Wiederverwendbarkeit zu erhöhen.
  • Halte deinen Code kommentiert, damit du und andere ihn in der Zukunft leicht verstehen können.

FAQ: Häufige Fragen

1. Kann ich den Code auch für andere Spalten verwenden? Ja, du kannst die Target.Column-Bedingung anpassen, um den Code für andere Spalten zu aktivieren.

2. Funktioniert dies in allen Excel-Versionen? Der bereitgestellte Code sollte in den meisten modernen Excel-Versionen funktionieren, sollte aber in Excel 2010 oder höher getestet werden, um sicherzustellen, dass alle Funktionen unterstützt werden.

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