Ich habe eine excel tabelle. In dieser excel tabelle sollen durch ein makro alle leeren felder gelöscht werden.
Was ich nur teilweise hinbekommen habe(google). Deswegen wäre ein quellcode gut der wirklich alle leeren felder löscht.
weiterhin habe ich das problem das alles was über „Alles in Euro“ steht gelöscht werden soll von „A“: bis „L“. Auch der text „Alles in Euro“ soll gelöscht werden
und alles was drunter steht soll nach oben rutschen.
Zellen löschen
Hi Unbekannter,
mit „alle leeren Felder“ meinst du wohl alle leeren Zellen - das nur
nebenbei.
Das mit dem Löschen ist nicht so ganz klar.
Nehmen wir an, du hast im Bereich A1:C3 acht Werte stehen. B2 ist leer.
aa11 bb11 cc11
aa22 ____ cc22
aa33 bb33 cc33
Wenn man B2 löscht, gibt es zwei Möglichkeiten:
C2:IV2 rutscht nach links
oder
B3:B65536 rutscht nach oben.
Im Beispiel sähe das so aus:
aa11 bb11 cc11
aa22 cc22 ____
aa33 bb33 cc33
Wie soll nun gelöscht werden? Das hängt von den Daten und ihrem Zusammenhang ab.
Auch beim 2. Problem frage ich erst mal nach, ob ich das richtig verstanden habe:
In den Spalten A bis L kann in irgendwelchen Zeilen der Text
Alles in Euro
stehen. Dann sollen die Fundzelle und alle Zellen darüber (bis incl. Zeile 1) gelöscht werden.
Auch hier ist wieder die Frage, ob das darunter stehende nach oben oder
das rechts davon stehende nach links rutschen soll.
Rückmeldung wäre nett - Grüße von Erich aus Kamp-Lintfort
ich habe jetzt fast alles hinbekommen. nur nicht das mit dem „alles in euro“
hier erstmal den code den ich schon habe:
Option Explicit
Sub DeleteEmptyRows()
Dim intRow As Integer, intLastRow As Integer
intLastRow = Cells.SpecialCells(xlCellTypeLastCell).Row
For intRow = intLastRow To 1 Step -1
If Application.CountA(Rows(intRow)) = 0 Then
Rows(intRow).Delete
End If
Next intRow
'Sub Leere_Spalten_löschen()
Dim leere_Spalte As Integer
Application.ScreenUpdating = False
For leere_Spalte = 256 To 1 Step -1
If Application.CountA(Columns(leere_Spalte)) = 0 Then
Columns(leere_Spalte).Delete
End If
Next
'Sub spalte_A_löschen()
Range(„A:A“).Delete
End Sub
___________________________________________________-
leider kann ich ihnen für ihr Problem keine passende Antwort geben, da es meines Wissens keine Funktion gibt, die leere Zellen erkennt und gleichzeitig löscht. Es seid denn diese Leerzellen befinden sich immer an der selben Stelle. Dann müsste man den Vorgang einmalig aufzeichen und kann diesen dann immer wieder abspielen.
Hoffe ich konnte ihnen zumindest etwas weiter helfen.
Ich habe es geschaft mir selber eine zu schreiben (hilfe google).
hier der code:
sub löschen ()
intLastRow = Cells.SpecialCells(xlCellTypeLastCell).Row
For intRow = intLastRow To 1 Step -1
If IsEmpty(Cells(intRow, 1)) Then
Rows(intRow).Delete
End If
Next intRow
end sub
willst du die leeren Felder nur von eine bestimmte Spalte suchen und dann diese Zelle von diese Spalte löschen bzw. nach oben verchieben oder willst du die ganze Zeile löschen bzw. nach oben verschieben?
So wirst du nur die Zelle „C3“ löschen
Celle(2,3).Delete Shift:=xlUp
Das du nicht in eine andere Tabellenblatt löschen wirst, sollst du die interne name des Tabellenblatt mit eingeben:
z.B.: Tabellenblatt auf dem Excel Seite heisst „Test“ und die interne Name „Tabelle1“ => diese Name kannst du in dem Projekt Explorer von Microsoft Visual Basic oberfläche.
In diesen Fall wirst du folgendes schreiben:
Tabelle1.Celle(2,3).Delete Shift:=xlUp
So wirst du die ganze Zeile „2“ löschen
Rows(„2:2“).Delete Shift:=xlUp
Hier wird genau so sein:
Tabelle1.Rows(„2:2“).Delete Shift:=xlUp
Mit diese Schleife kannst du in dem Selectierte Bereich alle leeren zeile löschen.
Du muss als erstens diese bereich selektieren und dann die funktion ausführen.
’ Die Variabel deklarieren
Dim oZeile As Range
Dim sTest As String
Dim aTest() As String
Dim iZeile As Long
For Each oZeile In Selection
If IsEmpty(oZeile) = True Then
sTest = oZeile.Address
aTest() = Split(sTest, „$“)