Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA ab Zeile einfügen

VBA ab Zeile einfügen
08.02.2020 12:35:12
Hans
Hallo Zusammen
untenstehenden code gefunden sofern alles gut
werte einfügen ab b2, aber ich kriegen es nicht gebacken das z. B. ab B10 eingefügt wird
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Inhalt der Zellen aus dem Bereich A:G unter Doppelklick übertragen nach
'Tabelle2 erste freie zeile
With Sheets("Tabelle4")
.Cells(.Rows.Count, 2).End(xlUp).Offset(1, 0).Resize(1, 1).Value = _
Range("A" & Target.Row & ":A" & Target.Row).Value
End With
'Kopiermodus beenden
Application.CutCopyMode = False
'Doppelklick abbrechen
Cancel = True
End Sub
Beste Dank
Hans
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA ab Zeile einfügen
08.02.2020 13:15:46
Werner
Hallo,
meinst du so?
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim loLetzte As Long
With Sheets("Tabelle4")
loLetzte = .Cells(.Rows.Count, 2).End(xlUp).Offset(1).Row
If loLetzte 
Anmerkungen:
Dir ist schon klar, dass das Makro immer startet, sobald du irgendwo in der Tabelle einen Doppelklick ausführst? Ist das tatsächlich so gewollt.
Application.CutCopyMode = False ist unnötig, du kopierst ja gar nichts.
Gruß Werner
Anzeige
AW: VBA ab Zeile einfügen
08.02.2020 20:30:06
GerdL
Moin!
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim L As Long
Cancel = True
With Sheets("Tabelle4")
L = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
If L 

Was sollte der Doppel-Range für eine Zelle?
Gruß Gerd
Anzeige
AW: VBA ab Zeile einfügen
08.02.2020 21:43:32
Hans
Hallo Gerd,
noch kompakter :-)
aber Mein offnene Frage am 08.02.2020 21:11:58
aber eigentliche Frage die ich noch haben ist...?
wie springe ich in die Zelle daneben wo die letze wert eingefügt wird nach doppelklick ereignis.
Sheets("Tabelle2").Activate
'hier muss in Zelle genau daneben gesprungen werden z.B. wert B10 Cursor C10 etc.
Sheets("Tabelle2").Range("c" & Target.Row).Value
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim L As Long
Cancel = True
With Sheets("Tabelle4")
L = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
If L 
Beste Grüße
Hans
Anzeige
AW: VBA ab Zeile einfügen
08.02.2020 22:28:17
GerdL
Hallo,
ungetestet.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim L As Long
Cancel = True
With Sheets("Tabelle2")
L = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
If L 

Gruß Gerd
AW: VBA ab Zeile einfügen
09.02.2020 03:28:14
Hans
Hallo Gerd,
Getestet und lauft einwandfrei :-)
Code sehr logisch und aufgeraumt,
Ps wo kan mann am besten Nachschlagen zum Lernen VBA struktur außer Herber.de natürlich.
Einen Frage noch:
Wie kan mann den "Worksheet_BeforeDoubleClick" bereich Tabelle definieren /eingrenzen z.B. auf den spalten B bis G.....!!
Beste Dank
Hans
Anzeige
AW: VBA ab Zeile einfügen
09.02.2020 07:15:36
GerdL
Moin!
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim L As Long
Cancel = True
If Not Intersect(Target, Range("B:G")) Is Nothing Then
With Sheets("Tabelle2")
L = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
If L 
Zum Thema "VBA lernen - Literatur/Quellen" eröffne bitte einen neuen Beitrag.
Dann sind deine Chancen auf Antworten viel größer.
Gruß Gerd
Anzeige
AW: VBA ab Zeile einfügen o.T
09.02.2020 13:35:37
Hans
Danke an alle und eine schöne Sonntag
Grüße
Hans
AW: VBA ab Zeile einfügen
08.02.2020 21:11:58
Hans
Hallo Werner,
Hajo danke, geht mit in meine Sammelung
richtig gelesen
Anmerkungen:
Dir ist schon klar, dass das Makro immer startet, sobald du irgendwo in der Tabelle einen Doppelklick ausführst? Ist das tatsächlich so gewollt.
JA, in die betreffenden Tabelle wird nur nach einen wert (artikel Stammdaten) gesucht.
Vielleicht kan mann Klick bereich eingrenzen auf den spalten B bis G.....!!
aber eigentliche Frage die ich noch haben ist...?
wie springe ich in die Zelle daneben wo die letze wert eingefügt wird nach doppelklick ereignis.
Sheets("Tabelle2").Activate
'hier muss in Zelle genau daneben gesprungen werden z.B. wert B10 Cursor C10 etc.
Sheets("Tabelle2").Range("c" & Target.Row).Value
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim loLetzte As Long
With Sheets("Tabelle2")
loLetzte = .Cells(.Rows.Count, 2).End(xlUp).Offset(1).Row
If loLetzte 
Beste Grüße
Hans
Anzeige
AW: VBA ab Zeile einfügen
08.02.2020 13:48:39
Hajo_Zi
Hallo Hans,
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
' wie im Beitrag gefordert ab B10, B2 sollte nicht mehr drin sein
If Target.Column = 2 And Target.Row >= 10 Then
'Inhalt der Zellen aus dem Bereich A:G unter Doppelklick übertragen nach
'Tabelle2 erste freie zeile
With Sheets("Tabelle4")
.Cells(.Rows.Count, 2).End(xlUp).Offset(1, 0).Resize(1, 1) = _
Range("A" & Target.Row & ":A" & Target.Row)
End With
'Doppelklick abbrechen
Cancel = True
End If
End Sub

Anzeige
nein...
08.02.2020 13:57:26
Werner
Hallo Hajo,
...es geht um das Einfügen ab B10 und nicht darum den Doppelklickbereich zu beschränken.
Gruß Werner
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA zum Einfügen von Werten ab einer bestimmten Zeile


Schritt-für-Schritt-Anleitung

Um Werte in Excel mithilfe von VBA ab einer bestimmten Zeile einzufügen, kannst du den folgenden VBA-Code verwenden. Dieser Code ermöglicht es, Werte ab der Zelle B10 einzufügen.

  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:

    Option Explicit
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
       If Target.Column = 2 And Target.Row >= 10 Then
           With Sheets("Tabelle4")
               .Cells(.Rows.Count, 2).End(xlUp).Offset(1, 0).Resize(1, 1).Value = _
               Range("A" & Target.Row & ":A" & Target.Row).Value
           End With
           Cancel = True
       End If
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Doppelklicke auf eine Zelle in Spalte B ab der Zeile 10, um den Code auszuführen.


Häufige Fehler und Lösungen

  • Fehler: Das Makro wird bei jedem Doppelklick in der Tabelle ausgelöst.

    • Lösung: Stelle sicher, dass du die Bedingung If Target.Column = 2 And Target.Row >= 10 im Code implementierst, um das Makro nur für die gewünschten Zellen zu aktivieren.
  • Fehler: Werte werden nicht korrekt eingefügt.

    • Lösung: Überprüfe, ob die Ziel-Tabelle (in diesem Fall "Tabelle4") korrekt benannt ist und existiert.

Alternative Methoden

Eine alternative Methode, um Werte in eine andere Zelle einzufügen, wäre die Verwendung von Formularen oder Schaltflächen in Excel, die den VBA-Code auslösen. Du kannst auch die Worksheet_Change-Ereignisprozedur verwenden, um automatisch Werte zu übertragen, wenn sich etwas in einer bestimmten Zelle ändert.


Praktische Beispiele

Angenommen, du möchtest die Werte aus Spalte A in Spalte C einfügen, wenn du auf eine Zelle in Spalte B ab Zeile 10 doppelklickst. Hier ist ein Beispielcode:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Column = 2 And Target.Row >= 10 Then
        Sheets("Tabelle2").Range("C" & Target.Row).Value = _
        Sheets("Tabelle4").Cells(Sheets("Tabelle4").Rows.Count, 2).End(xlUp).Value
        Cancel = True
    End If
End Sub

Tipps für Profis

  • Verwende die Option Explicit-Anweisung, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.
  • Kommentiere deinen Code gut, damit du und andere ihn später leicht verstehen können.
  • Teste den Code in einer Kopie deiner Arbeitsmappe, um Datenverluste zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich die Zielzeile ändern?
Du kannst die Bedingung Target.Row >= 10 im Code anpassen, um den Startpunkt zu ändern.

2. Kann ich den Code für andere Spalten verwenden?
Ja, ändere einfach die Target.Column-Bedingung auf die gewünschte Spalte, z.B. Target.Column = 3 für Spalte C.

3. Wo kann ich mehr über VBA lernen?
Es gibt viele Ressourcen wie Online-Kurse, Foren und Bücher. Eine gute Anlaufstelle ist die Microsoft-Dokumentation oder spezielle Excel-Communities.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige