Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1812to1816
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten an Anfang Tabelle einfügen

Daten an Anfang Tabelle einfügen
16.02.2021 10:07:07
Tristan
Moin,
der Titel ist leider etwas kurz, deswegen hier die Beschreibung:
Ich habe eine Excel mit 2 Worksheets: Dateneingabe und Datenbank.
In Dateneingabe gebe ich in 5 Spalten Daten ein und möchte jetzt ein Makro erstellen, welches über einen Button die neuen Daten in die Datenbank überträgt, da in eine gleich formatierte Tabelle ganz oben einfügt und die alten Werte dementsprechend nach unten schiebt. Danach soll die Tabelle bei Dateneingabe bitte wieder gecleared werden.
Außerdem wäre es wahrscheinlich sinnvoll, in meiner Tabelle nur ausgefüllte Zellen zu betrachten.
Hier der bisherige Code, der wirft leider die Fehlermeldung 1004: Excel kann keine neuen Zellen einfügen, weil nicht leere Zellen über das Ende des Arbeitsblattes hinausverschoben würden.
Sub Übertragen2()
If (Range("A2", Range("G2").End(xlDown)).Count) = 6291450 Then  'Used Range Befehl?'
Range("A2", Range("G2")).Cut
Else
Range("A2", Range("G2").End(xlDown)).Cut
End If
Sheets("Datenbank").Rows("2:2").Insert Shift:=xlDown
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten an Anfang Tabelle einfügen
16.02.2021 11:48:27
Yal
Hallo Tristan,
setzt Dich bitte auseinander mit dem Coding, das Du hier lieferst. Wenn Du den nicht verstehst, dann wird es schwierig für dich, die Antwort zu verstehen, die wir Dir überliefern werden.
VG
Yal
AW: Daten an Anfang Tabelle einfügen
16.02.2021 17:40:24
Piet
Hallo Tristan
ich nehme nicht an das deine Tabelle mit 1 Million Zeilen voll ist ?
xlDown enthaelt einen schweren Programmierfehler, der dir offenbar NICHT bekannt ist!!!
Du sucht die LastZell in Spalte "G" Wenn die aber leer ist landest du immer am Tabellen Ende!!
Dahinter gehört immer ein Überlauf Korrekturbefehl: - If LastZell > 10 then LastZell = 5
Das erreicht du aber nur wenn du LastZell vorher in eine Variable ladest, die man prüfen kanni
Probiere es bitte mal mit meienm Code. Die Variable kannst du nennen wie du willst, bei mir "lz1"
Bei mir siehst du auch den Unterschied zwischen xlDown und xlUp. Ich nehme vorwiegend xlUP
mfg Piet
Sub Übertragen2()
Dim lz1 As Long
'Mit xlDown nach unten suchen!!
'** landet ggf. am Tabellen Ende!!  +1 NICHT möglich!!
lz1 = Range("G2").End(xlDown).Row
If lz1 > 5 Then lz1 = Range("A2").End(xlDown).Row
If lz1 > 5 Then MsgBox "Spalte A + G sind leer": Exit Sub
'Oder mit xlUp von unten suchen!!
'** ist sicherer, landet bei leeren Zeilen bei 1!
lz1 = Range("G100").End(xlUp).Row
If lz1 > 5 Then lz1 = Range("A100").End(xlUp).Row
If lz1 = 1 Then MsgBox "Spalte A + G sind leer": Exit Sub
If (Range("A2", Range("G" & lz1)).Count) = 6291450 Then  'Used Range Befehl?'
Range("A2", Range("G2")).Cut
Else
Range("A2", Range("G" & lz1)).Cut
End If
Sheets("Datenbank").Rows("2:2").Insert Shift:=xlDown
End Sub

Anzeige
AW: Daten an Anfang Tabelle einfügen
16.02.2021 21:20:27
Yal
Hallo zusammen,
ich fand die Erklärung von Tristan nicht schlüssig und der Code-Beispiel (copy-paste aus i-net?) überhaupt nicht passend (Daher mein etwa barschen Urteil. Sorry dafür, es hilft nicht weiter)
Aber die Erklärung von Piet ist echt.. verwirrend (wenn auch gut gemeint). Das Coding zeigt mehrere Möglichkeiten, aber jenseits von Tristans -aktuellen- VBA-Kompetenz.
Richtig: letzte Zelle "von unten" suchen, also mit xlUp. Sonst hast Du das Risiko, dass deine Tabelle eine Leerzelle in Spalte G hat, und dann erwischst Du nicht alles.
Aber wie auch immer, das hilft nich zur Lösung des Problems: Du willst eine neue Zeile zwischen Zeile 1 und 2 einfügen. Mehr nicht.
Es kommt die komische Fehler, dass es nicht geht, weil angeblich alle Zeile bereit befüllt sind. Und daher eine neue dazwischen einzufügen die letzte Zeile rauswerfen würde...
Lösung 1: untere Bereich löchen
Normalerweise reicht es, die erste Zeile nach der letzte Zeile zu markieren, mit Shift+Strg+Pfreil nach unten um alles zu markieren und Strg+Minus um diese Zeile zu löschen (nicht nur Inhalt, sondern komplett löschen. Es fügen sich neue ein).
Lösung 2: alles neu macht ein neues Blatt
Du markierst den Bereich A1:G..letzte Zeile kopierst und fügst in eine neue leeres Blatt.
Danach sollte
Sheets("Datenbank").Range("A2").EntireRow.Insert Shift:=xlDown

reichen um eine neue Zeile ohne Fehlermeldung einzufügen.
VG
Yal
(versucht trotzdem den Code zu lesen. Übung macht den Meister. Ein Frage mit einem Coding, das eindeutig nicht dazu passt, zu stellen, führt nicht selten zur Ablehnung)
Anzeige
AW: Daten an Anfang Tabelle einfügen
17.02.2021 06:23:41
Tristan
Moin Yal,
danke für die Hilfe, das Code Beispiel ist in der Tat nicht von mir sondern von einem Kollegen. Leider arbeiten wir mit mehreren Personen an einer Excel, während ich mein Makro einfüge ist mir aufgefallen, dass das Übertragen mit dem Makro meines Kollegen nicht funktioniert.
Daher hast du aber recht, von dem Code hatte ich kein Verständnis, deshalb hier der Beitrag.
Ich werde mich diesbezüglich weiter informieren und das Problem bei meinem Kollegen ansprechen.
Danke für die Hilfe.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige