intelligente Tabelle Zeile kopieren
#1
Hallo liebes Forum,
mein Name ist Frank und ich fange gerade erst mit Excel an und habe direkt schon ein Problem. Ich habe eine intelligente Tabelle und möchte per Button die aktuelle Zeile kopieren und direkt darunter einfügen. Es wäre sehr nett wenn mir jemand helfen könnte. Habe eine Beispieldatei angehängt allerdings ohne Code da ich gar nicht wusste wo ich anfangen soll. 
Grüße 
Frank


Angehängte Dateien
.xlsm   TestEinfügen.xlsm (Größe: 14,85 KB / Downloads: 5)
Antworten Top
#2
Hi,

was heißt "direkt darunter einfügen"?
Unterhalb der Tabelle - also als nächsten Datensatz - oder soll eine Zeile eingefügt werden?
Was ist der genaue Hintergrund? Ich frag das deshalb, weil solche Kopier- und Einfügeaktionen meist nicht nötig sind.
Antworten Top
#3
Hallo
es soll eine Zeile eingefügt werden mit dem gleichen Inhalt wie der aktuellen Zeile. Hintergrund ist der das sich die Tabelle stetig erweitert und manchmal ähnlich wie eine bereits vorhandene Zeile ist. In diesem Fall möchte ich nicht nur eine leere Zeile hinzufügen sondern eben wie oben beschrieben. Die Zeile sollte dann direkt unter der aktuellen neu eingefügt werden.
Antworten Top
#4
Moin!
Gerade weil Du gerade erst mit Excel anfängst, schildere ich Dir die Methode, wie man das mit Tastatur und Maus löst.
VBA ist hier absolut nicht notwendig!
• markiere die Tabellenzeile, indem Du den Mauszeiger nahe an den linken Rand der Tabelle führst, bis er so aussieht:
   drücke die linke Maustaste, dadurch wird die Zeile des Tabellenobjekts markiert:
   
• jetzt ziehst Du bei gedrückter Strg-Taste die Tabellenzeile als Kopie an die Stelle, wo der Zeilentrenner so aussieht: |———|
   

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 2 Nutzer sagen Danke an RPP63 für diesen Beitrag:
  • Frank7733, Sabotaz
Antworten Top
#5
Hallo Frank,

Code:
Private Sub CommandButton1_Click()
  If Not Intersect(ActiveCell, ActiveSheet.ListObjects("Tabelle1").DataBodyRange) Is Nothing Then
    With Intersect(ActiveCell.EntireRow, ActiveSheet.ListObjects("Tabelle1").DataBodyRange.EntireColumn)
      .Copy
      .Insert
    End With
  End If
End Sub

Gruß, Uwe
[-] Folgende(r) 2 Nutzer sagen Danke an Kuwer für diesen Beitrag:
  • Frank7733, Sabotaz
Antworten Top
#6
Danke Ralf aber ich versuche gerade mich mit VBA auseinanderzusetzen. Der Code von Uwe funktioniert perfekt, danke dir
Grüße 
Frank
Antworten Top
#7
Hi,

Zitat:aber ich versuche gerade mich mit VBA auseinanderzusetzen.

Das ist ja auch ok. Aber gerade für den Anfang ist es mMn sehr hilfreich, die Bordmittel zu kennen. Daher finde ich die Antwort von Ralf sehr zielführend.
Antworten Top
#8
Alternative:

Code:
Sub M_snb()
    On Error Resume Next
    With ActiveCell.ListObject.ListRows(ActiveCell.Row - 2).Range
        .Copy
        .Insert
    End With
    Application.CutCopyMode = False
End Sub

NB. Bitte keine 'protected' Dateien hochladen !!!
Fang immer an in A1.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#9
Hallo Frank,

(25.05.2024, 16:56)snb schrieb: Fang immer an in A1.

nimm es nicht sooo Ernst, was snb hier so dogmatisch empfiehlt. Meistens sind es eher seine persönlichen Vorlieben.
Hier sieht das z.B. jemand ganz anders: Listen (Tabellen) Speziell hier der letzte Abschnitt.

Gruß, Uwe
Antworten Top
#10
Nö. Wenn man VBA verwendet muss man z.B. auch Usedrange in Betracht nehmen.
Alles wird einfacher wenn man A1 benützt.

NB. Er sah das anders.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste