Excel Makro VBA | Zellenbereich erweitern und nach rechts verschieben?
Guten Tag,
ich würde eine Tabelle erstellen wollen, welche man immer links erneuern kann, sprich mit dem Tastenklick auf die Schaltfläche, soll eine neue Spalte (nur von G6:G20) eingefügt werden. Gleichzeitig (bzw. davor) sollen die alten Spalten nach rechts geschoben werden.
Ich habe es versucht, durch ein Bild zu verdeutlichen.
Habe im Internet folgenden Ansatz gefunden. Habe in VBA aber nur schlechte Kenntnisse, weshalb ich den Code nicht auf mein Problem anpassen kann. Könnt ihr mir da helfen?
2. Das Eingefügte (also die Vorlage(Tabellenstriche)) kann ja von irgendwo eingefügt werden: zB: X1000:X1014 - richtig?
Sub aufdroeseln()
Dim Zelle As Range
Columns("C7:C14").Insert Shift:=xlToRight
For Each Zelle In Range("C7:C14" & Range("C65536").End(xlUp).Row)
If Zelle.Font.Bold = True Then
Zelle.Offset(0, 1).Value = Zelle
Zelle.ClearContents
End If
Next
Columns("C7:C14").Font.Bold = False
End Sub
2 Antworten
Wenn ich G6:G20 markiere und dann Start → Zellen → Einfügen → Zellen einfügen... → Zellen nach rechts verschieben → OK ausführe, dann wird eine Spalte für die markierten Zeilen in der markierten Spalte eingefügt.
Geht es dir um die Formatierung, die dann nicht stimmt?
Warum denn eine "Spalte" einfügen.
Einfach die Inhalte von G6:G20 nach Rechts verschieben/kopieren.
Was bereits dort steht wird überschrieben und die Zellen G6:G20 werden geleert.
""Verschieben" der Zellen eins nach Rechts
Const SpaltenAnfang = 7
Const SpaltenEnde = 100 'Wenn es irgendwann über die 100 Spalten hinaus geht, dann diese Zahl erhöhen.
Worksheets("blabla").Range(Worksheets("blabla").Cells(6,SpaltenAnfang+1),Worksheets("blabla").Cells(2,SpaltenEnde+1)) = _
Worksheets("blabla").Range(Worksheets("blabla").Cells(6,SpaltenAnfang),Worksheets("blabla").Cells(6,SpaltenEnde))
Löschen der Inhalte Spalte G6->20
Worksheets("blabla").Range("G6:G20").DeleteContents
======
Generell glaube ich aber du solltest deine Daten anders strukturieren, um am Schluss wirklich übersichtlich zu sein. (Beschäftige dich mit PIVOT)