Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
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

mehrere Spalten selectieren

mehrere Spalten selectieren
02.05.2015 10:56:01
kurt
Guten Morgen,
ich habe diese Formel:
With ActiveSheet
lz = ActiveSheet.Range("AB2").End(xlDown).Row
.Range(.Cells(10, 2), .Cells(lz, 2)).Activate
'Activateion.ClearContents 'hiermit bleibt die Formatierung
End With
Nun möchte ich aber die Spalte 2+4+6+9 selectieren um zu löschen,
krieg es nicht hin,
würde mich freuen wenn jemand helfen kann.
gruß
kurt kl

49
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mehrere Spalten selectieren
02.05.2015 11:09:03
Beverly
Hi Kurt,
benutze Union - nach diesem Prinzip:
Union(.Range(.Cells(10, 2), .Cells(lz, 2)), .Range(.Cells(10, 4), .Cells(lz, 4))).ClearContents

Leider nur gesamt von 2-9
02.05.2015 11:28:58
2-9
Hallo Karin,
es werden die Spalten von B2 bis 9 GESAMT selectiert,
es sollten aber nur die einzelnen Spalten selectiert werden.
Habe mal zum testen so reingesetzt:
Union(.Range(.Cells(10, 2), .Cells(lz, 4)), .Range(.Cells(10, 6), .Range(.Cells(10, 9), _
.Cells(lz, 2)))).Activate 'ClearContents
gruß
kurt kl

AW: Leider nur gesamt von 2-9
02.05.2015 11:34:33
2-9
Hi Kurt,
du musst jeden Bereich spaltenweise einzeln eintragen, nicht Spalten zusammen - schau dir meinen Code noch einmal genau an.


Anzeige
STIMMT !!!
02.05.2015 11:36:53
kurt

BITTE nochmal schauen !!!
02.05.2015 11:46:41
kurt
Hallo zusammen,
ich möchte die Werte der jeweiligen Spalte einzeln löschen, da diese unterschiedlich
sind und NICHT nach Spalte B.
Danke im Voraus,
gruß
kurt kl

Was verstehst du unter "NICHT nach Spalte B"?
02.05.2015 11:53:25
Beverly


Hier
02.05.2015 12:22:08
kurt
Hallo Karin,
jetzt bestimmt ja noch die Länge der Selection.
lz = ActiveSheet.Range("B10").End(xlDown).Row
Ich möchte gern jeweils das Ende der jeweiligen Spalte bestimmen.
Daher wenn Spalte D:D bis Zeile 120 geh, soll bis 120 gelöscht werden.
gruß
kurt kl

letzte belegte Zeile anders ermitteln
02.05.2015 12:29:23
Beverly
Hi Kurt,
dann würde ich die letze belegte Zeile anders ermitteln - nicht in einer bestimmten Spalte sondern im benutzten Bereich, dann wird die "Maximalzeile" verwendet:
lz = ActiveSheet.Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row


Anzeige
Ja, wenn aber
02.05.2015 12:34:42
kurt
Hallo Karin,
die Belegung ist unterschiedlich.
Wird von den Spalten also immer die Spalte die am längsten belegt ist ?
gruß
kurt kl

AW: Ja, wenn aber
02.05.2015 12:43:33
Beverly
Hi Kurt,
da du sowieso bis zur letzten belegten jeder Spalte leeren willst, spielt es doch keine Rolle, ob es die letzte belegte dieser oder einer anderen Spalte ist oder des gesamten benutzten Bereichs, da unter der letzten belegten Zelle einer zu leerenden Spalte ja nichts weiter stehen kann. Und die letzte belegte Zeile des benutzten Bereichs ist nun mal das Maximum, auch wenn dann vielleicht leere Zellen in den Spalten noch einmal geleert werden.


Anzeige
Danke Karin !!! --))
02.05.2015 14:06:31
kurt

Beispiel für Spalten 2,4,6 und 9
02.05.2015 13:05:04
Matthias
Hallo
Wenns denn so sein soll:
Löscht von Zeile 10 bis Ende der Einträge.
Willst Du ab einer anderen Zeile löschen die 10 bitte austauschen
Option Explicit
Sub kurt()
Dim lz&, aussen&
For aussen = 2 To 9 Step 2
With ActiveSheet
lz = Cells(Rows.Count, aussen).End(xlUp).Row
.Range(.Cells(10, aussen), .Cells(lz, aussen)).ClearContents
End With
If aussen = 6 Then aussen = aussen + 1
Next aussen
End Sub
Gruß Matthias

Danke Matthias, -)
02.05.2015 14:10:47
kurt

Danke Matthias, -)
02.05.2015 19:49:35
kurt

Bitte kurt -)
02.05.2015 20:09:10
Matthias
Hallo kurt
Einmal Danke reicht mir schon ;-)
und wenn Du es sehen willst was da passiert kannst Du auch zuschauen.
 BCDEFGHI
10Daten Daten Daten  Daten
11Daten Daten Daten  Daten
12Daten Daten Daten  Daten
13Daten Daten Daten  Daten
14Daten Daten Daten  Daten
15  Daten Daten  Daten
16  Daten Daten  Daten
17  Daten Daten  Daten
18  Daten Daten  Daten
19  Daten Daten   
20  Daten Daten   
21  Daten Daten   
22    Daten   
23    Daten   
24    Daten   
25    Daten   
26    Daten   
27    Daten   


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Option Explicit
Sub kurt()
Dim lz&, aussen&
For aussen = 2 To 9 Step 2
With ActiveSheet
lz = Cells(Rows.Count, aussen).End(xlUp).Row
.Range(.Cells(10, aussen), .Cells(lz, aussen)).Select
MsgBox "jetzt wird gelöscht"
Selection.ClearContents
End With
If aussen = 6 Then aussen = aussen + 1
Next aussen
End Sub

und kürzer gehts auch noch weil ActiveSheet nicht nötig ist
Range und Cells beziehen sich ohne Punkt immer aufs aktive Tabellenblatt
Option Explicit
Sub kurt()
Dim lz&, aussen&
For aussen = 2 To 9 Step 2
lz = Cells(Rows.Count, aussen).End(xlUp).Row
Range(Cells(10, aussen), Cells(lz, aussen)).Select
MsgBox "jetzt wird gelöscht"
Selection.ClearContents
If aussen = 6 Then aussen = aussen + 1
Next aussen
End Sub
Wie geschrieben das Select und die MsgBox sind nur zum Anschauen gedacht
Gruß Matthias

Anzeige
noch ne Kleinigkeit ...
02.05.2015 20:15:36
Matthias
huhu
Übrigens kannst Du statt
If aussen = 6 Then aussen = aussen + 1

auch
If aussen = 6 Then aussen = 7

schreiben
Nur mal so noch als Nebenbei-Hinweis ;-)
Gruß Matthias

Darf ich auch nochmal Fragen ?
02.05.2015 21:48:58
Kurt
Hallo Matthias,
könntest Du mir mal ein Beispiel für meine 2 Tabelle geben, ich Krieg es nicht hin.
Für die Spalte 12, 13, 14, 18, 25 und 45,
würde mich freuen.
Gruß
Kurt kl

AW: Darf ich auch nochmal Fragen ?
02.05.2015 22:19:31
Matthias
Hallo
Option Explicit
Sub kurt()
'Für die Spalte 12, 13, 14, 18, 25 und 45
Dim lz&, aussen&
For aussen = 12 To 45
lz = Cells(Rows.Count, aussen).End(xlUp).Row
Range(Cells(10, aussen), Cells(lz, aussen)).Select
MsgBox "jetzt wird gelöscht"
Selection.ClearContents
Select Case aussen
Case Is = 25
aussen = 44
Case Is = 18
aussen = 24
Case Is = 14
aussen = 17
End Select
Next aussen
End Sub
Gruß Matthias

Anzeige
Eine Schleife...
02.05.2015 22:24:49
Beverly
Hi Kurt,
...über die Spalten selbst lohnt sich nur, wenn es eine einfache umzusetzende Systematik gibt (was bei dir nicht der Fall ist), nicht jedoch, wenn man unnötige Kopfstände machen muss, um den richtigen Wert für den nächsten Durchlauf zu berechnen.
Der einfachste Weg ist, alle Spaltennummern in ein Array zu packen und dann das Array zu durchlaufen:
Sub Leeren()
Dim arrSpalten()
Dim lngLetzte As Long
Dim intSpalte As Integer
arrSpalten = Array(12, 13, 14, 18, 25, 45)
lngLetzte = ActiveSheet.Cells.Find(What:="*", _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
For intSpalte = 0 To 5
Range(Cells(10, arrSpalten(intSpalte)), _
Cells(lngLetzte, arrSpalten(intSpalte))).ClearContents
Next intSpalte
End Sub

Oder, falls du für jede Spalte die letzte belegte Zeile einzeln ermitteln willst (was sinnlos ist, da ja unterhalb der letzten belegten Zeile jeder Spalte nichts weiter steht - siehe meinen letzten Beitrag), dann so:
Sub Leeren2()
Dim arrSpalten()
Dim lngLetzte As Long
Dim intSpalte As Integer
arrSpalten = Array(12, 13, 14, 18, 25, 45)
For intSpalte = 0 To 5
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, arrSpalten(intSpalte))), _
Cells(Rows.Count, arrSpalten(intSpalte)).End(xlUp).Row, Rows.Count)
Range(Cells(10, arrSpalten(intSpalte)), _
Cells(lngLetzte, arrSpalten(intSpalte))).ClearContents
Next intSpalte
End Sub


Anzeige
Bin ganz bei Dir ...
02.05.2015 22:39:45
Matthias
Hallo Karin
Ich würde natürlich auch die Inhalte der kompletten Spalte löschen, wie Du es bereits vorgeschlagen hast.
Warum kurt unbedingt vorher selektieren will weiß ich nicht.
Es ist aber manchmal für Lernprozesse ganz sinnvoll das Ganze zu erst zu sehen um es zu verstehen.
Gruß Matthias

Guten Morgen zusammen ...
03.05.2015 11:53:05
kurt
Guten Morgen zusammen,
soweit habe ich das löschen in Griff, dafür DANKE !
Ich weiß nicht ob ich was neues aufmachen muss ?
Frage:
Habe eine 2. Datei und möchte dort die Formlen in der Spalte D,E,F K und Y immer
ab Zeile 5 ! unten kopieren, soweit wie die Spalte B gefüllt ist ist.
mfg
kurt kl

Anzeige
Habe Lösung gefunden, danke --)
03.05.2015 15:21:11
kurt
Hallo zusammen,
habe was gefunden und entsprechend für meine Tabelle geändert.
Makro läuft einwandfrei, hier ein Auszug für die Spalte 12:
'--- jetzt Formeln kopieren ------- Spalte 12 -----------
With ActiveSheet
.Range("L10").Select
actspal = ActiveCell.Column
.Cells(10, actspal).Copy
With .Range(.Cells(lz, actspal), .Cells(.Cells(.Rows.Count, 12).End(xlUp).Row, actspal)).Select
ActiveSheet.Paste
End With
ActiveSheet.Range("M9").Select
Application.CutCopyMode = False
End With
schönen Sonntag noch.
gruß
kurt kl

Die Variable lz ist doch leer!
03.05.2015 15:35:54
Matthias
Hallo
wie soll das gehen?
Die Variable lz ist doch leer!
Cells(lz, actspal)
Das ergibt einen Fehler wenn lz leer ist
Cells braucht eine Zeilennummer(lz) und eine Spaltennummer(actspal)
Deine Aussage:
Makro läuft einwandfrei
glaube ich Dir also nicht ;-)
Gruß Matthias

Anzeige
Denke ich nicht, denn...
03.05.2015 15:54:26
Beverly
Hi Matthias,
...da Kurt nur einen Teil seines Codes gepostet hat muss man annehmen, dass die Variable lz bereits vorher gefüllt wird - er hatte ja geschrieben, dass die letzte belegte Zeile in Spalte B ermittelt werden soll.
Was mir jedoch suspekt ist, dass lz als Startzeile und nicht als Endzeile verwendet wird und die letzte belegte Zeile in Spalte 12 ermittelt wird...


AW: Die Variable lz ist doch leer!
03.05.2015 16:29:34
Kurt
Hallo Matthias,
nein, in L10 steht die Formel, die nach unten kopiert wird.
Gruß
Kurt kl

AW: Habe Lösung gefunden, danke --)
03.05.2015 15:49:10
Beverly
Hi Kurt,
das geht danz einfach mit AutoFill
Sub FormelnKopieren()
Dim arrSpalten()
Dim lngLetzte As Long
Dim intSpalte As Integer
arrSpalten = Array(4, 5, 6, 11, 25)
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 2)), _
Cells(Rows.Count, 2).End(xlUp).Row, Rows.Count)
For intSpalte = 0 To 4
Cells(10, arrSpalten(intSpalte)).AutoFill Range(Cells(10, arrSpalten(intSpalte)), _
Cells(lngLetzte, arrSpalten(intSpalte)))
Next intSpalte
End Sub


Anzeige
Hallo Karin, das Stimmt aber
03.05.2015 16:52:55
kurt
Hallo Karin,
stimmt, bleibt mir die länge vom Makro ersparrrrt !
Zum LÖSCHEN,
habe ich dies von Dir:
With ActiveSheet
lz = ActiveSheet.Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Union(.Range(.Cells(11, 12), .Cells(lz, 12)), .Range(.Cells(11, 13), .Cells(lz, 13)), _
.Range(.Cells(11, 14), .Cells(lz, 14)), .Range(.Cells(11, 18), .Cells(lz, 18)), _
.Range(.Cells(11, 25), .Cells(lz, 25)), .Range(.Cells(11, 41), .Cells(lz, 41))).Delete 'ClearContents 'Activate
End With
wie kann ich den auch die hinterlegte gelbe Formatierung der Zelle entfernen ?
Alles andere soll so bleiben.
gruß
kurt kl

Zur Info
03.05.2015 17:00:12
kurt
Hallo Karin,
habe dein Makro geändert auf: 0 To 5
ist das RICHTIG,sind aber 6 Spalten !
Sub Formeln_Kopieren()
Dim arrSpalten()
Dim lngLetzte As Long
Dim intSpalte As Integer
arrSpalten = Array(12, 13, 14, 18, 25, 41)
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 2)), Cells(Rows.Count, 2).End(xlUp).Row, Rows. _
Count)
For intSpalte = 0 To 5
Cells(10, arrSpalten(intSpalte)).AutoFill Range(Cells(10, arrSpalten(intSpalte)), _
Cells(lngLetzte, arrSpalten(intSpalte)))
Next intSpalte
End Sub
gruß
kurt kl

AW: Zur Info
03.05.2015 18:31:15
Beverly
Hi Kurt,
1. Farbe (und alle anderen Formate auch!) löschen könntest du mit der selben Zeile, aber dann .Clear anstelle .ClearContents am Ende.
Falls es die Inhalte und nur die Farbe (und nicht auch andere Formate) sein sollen, dann musst du die Zeile zweimal benutzen - einmal mit ClearContents am Ende und einmal mit .Interior.ColorIndex = xlNone am Ende
2. das ist schon korrekt, dass die Schleife bis 5 geht, denn die Variable beginnt bei 0 zu zählen - das hängt damit zusammen, dass in einem solchen Array das 1. Feld die 0. Position innehat und das Array hat in deinem Fall 6 Felder und beinhaltet somit 6 Spalten.


Danke Karin klappt ! -)
03.05.2015 19:42:43
kurt
Hallo0 Karin,
danke nochmals für alles und jetzt noch einen schönen
REST Sonntag.
gruß
kurt kl

Nur das löschen klappt nicht
03.05.2015 19:51:27
kurt
Hallo Karin,
wieso klappt dies nicht:
Sub Formeln_löschen()
Dim arrSpalten()
Dim lngLetzte As Long
Dim intSpalte As Integer
arrSpalten = Array(12, 13, 14, 18, 25, 41)
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 2)), Cells(Rows.Count, 2).End(xlUp).Row, Rows. _
Count)
For intSpalte = 0 To 5
Cells(11, arrSpalten(intSpalte)).AutoFill Range(Cells(11, arrSpalten(intSpalte)), _
Cells(lngLetzte, arrSpalten(intSpalte))).Interior.ColorIndex = xlNone
Next intSpalte
End Sub
gruß
kurt kl

AW: Code setzt nur Farbe retour; löscht nichts!
03.05.2015 20:59:20
Gerd
Hallo Kurt,
.. und füllt Zellen!
Zeigst du uns die richtige Prozedur?
Gruß Gerd

AW: Code setzt nur Farbe retour; löscht nichts!
03.05.2015 21:06:11
Kurt
Hallo Gerd,
ja, ist mein Mustermakro.
Hatte das Beispiel von Karin genommen, zum kopieren der Formeln.
Nun wollte ich mit dem Muster die Formeln und die Zellenfarbe löschen.
Gruß
Kurt kl

Die Codezeile muss zweimal vorhanden sein
03.05.2015 21:03:01
Beverly
Hi Kurt,
ich hatte mich zwar in meinem letzten Beitrag auf das Löschen der Einträge bezogen (weil ich dachte es geht darum), aber dennoch bleibt das bestehen, was ich dort geschrieben habe: die Codezeile muss zweimal vorhanden sein: einmal fürs Eintragen der Formeln und einmal für das Zurücksetzen der Füllfarbe
    For intSpalte = 0 To 5
Cells(11, arrSpalten(intSpalte)).AutoFill Range(Cells(11, arrSpalten(intSpalte)), _
Cells(lngLetzte, arrSpalten(intSpalte)))
Range(Cells(11, arrSpalten(intSpalte)), _
Cells(lngLetzte, arrSpalten(intSpalte))).Interior.ColorIndex = xlNone
Next intSpalte


Hallo Karin
03.05.2015 21:09:19
Kurt
Hallo,
habe gerade geschrieben. Es ist alles i.o. was Du gemacht hast.
Ich möchte jetzt nur noch ein Makro zum Löschen und die Farbe aus den Zellen entfernen.
Gruß
Kurt kl

AW: Hallo Karin
03.05.2015 21:46:50
Beverly
Hi Kurt,
also löschen und Füllfarbe zurücksetzen:
    For intSpalte = 0 To 5
Range(Cells(11, arrSpalten(intSpalte)), _
Cells(lngLetzte, arrSpalten(intSpalte))).ClearContents
Range(Cells(11, arrSpalten(intSpalte)), _
Cells(lngLetzte, arrSpalten(intSpalte))).Interior.ColorIndex = xlNone
Next intSpalte


AW: Hallo Karin, es kommt Fehlermeldung
03.05.2015 22:11:42
kurt
Hallo,
Laufzeitfehler 1004
Anwendung oder objektdefinierter Fehler.
gruß
kurt kl

Jetzt klappt es so... ---)))
03.05.2015 22:17:38
kurt
Hallo Karin,
hatte die Zeile ausgeklammert:
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 2)), Cells(Rows.Count, 2).End(xlUp).Row, Rows.Count)
so klappt es !!!!!!!!!!!!!!!!!!!!!!!!!!!
Sub Formeln_löschen()
Dim arrSpalten()
Dim lngLetzte As Long
Dim intSpalte As Integer
arrSpalten = Array(12, 13, 14, 18, 25, 41)
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 2)), Cells(Rows.Count, 2).End(xlUp).Row, Rows. _
Count)
For intSpalte = 0 To 5
Range(Cells(11, arrSpalten(intSpalte)), Cells(lngLetzte, arrSpalten(intSpalte))). _
ClearContents
Range(Cells(11, arrSpalten(intSpalte)), Cells(lngLetzte, arrSpalten(intSpalte))). _
Interior.ColorIndex = xlNone
Next intSpalte
End Sub
gute Nacht,
danke
mfg
kurt kl

Jetzt klappt es so... ---)))
04.05.2015 13:04:06
kurt
Hallo Karin,
hatte die Zeile ausgeklammert:
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 2)), Cells(Rows.Count, 2).End(xlUp).Row, Rows.Count)
so klappt es !!!!!!!!!!!!!!!!!!!!!!!!!!!
Sub Formeln_löschen()
Dim arrSpalten()
Dim lngLetzte As Long
Dim intSpalte As Integer
arrSpalten = Array(12, 13, 14, 18, 25, 41)
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 2)), Cells(Rows.Count, 2).End(xlUp).Row, Rows. _
Count)
For intSpalte = 0 To 5
Range(Cells(11, arrSpalten(intSpalte)), Cells(lngLetzte, arrSpalten(intSpalte))). _
ClearContents
Range(Cells(11, arrSpalten(intSpalte)), Cells(lngLetzte, arrSpalten(intSpalte))). _
Interior.ColorIndex = xlNone
Next intSpalte
End Sub
gute Nacht,
danke
mfg
kurt kl

Jetzt klappt es so... ---)))
04.05.2015 18:25:11
kurt
Hallo Karin,
hatte die Zeile ausgeklammert:
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 2)), Cells(Rows.Count, 2).End(xlUp).Row, Rows.Count)
so klappt es !!!!!!!!!!!!!!!!!!!!!!!!!!!
Sub Formeln_löschen()
Dim arrSpalten()
Dim lngLetzte As Long
Dim intSpalte As Integer
arrSpalten = Array(12, 13, 14, 18, 25, 41)
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 2)), Cells(Rows.Count, 2).End(xlUp).Row, Rows. _
Count)
For intSpalte = 0 To 5
Range(Cells(11, arrSpalten(intSpalte)), Cells(lngLetzte, arrSpalten(intSpalte))). _
ClearContents
Range(Cells(11, arrSpalten(intSpalte)), Cells(lngLetzte, arrSpalten(intSpalte))). _
Interior.ColorIndex = xlNone
Next intSpalte
End Sub
gute Nacht,
danke
mfg
kurt kl

Jetzt klappt es so... ---)))
04.05.2015 18:31:23
kurt
Hallo Karin,
hatte die Zeile ausgeklammert:
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 2)), Cells(Rows.Count, 2).End(xlUp).Row, Rows.Count)
so klappt es !!!!!!!!!!!!!!!!!!!!!!!!!!!
Sub Formeln_löschen()
Dim arrSpalten()
Dim lngLetzte As Long
Dim intSpalte As Integer
arrSpalten = Array(12, 13, 14, 18, 25, 41)
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 2)), Cells(Rows.Count, 2).End(xlUp).Row, Rows. _
Count)
For intSpalte = 0 To 5
Range(Cells(11, arrSpalten(intSpalte)), Cells(lngLetzte, arrSpalten(intSpalte))). _
ClearContents
Range(Cells(11, arrSpalten(intSpalte)), Cells(lngLetzte, arrSpalten(intSpalte))). _
Interior.ColorIndex = xlNone
Next intSpalte
End Sub
gute Nacht,
danke
mfg
kurt kl

Jetzt klappt es so... ---)))
04.05.2015 18:38:49
kurt
Hallo Karin,
hatte die Zeile ausgeklammert:
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 2)), Cells(Rows.Count, 2).End(xlUp).Row, Rows.Count)
so klappt es !!!!!!!!!!!!!!!!!!!!!!!!!!!
Sub Formeln_löschen()
Dim arrSpalten()
Dim lngLetzte As Long
Dim intSpalte As Integer
arrSpalten = Array(12, 13, 14, 18, 25, 41)
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 2)), Cells(Rows.Count, 2).End(xlUp).Row, Rows. _
Count)
For intSpalte = 0 To 5
Range(Cells(11, arrSpalten(intSpalte)), Cells(lngLetzte, arrSpalten(intSpalte))). _
ClearContents
Range(Cells(11, arrSpalten(intSpalte)), Cells(lngLetzte, arrSpalten(intSpalte))). _
Interior.ColorIndex = xlNone
Next intSpalte
End Sub
gute Nacht,
danke
mfg
kurt kl

Jetzt klappt es so... ---)))
04.05.2015 18:39:40
kurt
Hallo Karin,
hatte die Zeile ausgeklammert:
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 2)), Cells(Rows.Count, 2).End(xlUp).Row, Rows.Count)
so klappt es !!!!!!!!!!!!!!!!!!!!!!!!!!!
Sub Formeln_löschen()
Dim arrSpalten()
Dim lngLetzte As Long
Dim intSpalte As Integer
arrSpalten = Array(12, 13, 14, 18, 25, 41)
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 2)), Cells(Rows.Count, 2).End(xlUp).Row, Rows. _
Count)
For intSpalte = 0 To 5
Range(Cells(11, arrSpalten(intSpalte)), Cells(lngLetzte, arrSpalten(intSpalte))). _
ClearContents
Range(Cells(11, arrSpalten(intSpalte)), Cells(lngLetzte, arrSpalten(intSpalte))). _
Interior.ColorIndex = xlNone
Next intSpalte
End Sub
gute Nacht,
danke
mfg
kurt kl

Nur das löschen klappt nicht
03.05.2015 22:07:27
kurt
Hallo Karin,
wieso klappt dies nicht:
Sub Formeln_löschen()
Dim arrSpalten()
Dim lngLetzte As Long
Dim intSpalte As Integer
arrSpalten = Array(12, 13, 14, 18, 25, 41)
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 2)), Cells(Rows.Count, 2).End(xlUp).Row, Rows. _
Count)
For intSpalte = 0 To 5
Cells(11, arrSpalten(intSpalte)).AutoFill Range(Cells(11, arrSpalten(intSpalte)), _
Cells(lngLetzte, arrSpalten(intSpalte))).Interior.ColorIndex = xlNone
Next intSpalte
End Sub
gruß
kurt kl

So geht es, DANKE auch an Lupo1 --))
02.05.2015 11:36:25
kurt
Hallo zusammen,
so geht es:
Union(.Range(.Cells(10, 2), .Cells(lz, 2)), .Range(.Cells(10, 6), .Cells(lz, 6))).Activate 'ClearContents
gruß
kurt kl

Union
02.05.2015 11:11:36
lupo1

Sub t()
lz = irgendwas
With ActiveSheet
Set r2 = .Range(.Cells(10, 2), .Cells(lz, 2))
Set r4 = .Range(.Cells(10, 4), .Cells(lz, 4))
Set r6 = .Range(.Cells(10, 6), .Cells(lz, 6))
Set r9 = .Range(.Cells(10, 9), .Cells(lz, 9))
Set r0 = Union(r2, r4, r6, r9)
End With
r0.ClearContents
End Sub

Leider Fehlermeldung
02.05.2015 11:33:15
kurt
Hallo Lupo1,
es kommt eine Fehlermeldung:
Laufzeitfehler 1004
Anwendungs und Objekt...
Bleibt hier stehen:
Set r2 = .Range(.Cells(10, 2), .Cells(lz, 2))
Dim irgendwas
Dim lz
Dim r2, r4, r6, r9, r0
lz = irgendwas
With ActiveSheet
Set r2 = .Range(.Cells(10, 2), .Cells(lz, 2))
Set r4 = .Range(.Cells(10, 4), .Cells(lz, 4))
Set r6 = .Range(.Cells(10, 6), .Cells(lz, 6))
Set r9 = .Range(.Cells(10, 9), .Cells(lz, 9))
Set r0 = Union(r2, r4, r6, r9)
End With
r0.ClearContents
End Sub
gruß
kurt kl

AW: Intersect(mehrere Bereiche)
02.05.2015 11:58:26
Gerd
Hallo Kurt!
Sub c()
Dim lz As Long
lz = 16 'Beispiel letzte Zeile
Intersect(Range("10:" & lz), Range("B:B,D:D,F:F,I:I")).ClearContents
End Sub

Gruß Gerd

Super das geht auch Danke ! aber ich ...
02.05.2015 12:19:53
kurt
Hallo0 Gerd,
danke für dein Beispiel.
Allerdings möchte ich jeweils das Ende der Spalte bestimmen.
Daher wenn Spalte D:D bis Zeile 120 geh, soll bis 120 gelöscht werden.
gruß
kurt kl

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige