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

Forumthread: Zelle einfügen VBA

Zelle einfügen VBA
16.12.2004 16:06:41
köbi
Hi @lle
komme nicht weiter - HILFE - möchte letzte zelle in Spalte A ermitteln, ist mit der Recherche auch gelungen. Code:

Sub ErsteFreieA()
Dim s As String
Dim i As Long
With ActiveSheet
i = 3
Do
i = i + 1
j = j - 1
s = Cells(i, "A")
If Len(s) = 0 Then
Cells(i, "A").Activate
Exit Do
End If
Loop While i < 65535
End With
End Sub

Nun soll aber diese letzte ganze Zeile (A:IV) oberhalb eingefügt werden.
Manuell mit Rechtsklick und Zeile einfügen ist möglich, möchte jedoch gerne das ganze als Code (Userproblem beseitigen)
Warum: da Excel automatisch nun die untenstehenden Formeln aktualisiert
Beispieldatei:
https://www.herber.de/bbs/user/14920.xls
vielen Dank für eure Hilfe
köbi
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelle einfügen VBA
harry
hi,
versteh nicht genau, was dein code machen soll. die letzte reieh ermittelst du mit
a = Cells(Rows.Count, 1).End(xlEnd).Row
dann einfach
Rows(a).Cut
Rows(WO DU ES HINHABEN MÖCHTEST).Select
Selection.Insert Shift:=xlDown
liebe grüße,
harry
@harry Zelle einfügen VBA
16.12.2004 16:31:30
köbi
hi harry
möchte wenn die letzte Zeile ausgewählt ist dort eine zeile einfügen und dann eine Zelle oberhalb aktiviert haben.
gemäss Datei = letzte Zelle A12, ganze zeile einfügen (nun sind bis zum Saldo 3 Lehrzeilen), jetzt wieder A12 kativiert.
gruss
köbi
Anzeige
AW: @harry Zelle einfügen VBA
harry
a = Cells(Rows.Count, 1).End(xlUp).Row
Rows(a).Cut
Rows(12).Select
Selection.Insert Shift:=xlDown
AW: ZUSATZ:@harry Zelle einfügen VBA
16.12.2004 16:45:58
Lars
Selection.Insert
a = Cells(Rows.Count, 1).End(xlEnd).Row - 1
AW: ZUSATZ:@harry Zelle einfügen VBA
17.12.2004 07:18:20
köbi
Danke an Harry und Lars
Comppletter Code siht nun so aus und funzt

Sub ErsteFreieA()
Dim s As String
Dim i As Long
With ActiveSheet
i = 3
Do
a = Cells(Rows.Count, 1).End(xlUp).Row + 1
i = i + 1
s = Cells(i, "A")
If Len(s) = 0 Then
Cells(i, "A").Activate
Rows(a).Copy
Rows(a).Select
Selection.Insert Shift:=xlDown
Application.CutCopyMode = False
Cells(i, "A").Select
Exit Do
End If
Loop While i < 65535
End With
End Sub

Gruss
köbi
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Zelle einfügen mit VBA in Excel


Schritt-für-Schritt-Anleitung

Um eine Zelle in Excel mit VBA einzufügen, kannst du den folgenden Code verwenden. Dieser Code ermittelt die letzte gefüllte Zeile in Spalte A und fügt eine neue Zeile oberhalb dieser Zeile ein.

Sub ErsteFreieA()
    Dim s As String
    Dim i As Long
    With ActiveSheet
        i = 3
        Do
            a = Cells(Rows.Count, 1).End(xlUp).Row + 1
            i = i + 1
            s = Cells(i, "A")
            If Len(s) = 0 Then
                Cells(i, "A").Activate
                Rows(a).Copy
                Rows(a).Select
                Selection.Insert Shift:=xlDown
                Application.CutCopyMode = False
                Cells(i, "A").Select
                Exit Do
            End If
        Loop While i < 65535
    End With
End Sub

Dieser Code sucht nach der letzten belegten Zeile in Spalte A und fügt eine neue Zeile ein, wobei die darunter liegenden Daten verschoben werden.


Häufige Fehler und Lösungen

  • Fehler: "Index außerhalb des Bereichs"

    • Lösung: Stelle sicher, dass deine Schleife nicht über die maximale Zeilenzahl von Excel (65536 in älteren Versionen oder 1048576 in neueren) hinausgeht.
  • Fehler: "Objektvariable oder With-Blockvariable nicht gesetzt"

    • Lösung: Überprüfe, ob das aktive Blatt existiert und korrekt referenziert wird.

Alternative Methoden

Falls du kein VBA verwenden möchtest, kannst du auch eine Formel verwenden, um die letzte Zeile zu ermitteln. Dies geschieht mit der Funktion =MAX(A:A), um die letzte Zelle mit einem Wert zu finden. Danach kannst du manuell eine Zeile einfügen.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du den VBA-Code anpassen kannst:

  1. Einfügen in eine spezifische Zeile:

    Rows(12).Insert Shift:=xlDown

    Dies fügt eine Zeile in Zeile 12 ein, unabhängig von den Daten in Spalte A.

  2. Kopieren von Formeln: Wenn du sicherstellen möchtest, dass Formeln in der neuen Zeile beibehalten werden, kannst du den Copy-Befehl anpassen, um spezifische Zellen zu kopieren.


Tipps für Profis

  • Fehlerbehandlung einfügen: Nutze On Error Resume Next, um sicherzustellen, dass dein Code nicht abstürzt, wenn ein Fehler auftritt.

  • Verwende Debug.Print: Damit kannst du die Werte von Variablen während der Ausführung überwachen, um Fehler schneller zu identifizieren.

  • Makros optimieren: Reduziere die Bildschirmaktualisierung (Application.ScreenUpdating = False), um die Ausführung deines Codes zu beschleunigen.


FAQ: Häufige Fragen

1. Wie ermittele ich die letzte Zeile in einer anderen Spalte?
Du kannst die Zeile in einer anderen Spalte ermitteln, indem du den Spaltenindex in der Cells-Funktion änderst, z. B. Cells(Rows.Count, 2).End(xlUp).Row für Spalte B.

2. Was mache ich, wenn der Code nicht wie erwartet funktioniert?
Überprüfe den Code Schritt für Schritt mit F8 im VBA-Editor, um zu sehen, wo der Fehler auftritt. Achte auch darauf, dass alle Variablen korrekt deklariert sind.

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