Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1424to1428
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

Fehler im Code

Fehler im Code
21.05.2015 09:36:20
Müller
Hallo zusammen,
ich habe folgenden Code:
Sub Leerzeilen_löschen()
'Leerzeilen werden gelöscht wenn A und B leer und zum Schluss werden die Daten nach Spalte B ( _
Pos) sortiert
Dim s 'für Inputbox Abfrage Sortierspalte
Dim Datenmatrix_DB_neu As Worksheet
Dim iCalc As Long
On Error GoTo ErrExit
Set Sh_neue_Zustandsbeschreibungen = Sheets("Datenmatrix_DB_neu") 'Deine Tabelle _
anpassen
With Application
iCalc = .Calculation
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
With Sh_neue_Zustandsbeschreibungen
.Unprotect
With .UsedRange.Columns(.UsedRange.Columns.Count).Offset(0, 1)
.FormulaR1C1 = "=IF(AND(ROW()>1,RC1&RC2=""""),TRUE(),ROW())"
Sh_neue_Zustandsbeschreibungen.UsedRange.sort .Cells(1, 1), xlAscending, , , , , , xlNo
On Error Resume Next
.SpecialCells(xlCellTypeFormulas, 4).EntireRow.Delete
On Error GoTo ErrExit
.EntireColumn.Delete
End With
End With
ErrExit:
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = iCalc
End With
Set Datenmatrix_DB_neu = Nothing
s = InputBox("Sortierspalte?")
Select Case s
Case "A" To "D", "a" To "d"
Range("A3:D500").sort key1:=Range(s & "4"), order1:=xlAscending, Header:=xlYes 'oder xlNo =  _
Sortiern nach Spalte B
End Select
End Sub
hier werden Daten aus einem Tabellenblatt un das nächste kopiert, dort die Leerzeilen gelöscht und nach einer Auswahlspalte sortiert.
Funktioniert auch soweit.
Nur folgendes Problem. Mein Datenbereich erstreckt sich eigentlich nur von A:D (Zeileanzahl beliebig)
In Spalte E stehen beispielsweise naturgemäß Formeln.
Daher möchte ich den Löschbereich auf A:D begrenzen.
Kann mir dazu jmd die Änderung im Code sagen? Habe den code nicht selbst geschrieben und in VBA eine absolute 0!
Besten Dank!
Gruss

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler im Code
22.05.2015 13:59:51
Frank
Hallo,
das ist nicht so einfach... Hier
      On Error Resume Next
.SpecialCells(xlCellTypeFormulas, 4).EntireRow.Delete
On Error GoTo ErrExit
.EntireColumn.Delete

werden ganze Zeillen gelöscht. Das führt dazu, dass die weiter unten stehenden Zeilen automatisch nach oben rücken (inklusive Zellbezügen in Formeln der restlichen Zeilen). Machst Du das nur mit einzelnen Zellen,müsste definiert werden, was mit den restlichen Zellen dieser Zeile passieren soll - respektive den Zellen der restlichen Spalte ( nach links/oben verschieben). Dann hast Du ggf. ganz schnell ein Problem mit den Zellbezügen der Formeln. Einfach mal per Hand ausprobieren und gucken, was passiert. Noch besser, das Ganze mit Makro aufzeichnen. Wenn das richtige passiert, hast Du gleich ein Codegerüst, auf dem Du aufbauen kannst.
Oder soll etwa nur der Inhalt gelöscht werden, die Zellen aber bestehen bleiben?
Grüsse,
Frank
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige