HERBERS Excel-Forum - das Archiv

Thema: Makro Spalte einfügen und Spaltentitel beschriften

Makro Spalte einfügen und Spaltentitel beschriften
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

VBA
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

Makro Spalte einfügen und Spaltentitel beschriften
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

VBA
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

Bewerten Sie hier bitte das Excel-Portal