Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Makro Spalte einfügen und Spaltentitel beschriften

Makro Spalte einfügen und Spaltentitel beschriften
15.07.2015 07:51:04
Paddy
Hallo
Ich scheitere an einem Makro welches folgende Aufgaben durchführen soll:
1. zuerst wird ein Filter Aus- und wieder eingeschaltet, damit stelle ich sicher, dass kein Filter mehr aktiv ist.
1. Kopieren einer x-Anzahl Zellen in einer Spalte im Tabellenblatt "A"
2. Einfügen von einer neuen Spalte in formatierter Tabelle im Tabellenblatt "DB". Die Schwierigkeit besteht darin, dass die neue Spalte jeweils am Ende der formatierten Tabelle eingefügt werden soll. Die Position verändert sich nach jeder eingefügten Spalte. Eine Definition der Spalte ist deshalb zu vermeiden.
3.Einfügen der Werte gem. Pos 1 in neu eingefügter Spalte
4. Die neu eingefügte Spalte hat eine Spaltenüberschrift. Diese sollte idealerweise mit einem Titel versehen werden können. Auch hier besteht das Problem des Zellbezuges welcher veränderlich ist.
Nachfolgend das Makro wie es sich momentan präsentiert. Dieses enthält leider immer die Zell- und Spaltenbezüge. Der Befehl zum einfügen einer Spalte fehlt ebenso.
Sub MatBuchen()
' MatBuchen Makro
Range("O14:CX14").Select
Selection.AutoFilter
Selection.AutoFilter
Range("O16:O673").Select
Selection.Copy
Sheets("DB").Select
Range("Tabelle2[[#Headers],[MatCode]]").Select
ActiveCell.SpecialCells(xlLastCell).Select
Range("AU45").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("Tabelle2[[#Headers],[Projekt A]]").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "Projekt A"
Range("AU45").Select
Sheets("Materialkonfiguration").Select
Range("O15").Select
End Sub

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
  • 17.07.2015 10:56:18
    Frank
Anzeige
VBA
17.07.2015 10:56:18
Frank
Hallo Paddy,
Level: Excel gut - VBA bescheiden Das ist geprahlt. VBA keine Ahnung trifft's eher. Das ist kein Beinbruch, jeder fängt mal an, aber wenn man das ehrlich kommuniziert, wird einem eher geholfen.
Jeder sieht, dass Dein Beispiel ein aufgezeichnetes Makro (unbearbeitet) ist. An sich schon mal ein guter Ansatz. Schau Dir andere Codebeispiele an und versuche, die zu verstehen und auf Dein Problem anzuwenden.
Spalte einfügen nach vorheriger Selektion:
Columns("E:E").Select
Selection.Insert Shift:=xlToRight
Spalte einfügen ohne zu selektieren (im Beispiel Blatt 1, als 3. Spalte):
Sheets(1).cells(1,3).Insert Shift:=xlToRight
Wie man Blätter und Spalten anspricht, kannst Du diesem Beispiel auch entnehmen.
Grüsse,
Frank
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Makro zum Einfügen und Beschriften einer Spalte in Excel


Schritt-für-Schritt-Anleitung

  1. Filter aktivieren/deaktivieren: Beginne mit dem Deaktivieren des Filters in deinem Arbeitsblatt, um sicherzustellen, dass alle Daten sichtbar sind.

    Range("O14:CX14").AutoFilter
  2. Daten kopieren: Kopiere die Daten aus der gewünschten Spalte.

    Range("O16:O673").Copy
  3. Neue Spalte in formatierter Tabelle einfügen: Um eine neue Spalte am Ende der formatierten Tabelle einzufügen, verwende folgenden Code:

    Dim lastCol As Long
    lastCol = Sheets("DB").ListObjects("Tabelle2").ListColumns.Count
    Sheets("DB").Cells(1, lastCol + 1).EntireColumn.Insert
  4. Werte einfügen: Füge die kopierten Werte in die neu erstellte Spalte ein.

    Sheets("DB").Cells(2, lastCol + 1).PasteSpecial Paste:=xlPasteValues
  5. Spaltenüberschrift setzen: Beschrifte die neue Spalte mit einem Titel.

    Sheets("DB").Cells(1, lastCol + 1).Value = "Projekt A"

Häufige Fehler und Lösungen

  • Fehler: Unzureichende Berechtigungen: Stelle sicher, dass Du die notwendigen Berechtigungen hast, um die Tabelle zu bearbeiten.
  • Fehler: Falscher Tabellenname: Überprüfe, ob der Tabellenname korrekt ist. Der Name muss exakt mit dem im Excel-Dokument übereinstimmen.
  • Lösung: Nutzung des richtigen Objekts: Stelle sicher, dass Du die ListObjects-Methode verwendest, um in einer formatierten Tabelle zu arbeiten.

Alternative Methoden

  • Spalte ohne Selektion einfügen: Du kannst eine Spalte direkt einfügen, ohne sie vorher auszuwählen:

    Sheets("DB").Cells(1, 3).Insert Shift:=xlToRight
  • Mit Range arbeiten: Anstelle der Cells-Methode kannst Du auch Range verwenden, um gezielt eine Spalte hinzuzufügen.


Praktische Beispiele

Hier ein einfaches Beispiel, wie Du mit einer Funktion eine neue Spalte hinzufügen und benennen kannst:

Sub NeueSpalteEinfügen()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("DB")
    Dim lastCol As Long

    lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column + 1
    ws.Cells(1, lastCol).Value = "Neue Spalte"
    ws.Cells(2, lastCol).Value = "Daten"
End Sub

Tipps für Profis

  • Verwende With-Anweisungen, um den Code lesbarer und effizienter zu gestalten.
  • Fehlerbehandlung: Integriere Fehlerbehandlungsroutinen, um Laufzeitfehler zu vermeiden.
  • Kommentare im Code: Vermerke wichtige Schritte im Code, um die Wartbarkeit zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Spalten gleichzeitig einfügen?
Du kannst die Anzahl der zu verschiebenden Spalten in der Insert-Methode angeben:

Sheets("DB").Cells(1, lastCol).Resize(, AnzahlDerSpalten).Insert Shift:=xlToRight

2. Was mache ich, wenn die Tabelle nicht formatiert ist?
Wenn die Tabelle nicht formatiert ist, kannst Du eine neue Tabelle erstellen oder sicherstellen, dass die Daten als Tabelle formatiert sind, bevor Du versuchst, Spalten einzufügen.

3. Wie kann ich sicherstellen, dass die neue Spalte immer am Ende der Tabelle hinzugefügt wird?
Nutze die ListColumns.Count-Methode, um die Anzahl der Spalten in der Tabelle zu ermitteln und füge die neue Spalte entsprechend hinzu.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige