Zelle in Excel per Makro einfügen

Hallo,

ich habe eine umfangreiche Excel-Liste und möchte per Makro unterschiedliche Mengen von leeren Zellen einfügen.

In Spalte A steht die Anzahl der einzufügenden Zellen, die Inhalte die in Spalte C und rechts davon stehen sollen entsprechend weiter nach rechts verschoben werden.

Die Spalte B soll ihre Position behalten.

Vielen Dank für jede Hilfe.

In Spalte A steht die Anzahl der einzufügenden Zellen, die
Inhalte die in Spalte C und rechts davon stehen sollen
entsprechend weiter nach rechts verschoben werden.

Die Spalte B soll ihre Position behalten.

Lieber Excel-Freund

das ist schon eine sehr, sehr spezielle Anfrage.
Ein Makro, welches Dir das Einfügen von Zellen abnimmt ist kein Problem.
Hier müsste aber je Zeile eine variable Zahl berücksichtigt werden.
Eine Schlaufe, welche von I=0 bis I=x läuft.
„x“ entspräche der eingetragenen Zahl in Spalte A
Wobei jeweils ein Insert veranlasst werden müsste.
Und das Ganze müsste eine beliebige Zahl von Zeilen das Selbe tun.

Das kann ich nicht leisten und ich habe in der Literatur auch kein ähnliches Beispiel dafür gefunden.

Ich bitte Dich diese Frage an einen versierteren Fachmann weiter zu geben.
mfG

Hallo winter123,

======================================================
Benutzen das Makro nicht bevor Sie Ihr original Excel-Dokument gesichert/kopiert haben!!!

leider kann man an dieser Stelle keine Excel-Anlage mitschicken.
Deshalb hier das Makro:
Sub Zellen_einfügen()

’ Zellen_einfügen Makro
’ Unterschiedliche Mengen von leeren Zellen einfügen.

’ Tastenkombination: Strg+umschalten+J

’ Meldung an Monitor schicken (damit sichergestellt wird, dass das Makro nicht von einem falschen Exelsheet aus abgerufen wurde):
Dim Mldg, Stil, Antwort, Text1
Mldg = „Makro ‚Zellen einfügen‘ für Excel-Dokument '“ & ActiveWorkbook.Name & „', Blatt '“ & ActiveSheet.Name & „’ ausführen?“
Stil = vbYesNo + vbCritical + vbDefaultButton2 ’ Schaltflächen
Antwort = MsgBox(Mldg, Stil, Titel) ’ Meldung anzeigen.
If Antwort = vbNo Then ’ Benutzer hat „nein“ gewählt.
GoTo Ende
End If

’ Anfang bei Zeile 4 (ggf. ändern). Angenommen: 3 Zeilen Überschrift
Zeile = 4

’ Schleife für alle Zeilen durchlaufen (nach der letzte Zeile soll in Spalte A „Ende“ stehen, damit die Schleife beendet werden kann):
Do
If Range(„A“ & Zeile) = „Ende“ Then Exit Do ’ Schleife (und damit das Makro) beenden
If Range(„A“ & Zeile) Empty And Range(„A“ & Zeile) > 0 Then ’ zu bearbeitende Zeile (in der Zeilen sollen Zellen verschoben werden)
Range(„C“ & Zeile & „:BZ“ & Zeile).Select ’ Spalten C bis BZ (angenommen: BZ ist die letzte Spalte)
’ wenn weniger Spalten benutzt werden macht das nichts
’ wenn mehr Spalte benutzt werden: ändern
Selection.Cut ’ Zellen ausschneiden
Spaltevon = Range(„A“ & Zeile).Value + 3 ’ linke Spalte zum einfügen
Spaltebis = Range(„A“ & Zeile).Value + 78 + 3 ’ rechte Spalte zum einfügen (78 steht für die Spalte BZ)
’ falls „BZ“ oben geändert wird: „78“ auch entsprechend ändern!
Range(Cells(Zeile, Spaltevon), Cells(Zeile, Spaltebis)).Select ’ Einfüge-Bereich
ActiveSheet.Paste ’ Zellen einfügen
End If
Zeile = Zeile + 1 ’ nächste Zeile
Loop ’ Ende der Schleife; Verzweigung zum Ang der Schleife

Ende: ’ Ende des Makros
End Sub

Eventuell müssten Sie es noch an Ihre Bedürfnisse anpassen.
Eine Beschreibung ist im Makro implementiert.
Es muss mit „Strg + umschalten + J“ aufgerufen werden.

Ich wünsche Ihnen viel Erfolg!

Viele Grüßen

Oldtiger

======================================================
Benutzen das Makro nicht bevor Sie Ihr original Excel-Dokument gesichert/kopiert haben!!!

P.S. Die Kommentare im Makro (sie fangen mit einem Hochkomma (‚) an dürfen nicht über eine Zeile hinweg geschrieben werden (sonst jede Zeile mit "‘" anfangen). In dieser Antwort werden sie automatisch umgebrochen, wodurch das Ganze nicht so übersichtlich ist.

Falls Sie noch Fragen haben, melden Sie sich bitte.

Hallo Winter123,
ich kann Dir leider nicht helfen, bin bestimmt kein Experte.

mfg

christian

Vielen Dank für die umfangreiche Antwort. Komme voraussichtlich erst am Wochenende dazu dies anzuwenden, aber ich denke dass hiermit meine Anforderungen vollständig erfüllt werden.

Nochmals vielen Dank

Hallo Winter 123,

ich kann leider nicht dienen, da Makros zu bedienen mir noch fremd sind.

Gruß Günther