Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
leere Spalte immer rechts einfügen
10.11.2021 13:26:02
Christian
Hallo zusammen,
mein Anliegen hört sich einfach an, jedoch komme ich nicht auf die endgültige Lösung.
Ich möchte gerne in dem angehängten Beispiel per VBA Makro (Button "neues Teil einfügen") eine neue Spalte rechts von einer (links) bestehenden Spalte einfügen, wobei alle Formatierungen hier mit kopiert werden sollen. Die eingefügte Spalte soll aber dann einen leeren Inhalt haben - Sheet-1 zu Sheet-2 mit eingefügter Spalte I als Kopie von Spalte H. Bei erneutem Druck soll dann die ausgefüllte Spalte I in Spalte K kopiert werden und auch wieder leer sein usw. - siehe Sheet-3.
Die Makros die ich aufzeichnen bzw. im Forum finde, beziehen sich immer auf eine feste Spalte die kopiert/eingefügt werden soll. Bei mir verschiebt sich ja immer der Bereich, der kopiert wird nach rechts weiter.
Genau das gleiche Problem würde ich dann gerne mit Zeilen (Button "neue Zeile einfügen") machen. Es sollte immer per Button die vorherige Zeile kopiert und unten drunter eine Zeile eingefügt werden - siehe Sheet-2 zu Sheet 3 mit eingefügter leerer Zeile 43.
Somit verschiebt sich dann auch immer der Einfügebereich, was mein eigentliches Problem ist :-(
https://www.herber.de/bbs/user/149049.xlsx
Es wäre Klasse, wenn mir hier jemand helfen könnte :-)
Viele Grüße
Christian

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: leere Spalte immer rechts einfügen
10.11.2021 13:53:28
Stefan
Hallo Christian,
anbei die Datei mit dem Code.
Ich hab es kommentiert, so sind evtl. die Gedankengänge hinter den Codezeilen ersichtlich.
https://www.herber.de/bbs/user/149051.xlsm
Viel Erfolg weiterhin und Gruß
Stefan
AW: leere Spalte immer rechts einfügen
10.11.2021 15:02:03
Christian
Hallo Stefan,
vielen Dank für die schnelle Hilfe. Gehe ich richtig der Annahme, dass die Tabelle in dem Beispiel "Tabelle 20" heißt und ich diese auch ersetzten kann z.B. mit "ThisWorkbook.Worksheets("Sheet-1"), um ein gezieltes Tabellenblatt anzusprechen?
Kann ich die Range-Abfrage (z.B.: lzeile = Tabelle20.Range("B11:B2000")) auch verschieben, do dass z.B. ab B10 oder auch F10 gesucht wird. Ich habe hier mal alle Zeilen bis auf die erste Ausgefüllte Zeile 10 zu löschen und dann geht das Makro nicht mehr ;-(
Bei der Spalte funktioniert es soweit ich lösche alle Spalten bis auf Teil 1 und kann dann Teil 2 usw. per Klick auf den Butten einfügen = Perfekt :-) Hierzu nur die Frage, das Beispiel von mir ist aus meiner endgültigen Tabelle nur herauskopiert. Das Teil 1 ist nur im Beispiel in der Spalte F. In Wirklichkeit wäre es Spalte O. Inwiefern verschiebt sich das Makro?
Viele Grüße
Christian
Anzeige
AW: leere Spalte immer rechts einfügen
10.11.2021 15:26:15
Werner
Hallo,
hier mal meine Version.

Private Sub CommandButton1_Click()
'Neue Zeile
Dim loLetzte As Long
Application.ScreenUpdating = False
With Worksheets("Sheet-1")
loLetzte = .Cells(.Rows.Count, "B").End(xlUp).Row
.Rows(loLetzte).Copy .Rows(loLetzte).Offset(1)
.Rows(loLetzte).Offset(1).ClearContents
End With
End Sub
Private Sub CommandButton2_Click()
'Neue Spalte
Dim loSpalte As Long
Application.ScreenUpdating = False
With Worksheets("Sheet-1")
loSpalte = .Cells(9, .Columns.Count).End(xlToLeft).Column
.Columns(loSpalte).Offset(, -2).Copy
.Columns(loSpalte).Offset(, -1).Insert
.Columns(loSpalte).Offset(, -1).ClearContents
If IsNumeric(Right(.Cells(9, loSpalte).Offset(, -2), 1)) Then
.Cells(9, loSpalte).Offset(, -1) = "Teil " _
& Format(Right(.Cells(9, loSpalte).Offset(, -2), 2) + 1, "00")
Else
.Cells(9, loSpalte).Offset(, -1) = "Teil"
End If
End With
Application.CutCopyMode = False
End Sub
Für das Einfügen von Zeilen:
die letzte belegte Zelle wird in Spalte B von unten nach oben ermittelt.
Für das Einfügen von Spalten:
die letzte belegte Zelle wird in Zeile 9 (Überschriften) von links nach rechts ermittelt.
Keine Ahnung weshalb hier immer wieder Beispielmappen hochgeladen werden, die dann in ihrem Aufbau wohl nicht wirklich viel mit der Originalmappe zu tun haben.
Und dann wundert man sich, dass das Makro nicht läuft.
Gruß Werner
Anzeige
AW: leere Spalte immer rechts einfügen
10.11.2021 15:53:41
Christian
Hallo Werner,
das Makro mit dem Zeile einfügen funktioniert auch bei meiner Version. Die Spalte mit dem Teil 01 ist in Wirklichkeit Spalte N (als Spalte 14) und der Begriff "Teil 01" ist in Zelle "N24".
Leider kann ich nur Teile aus Datenschutzgründen hier in das Forum laden. Ich möchte Dich daher um Verständnis bitten.
Viele Grüße
Christian
dann anonymisiere...
10.11.2021 16:17:32
Werner
Hallo,
...die Daten und lade die Datei hoch. Was ich und alle anderen Helfer hier brauchen ist eine Datei, die in ihrem Aufbau exakt dem Original entspricht. Was für Daten da drin stehen interessiert hier niemanden.
Und mein Hinweis zu deinen "Textzahlen" hat dich wohl nicht interessiert.
Ohne Datei bin ich raus.
Gruß Werner
Anzeige
übrigens...
10.11.2021 15:35:56
Werner
Hallo,
...dir ist schon klar, dass in deiner Beispielmappe in den Zeilen 15, 18 und 19 (Spalten F-H) Text steht und keine Zahl?
Weshalb auch deine Min/Max Formeln 0 ausgeben.
Gruß Werner
AW: leere Spalte immer rechts einfügen
10.11.2021 17:17:36
Stefan
Hallo Christian,
sorry erstmal, ich bin erst jetzt wieder an meinen Rechner gekommen
natürlich kannst du Tabelle20 auch mit dem Tabellennamen ansprechen. Sprich mit "Worksheets("Namen")"
Ich hab den geänderten Code in die Tabelle eingefügt.
https://www.herber.de/bbs/user/149059.xlsm
Werner hat natürlich recht
Für das nächste mal, eine anonymisierte Bsp.Datei ist viel sinnvoller als etwas nachgebautes, welches nicht der wirklichkeit entspricht.
ODER
Die 2te Datei EXACT so aufbauen, wie es in der OriginalDatei auch ist.
Gruß
Stefan
Anzeige
AW: leere Spalte immer rechts einfügen
11.11.2021 10:44:04
Christian
Hallo Stefan, Hallo Werner,
Danke noch einmal für Eure Hilfe.
Mir ist gerade noch aufgefallen, dass derzeit der komplette Inhalt der eingefügten Zeile gelöscht wird, jedoch sind in dem hochgeladenen Beispiel ja in Spalte B/C/D ja Formeln drin, welche dann auch mit gelöscht werden.
Leer sollten dann wirklich nur die Zellen leer sein, die ich dann neu beschreibe - sprich alles in dem Beispiel ab Spalte F also beginnend ab Teil 1.
Das würde ja dann eine Einschränkung der Formel bedeuten
Tabelle20.Rows(lzeile).ClearContents
Viele Grüße
Christian
AW: leere Spalte immer rechts einfügen
11.11.2021 10:52:09
Stefan
Hallo Christian,
ich vermute mal der Rest hat funktioniert.

Tabelle20.Range(cells(lzeile,1),cells(lzeile,3)).ClearContents
Im o.g. Beispiel wird in der Betreffenden Zeile die Spalte A bis C geleert. Jeh nachdem wie dein Bereich aussieht, bitte Eintragen.
Spalte A = 1
Spalte C = 3
usw.
Gruß
Stefan
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige