Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

LeerZelle + Nachbarzelle löschen 2 Probleme
#1
Hallo Zusammen
Mit folgendem Code lösche ich die Leere Zelle (Nicht Zeile) inkl der 2 Nachbarzellen

Nun zu meinen 2 Problemen
1.Problem
Der Code löscht mir Die Zelle A B und C und verschiebt mir natürlich alle unteren Zellen (unter Zeile 20) nach oben. Kann man irgendwie verhindern, dass die unteren Zellen nicht verschoben werden?
Der Hintergrund ist, dass ich diesen Code auf mehrere Bereiche benötige.
2.Problem
 Es kommt eine Fehlermeldung, wenn mal keine Leerzeile gefunden wird. Hat jemand eine Idee, wie ich diesen Fehler abfangen kann?

PHP-Code:
Sub loeschen_mehrere_Spalten() 'Suchmatrix Spalte A
Dim r1, r2, r3 As Range

Set r1 = Range("A1:A20").Cells.SpecialCells(xlCellTypeBlanks)
Set r2 = r1.Offset(0, 1)
Set r3 = r1.Offset(0, 2)
Union(r1, r2, r3).Select
Selection.Delete Shift:=xlUp
End Sub 


Wäre toll wenn mir jemand helfen kann.

LG
Michael


Angehängte Dateien
.xlsm   Kopieren - Kopie.xlsm (Größe: 19,01 KB / Downloads: 1)
Antworten Top
#2
Hallo Michael,



Zitat:Der Code löscht mir Die Zelle A B und C und verschiebt mir natürlich alle unteren Zellen (unter Zeile 20) nach oben.



Zitat:Kann man irgendwie verhindern, dass die unteren Zellen nicht verschoben werden?


verstehe ich nicht, diesen Zustand hast du doch, wenn die Zellen, bzw. deren Inhalte aufgerückt werden. A, B und C sind Spalten, keine Zellen. Was soll nun gemacht werden? Haben die Zellen in allen drei Spalten keinen Inhalt, wenn gelöscht werden soll? Apropos löschen: man kann Zellinhalte löschen, aber keine Zellen. Meinst du wenn in einer Zeile in den Spalten A bis C kein Inhalt ist, soll der Rest "ausrutschen"? Das könnte man auch mit einer Sortierung erreichen.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
[-] Folgende(r) 1 Nutzer sagt Danke an Klaus-Dieter für diesen Beitrag:
  • Eizi100
Antworten Top
#3
Hallo Klaus-Dieter
 Vorerst danke nochmal. Du und viele andere haben mir schon so oft geholfen.
Die wichtigste Spalte ist die Spalte A. Ob die Nachbarzelle B und C befüllt ist oder nicht, ist egal. Nur in Spalte H steht Z.B =WENN(ISTFEHLER('1'!$C$7);"";'1'!$C$7) und das muss unverändert bleiben (Leider). Das ist die Crux


Ich lade dir mal einen Auszug der Liste  hoch mit der ich wirklich arbeite. Das sind leider viele Bereiche, wo gearbeitet wird. Und diese Bereiche sollen nicht gelöscht werden bzw. es soll kein Bereich verändert werden.

wenn ich z.B im ersten Bereich was lösche, wandern natürlich Alle Zellen nach oben. Und das wäre nicht so gut.

LG
Michael

Wenn der IST Zustand so ist Kopiere ich das händisch nach oben. Und das will ich automatisieren
[
Bild bitte so als Datei hochladen: Klick mich!
]

lg Michael


Angehängte Dateien Thumbnail(s)
   

.xlsm   WagenlisteBearbeiten1 - Kopie.xlsm (Größe: 35,24 KB / Downloads: 2)
Antworten Top
#4
Hallo nochmal

Du hast mir mit der Antwort irgendwie geholfen. Ich möchte mich herzlich bedanken

Ich muss die Zellen verschieben und nicht löschen. Ich werden mal im NETZ nach sowas suchen
Danke nochmal

LG
Michael

Hab die Lösung

Das einzige ist, wenn ich mehrere Bereiche habe???? Das bekomme ich auch noch hin


PHP-Code:
Sub saeubern()
Dim arOut(1 To 201 To 2), arIn
    Dim L 
As LongAs LongAs Long
   
   
    arIn 
Range("A1:B20").Value
   
    
For LBound(arInTo UBound(arIn)
        If arIn(L1) <> "" Then
            N 
1
            
For LBound(arIn2To UBound(arIn2)
                arOut(NM) = arIn(LM)
            Next
        End 
If
    Next
    Range
("A1:B20").Value arOut
End Sub 
Antworten Top
#5
Hallo Michael,

ich möchte da noch mal nachhaken: in Spalte A hast du verbundene Zellen, das ist ganz schlecht. Dann gibt es mehrere leere Spalten, das ist auch schlecht. Beschreibe bitte noch mal, was genau da passieren soll, also zum Beispiel leere Zelle in Spalte A, dann mache folgendes.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#6
Hi Klaus-Dieter
Die Zellen in Spalte A habe ich nur für dieses Forum, zur besseren Übersicht, verbunden...die sind normalerweise nicht verbunden.. das Blatt ist ein Datenblatt.. in dieses lese ich fast alle Daten (Spalte B SpalteC und Spalte D) ein.. aus diesem Blatt hole ich dann die Daten, über Verweise, Verküpfungen usw, die Daten in andere Blätter.und diese Verweise sind natürlich fix .Die Daten hole ich dann aus DIESEM Blatt ohne VBA.
Die Spalte mit den Verweisen in dem Datenblatt hat eigentlich keine Relevanz. 
Ich hoffe du kennst dich aus mit dem Geschreibe.

Ich muss ja selber über mich lachen..ich habe seit Tagen versucht die Leerzeilen zu löschen. Wenn du mich auf das Sortieren gebracht hättest, würd3 ich noch immer suchen

LG
Michael
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste