mehrere Spalten selectieren

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: mehrere Spalten selectieren
von: kurt kl
Geschrieben am: 02.05.2015 10:56:01

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

Bild

Betrifft: AW: mehrere Spalten selectieren
von: Beverly
Geschrieben am: 02.05.2015 11:09:03
Hi Kurt,
benutze Union - nach diesem Prinzip:

Union(.Range(.Cells(10, 2), .Cells(lz, 2)), .Range(.Cells(10, 4), .Cells(lz, 4))).ClearContents



Bild

Betrifft: Leider nur gesamt von 2-9
von: kurt kl
Geschrieben am: 02.05.2015 11:28:58
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

Bild

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




Bild

Betrifft: STIMMT !!!
von: kurt kl
Geschrieben am: 02.05.2015 11:36:53


Bild

Betrifft: BITTE nochmal schauen !!!
von: kurt kl
Geschrieben am: 02.05.2015 11:46:41
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

Bild

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




Bild

Betrifft: Hier
von: kurt kl
Geschrieben am: 02.05.2015 12:22:08
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

Bild

Betrifft: letzte belegte Zeile anders ermitteln
von: Beverly
Geschrieben am: 02.05.2015 12:29:23
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



Bild

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

Bild

Betrifft: AW: Ja, wenn aber
von: Beverly
Geschrieben am: 02.05.2015 12:43:33
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.




Bild

Betrifft: Danke Karin !!! --))
von: kurt kl
Geschrieben am: 02.05.2015 14:06:31


Bild

Betrifft: Beispiel für Spalten 2,4,6 und 9
von: Matthias L
Geschrieben am: 02.05.2015 13:05:04
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

Bild

Betrifft: Danke Matthias, -)
von: kurt kl
Geschrieben am: 02.05.2015 14:10:47


Bild

Betrifft: Danke Matthias, -)
von: kurt kl
Geschrieben am: 02.05.2015 19:49:35


Bild

Betrifft: Bitte kurt -)
von: Matthias L
Geschrieben am: 02.05.2015 20:09:10
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

Bild

Betrifft: noch ne Kleinigkeit ...
von: Matthias L
Geschrieben am: 02.05.2015 20:15:36
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

Bild

Betrifft: Darf ich auch nochmal Fragen ?
von: Kurt kl
Geschrieben am: 02.05.2015 21:48:58
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

Bild

Betrifft: AW: Darf ich auch nochmal Fragen ?
von: Matthias L
Geschrieben am: 02.05.2015 22:19:31
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

Bild

Betrifft: Eine Schleife...
von: Beverly
Geschrieben am: 02.05.2015 22:24:49
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



Bild

Betrifft: Bin ganz bei Dir ...
von: Matthias L
Geschrieben am: 02.05.2015 22:39:45
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

Bild

Betrifft: Guten Morgen zusammen ...
von: kurt kl
Geschrieben am: 03.05.2015 11:53:05
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

Bild

Betrifft: Habe Lösung gefunden, danke --)
von: kurt kl
Geschrieben am: 03.05.2015 15:21:11
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

Bild

Betrifft: Die Variable lz ist doch leer!
von: Matthias L
Geschrieben am: 03.05.2015 15:35:54
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

Bild

Betrifft: Denke ich nicht, denn...
von: Beverly
Geschrieben am: 03.05.2015 15:54:26
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...




Bild

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

Bild

Betrifft: AW: Habe Lösung gefunden, danke --)
von: Beverly
Geschrieben am: 03.05.2015 15:49:10
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



Bild

Betrifft: Hallo Karin, das Stimmt aber
von: kurt kl
Geschrieben am: 03.05.2015 16:52:55
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

Bild

Betrifft: Zur Info
von: kurt kl
Geschrieben am: 03.05.2015 17:00:12
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

Bild

Betrifft: AW: Zur Info
von: Beverly
Geschrieben am: 03.05.2015 18:31:15
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.




Bild

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

Bild

Betrifft: Nur das löschen klappt nicht
von: kurt kl
Geschrieben am: 03.05.2015 19:51:27
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

Bild

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

Bild

Betrifft: AW: Code setzt nur Farbe retour; löscht nichts!
von: Kurt kl
Geschrieben am: 03.05.2015 21:06:11
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

Bild

Betrifft: Die Codezeile muss zweimal vorhanden sein
von: Beverly
Geschrieben am: 03.05.2015 21:03:01
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



Bild

Betrifft: Hallo Karin
von: Kurt kl
Geschrieben am: 03.05.2015 21:09:19
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

Bild

Betrifft: AW: Hallo Karin
von: Beverly
Geschrieben am: 03.05.2015 21:46:50
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



Bild

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

Bild

Betrifft: Jetzt klappt es so... ---)))
von: kurt kl
Geschrieben am: 03.05.2015 22:17:38
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

Bild

Betrifft: Jetzt klappt es so... ---)))
von: kurt kl
Geschrieben am: 04.05.2015 13:04:06
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

Bild

Betrifft: Jetzt klappt es so... ---)))
von: kurt kl
Geschrieben am: 04.05.2015 18:25:11
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

Bild

Betrifft: Jetzt klappt es so... ---)))
von: kurt kl
Geschrieben am: 04.05.2015 18:31:23
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

Bild

Betrifft: Jetzt klappt es so... ---)))
von: kurt kl
Geschrieben am: 04.05.2015 18:38:49
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

Bild

Betrifft: Jetzt klappt es so... ---)))
von: kurt kl
Geschrieben am: 04.05.2015 18:39:40
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

Bild

Betrifft: Nur das löschen klappt nicht
von: kurt kl
Geschrieben am: 03.05.2015 22:07:27
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

Bild

Betrifft: So geht es, DANKE auch an Lupo1 --))
von: kurt kl
Geschrieben am: 02.05.2015 11:36:25
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

Bild

Betrifft: Union
von: lupo1
Geschrieben am: 02.05.2015 11:11:36


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


Bild

Betrifft: Leider Fehlermeldung
von: kurt kl
Geschrieben am: 02.05.2015 11:33:15
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

Bild

Betrifft: AW: Intersect(mehrere Bereiche)
von: Gerd L
Geschrieben am: 02.05.2015 11:58:26
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

Bild

Betrifft: Super das geht auch Danke ! aber ich ...
von: kurt kl
Geschrieben am: 02.05.2015 12:19:53
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

 Bild

Beiträge aus den Excel-Beispielen zum Thema "mehrere Spalten selectieren"