Clever-Excel-Forum

Normale Version: Zeile hinzufügen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Abend

Ich habe eine intelligente Tabelle Spalte A bis F und möchte nun durch Doppelklick auf eine bestimmte Stelle (Funktion soll nur innerhalb Spalte A ausgeführt werden) darunter eine Zeile einfügen und den Inhalt aus der aktuellen Zeile in die neue Zeile kopieren.

Super wäre eine Erweiterung mit Auswahl ob darunter oder darüber die neue Zeile eingefügt werden soll Oder die Zeile gelöscht werden soll.

Ist das möglich? Ich scheitere mit ListObject, ListRows.Add und Target.Row

Herzlichen Dank und beste Grüsse
Urs



Tabelle3

ABCDEF
21
31
41
52
62
72
83
93
103
114
124
134
145
155
165

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Moin!
Mal ein Anfang:

Microsoft Excel Objekt Tabelle2
Option Explicit 
 
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
With Me.ListObjects(1) 
  If Not Intersect(.DataBodyRange.Columns(1), Target) Is Nothing Then 
    Select Case MsgBox("Zeile einfügen" & vbLf & vbLf & _
            "Ja: oberhalb" & vbLf & vbLf & _
            "Nein: unterhalb" & vbLf & vbLf & _
            "Abbrechen: Keine Änderung!", vbYesNoCancel) 
      Case 6  'Ja 
        .ListRows.Add Target.Row - 1 
      Case 7  'Nein 
        .ListRows.Add Target.Row 
      Case 2  'Abbrechen 
        'Nothing, nix, nada 
    End Select 
    Cancel = True 
  End If 
End With 
End Sub 

Willst Du die gesamte Zeile kopieren oder nur Spalte A?

Disclaimer:
Auch wenn es so klappt und hier von mir aus Übungsgründen eingestellt wurde:
Wofür brauchst Du das?
Listen erweitert man in der Regel durch Anhängen und späteres Sortieren.

Gruß Ralf
Hoi Ralf

Passt schon prima!!!
Es muss nur der Inhalt aus Spalte A kopiert werden.

Gruss
Urs
So:
Microsoft Excel Objekt Tabelle2
Option Explicit 
 
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
With Me.ListObjects(1) 
  If Not Intersect(.DataBodyRange.Columns(1), Target) Is Nothing Then 
    Select Case MsgBox("Zeile einfügen" & vbLf & vbLf & _
            "Ja: oberhalb" & vbLf & vbLf & _
            "Nein: unterhalb" & vbLf & vbLf & _
            "Abbrechen: Keine Änderung!", vbYesNoCancel) 
      Case 6  'Ja 
        .ListRows.Add Target.Row - 1 
        ActiveCell = Target 
      Case 7  'Nein 
        .ListRows.Add Target.Row 
        ActiveCell.Offset(1) = Target 
      Case 2  'Abbrechen 
        'Nothing, nix, nada 
    End Select 
    Cancel = True 
  End If 
End With 
End Sub 
 
Lieber Ralf

Ich dachte zuerst, dass deine Lösung nun iO ist für mich. Nun habe ich festgestellt, dass ich die Spalte A ausblenden muss. Dies hat zur Folge, dass die Zeile hinzugefügt werden soll, wenn in der zweiten Spalte der Doppelklick erfolgt

If Not Intersect(.DataBodyRange.Columns(2), Target) Is Nothing Then

UND der Inhalt aber in Spalte A kopiert werden soll.

Gruss
Urs