Bedingtes Löschen, selektiv

Bild

Betrifft: Bedingtes Löschen, selektiv von: Harald E
Geschrieben am: 15.03.2005 11:53:05

Hallo Forum,

ich probier nun schon eine geraume Zeit an folgendem Peanut rum.


Sub loesch()
Dim lrow As Long
Sheets("Erfassung").Activate
lrow = Cells(Rows.Count, 3).End(xlUp).Row
For i = 2 To lrow
If Range("C" & i).Value <> "o" Then
Range("C" & i, "E" & i, "F" & i, "I" & i).Clearcontents 'Fehlermeldung
End If
Next i
End Sub


Der Code soll Spalte C durchlaufen. Wenn dort kein "o" (wie offen) steht, soll er in dieser Zeile die Inhalte der Spalten C, E, F und I löschen.
Habs schon mit cells (i, 3),(i, 5) etc und ähnlichem rumgebastelt.

In der Zeile mit Fehlermeldung meldet er mir eine falsche Anzahl Argumente oder ungültige Zuweisung einer Eigenschaft.

Danke vorab und schöne Grüße
Harald

Zusatzinfo:
In Spalte C können o, z oder s stehen. Das o kommt grundsätzlich aus einem Workbook_Open Ereignis.
Generell: Zeilen in denen in Spalte C ein o steht, sollen in den Folgemonat übernommen werden.
Bild


Betrifft: AW: Bedingtes Löschen, selektiv von: Chris
Geschrieben am: 15.03.2005 12:17:32

Hi Harald

und
cells(i,3).clearcontents
cells(i,5).clearcontents
cells(i,6).clearcontents
... funktioniert nicht???

gruss

Chris


Bild


Betrifft: AW: Bedingtes Löschen, selektiv von: Volker
Geschrieben am: 15.03.2005 12:19:21

Hallo Harald,

Du kannst nicht zusammenhängende Ranges nicht einfach zu einem Gesamtrange "verketten wie einen Text.
Also Range("A1","C1:E1","F1") is nich.
Das selbe gilt für die Darstellung mit Spalten-/zeilenindex cell(x,y).
Also mußt Die Ranges einzeln löschen.

Gruß
Volker


Bild


Betrifft: AW: Bedingtes Löschen, selektiv von: Luc
Geschrieben am: 15.03.2005 12:30:01

Hallo Volker & Harald,
dieses kleine Testmakro funktioniert aber einwandfrei:

Sub Makro1()
    Range("A2,C3:C4,B3").Select
    Selection.Clear
End Sub 

Fehler muss also woanders liegen!
Mahlzeit, Luc :-?


Bild


Betrifft: fkt. auch ohne .Select ! -- owT von: Luc
Geschrieben am: 15.03.2005 12:33:24




Bild


Betrifft: der Laie staunt, der Fachmann wundert sich ;-) o.T von: Volker
Geschrieben am: 15.03.2005 13:10:04

.


Bild


Betrifft: Danke von: Harald E
Geschrieben am: 15.03.2005 13:02:01

Hi,

Chris, Volker. Einzeln funktioniert es. Danke

Luc. Weiß ja nicht, worüber ich mich mehr freuen soll. Die Hilfe oder dass dir ein Select rausgerutscht ist ;-)))

Würde aber auch gerne deine Vermutung zur wahren Ursache wissen.

Gruß
Harald


Bild


Betrifft: AW: Fehler identifiziert von: Luc :-?
Geschrieben am: 15.03.2005 13:28:30

Hallo Harald und Mittester,
du hättest mal die Fehlermeldung mit angeben sollen: Falsche Anzahl an Argumenten! Das sagt doch alles! Auch, wenn du die Adressen zusammensetzt, muss das Ganze ein Ausdruck bleiben, also...

Range("C" & i & ", E" & i & ", F" & i & ", I" & i).ClearContents 


Gruß Luc
PS: Was sagt mir deine Freude über mein .select (das war natürlich der Recorder)? Ich setze durchaus gelegentlich .select ein, z.B. um ein Shape auszuwählen u.ä., allerdings kaum bei Ranges (was Andere geradezu inflationär tuen - Recorder!).


Bild


Betrifft: kann man so blind sein...... von: Volker
Geschrieben am: 15.03.2005 13:40:48

dass man das nicht sieht?

Ich schon !

Danke Luc


Bild


Betrifft: AW: Fehler identifiziert von: Harald E
Geschrieben am: 15.03.2005 13:54:18

Hi Luc,

ist für mich schon frustrierend, ständig an diesen formalen Fehlern zu scheitern.

Die Vermeidung von Select steht bei mir ganz oben im Lastenheft. Das ist teilweise ein steiniger Weg und da freut man sich auch mal ein Select von einem der vba-cracks (Leugnen zwecklos ;-)) zu lesen....selbst wenn es nur ein Schnellschuß per Rekorder war.
Mehr steckt nicht dahinter.

Nette Grüße
Harald


Bild


Betrifft: Danke für die Blumen! - mit Text von: Luc :-?
Geschrieben am: 15.03.2005 14:05:28

Lasst ma' Jungs, so'n paar Striche kann man leicht falsch anordnen und Keinem (auch mir!) fällt's gleich auf.
Ciao Luc :-?
PS: Die Möglichkeit mit Union() hätte auch noch bestanden!


 Bild

Beiträge aus den Excel-Beispielen zum Thema "kopieren"