Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1548to1552
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Spalten einfügen+löschen in anderen Tab.blättern

Spalten einfügen+löschen in anderen Tab.blättern
06.04.2017 11:06:49
Friedrich
Hallo,
ich habe ein Laufzeitproblem. Beim Hinzufügen von Spalten gibt es kein Problem. Nur beim Löschen.
Ich habe 4 Tabellenblätter. Im Allgemeinen Blatt kann man bestimmten, wie viele Felder(Spaltenanzahl) es gibt. Bei einem hinzufügen wird das letzte Feld (Spalte) kopiert und eingefügt, beim Löschen wird das letzte Feld (Spalte) entfernt.
Im "Übersicht"-Blatt gibt es keine Probleme. Nur bei den anderen beiden Blättern kommen Laufzeitfehler, wenn es vorher mehr als 2 Spalten gab.
Hier der Quelltext:

Sub Feld_hinzufügen()
Application.ScreenUpdating = False                      'deaktiviert Bildschirm
Dim Feldhinzu, lngSpa As Integer
Dim Anzahl As Integer, i As Integer
Sheets("Übersicht").Select
lngSpa = Cells(3, Columns.Count).End(xlToLeft).Column   'Letzte beschriebene Spalte in Zeile 3   _
_
bestimmen
Sheets("Übersicht").Select
Columns(lngSpa - 5).Copy                                'von der letzten Spalte werden 5  _
Spalten abgezogen und kopiert
Columns(lngSpa - 5).Resize(, 1).Insert                  'die kopierte Spalte wird eingefügt
Application.CutCopyMode = False
Sheets("Serienliste").Select                            'wie im Übersichtsblatt
lngSpa = Cells(1, Columns.Count).End(xlToLeft).Column   'Letzte beschriebene Spalte in Zeile 3   _
_
bestimmen
Columns(lngSpa - 2).Copy                                '2 Spalten neben der letzten
Columns(lngSpa - 2).Resize(, 1).Insert
Application.CutCopyMode = False
Sheets("Einbauliste").Select                            'wie im Übersichtsblatt
lngSpa = Cells(1, Columns.Count).End(xlToLeft).Column   'Letzte beschriebene Spalte in Zeile 3   _
_
bestimmen
Columns(lngSpa - 2).Copy                                '2 Spalten neben der letzten
Columns(lngSpa - 2).Resize(, 1).Insert
Application.CutCopyMode = False
Sheets("Deckblatt").Select                              'Deckblatt aufrufen
Application.ScreenUpdating = True                       'Aktiviert Bildschirm
End Sub
Sub Feld_löschen()
'löschen der letzten Spalte
Application.ScreenUpdating = False
Dim Anzahl As Integer
Dim Laenge1 As Integer
Dim Laenge2 As Integer
Dim Laenge3 As Integer
Anzahl = Worksheets("Deckblatt").Range("B10")
If Anzahl 

Es werden von der Länge jeweils 5 bwz. 2 abgezogen, da dahinter noch Spalten sind, welche nicht entfernt werden sollen.
Ich hoffe, jemand hat einen Hinweis, woran es liegen kann bzw. Ideen, um dieses Problem zu umgehen.
Freundliche Grüße
Friedrich L.

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten einfügen+löschen in anderen Tab.blättern
06.04.2017 13:07:24
UweD
Hallo
bei mir gibt es da keine Probleme, wenn mehr als 2 Spalten da sind; genau umgekehrt.
Wenn es nur 2 wären, dann soll Spalte (0) gelöscht werden, das geht nicht.
Du kannst ja vorher die Spaltenzahl prüfen...
Sub Feld_löschen()

    'löschen der letzten Spalte 
    Application.ScreenUpdating = False
    Dim Anzahl As Integer
    Dim Laenge1 As Integer
    Dim Laenge2 As Integer
    Dim Laenge3 As Integer
    
    Anzahl = Worksheets("Deckblatt").Range("B10")
    
    If Anzahl < 2 Then
        Exit Sub
    Else
        With Sheets("Einbauliste")
            Laenge2 = .Cells(2, .Columns.Count).End(xlToLeft).Column - 2
            If Laenge2 > 0 Then
                .Columns(Laenge2).Delete
            Else
                MsgBox "Spaltenfehler in Blatt: " & .Name
            End If
        End With
        
        With Sheets("Serienliste")
            Laenge3 = .Cells(3, .Columns.Count).End(xlToLeft).Column - 2
            If Laenge3 > 0 Then
                .Columns(Laenge3).Delete
            Else
                MsgBox "Spaltenfehler in Blatt: " & .Name
            End If
        End With
       
        With Sheets("Übersicht")
            Laenge1 = .Cells(3, .Columns.Count).End(xlToLeft).Column - 5
            If Laenge1 > 0 Then
                .Columns(Laenge1).Delete
            Else
                MsgBox "Spaltenfehler in Blatt: " & .Name
            End If
        End With
    
    End If
    Sheets("Deckblatt").Select                              'Deckblatt aufrufen 
    Application.ScreenUpdating = True                       'Aktiviert Bildschirm 
End Sub
LG UweD
Anzeige
AW:Spalten einfügen+löschen in anderen Tab.blätter
06.04.2017 14:10:24
Friedrich
Hallo, danke für die Hilfe.
Leider kommt der Laufzeitfehler immer noch. Er heißt: Laufzeitfehler '-21474178848 (80010108)'
Die Methode 'Delete' für das Objekt 'Range' ist fehlgeschlagen
Ich habe schon ein bisschen gegoogelt, bringt mich jedoch nicht wirklich weiter. Die Vermutung ist, dass es vielleicht etwas anderes in der Exceldatei ist. Ist es möglich, alles andere zu stoppen, während die Prozedur läuft und danach wieder zu aktivieren?
Habe zum Beispiel auf der Übersichtsseite eine Change Prozedur, falls Zellen geändert werden.
Freundliche Grüße
Friedrich Lübcke
Anzeige
(anonymisierte) Beispieldatei?
06.04.2017 14:30:04
UweD
mal bitte hochladen
AW: (anonymisierte) Beispieldatei?
06.04.2017 15:13:32
UweD
Hallo
funktioniert bei mir problemlos
LG UweD
AW: (anonymisierte) Beispieldatei?
06.04.2017 15:28:54
Friedrich
Woran kann es dann liegen? Kann man das Programm an sich reseten? Also Excel?
AW: (anonymisierte) Beispieldatei?
06.04.2017 16:17:29
UweD
Hallo nochmal
- neue Datei erstellen und
- die einzelnen Blätter rüberkopieren
- Makros übernehmen
-...
LG UweD
AW: (anonymisierte) Beispieldatei?
07.04.2017 17:30:25
Hajo_Zi
Hallo Uwe,
Du hast doch ein Vorschlag zur Lösung gemacht. Lasse den Fragesteller entscheiden ob offe.

AW: (anonymisierte) Beispieldatei?
10.04.2017 08:30:37
Friedrich
Hallo,
ich habe es am Wochenende mal auf meinem privaten Rechner probiert mit Office 365. Da funktioniert es auch ohne Probleme. Nur auf dem Firmenrechner mit Excel 2010 funktioniert es nicht. Auch wenn ich eine neue Datei erstelle.
Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige