Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Werte löschen in 30 TABS's, per Schleife

Werte löschen in 30 TABS's, per Schleife
15.01.2015 12:39:20
Dieter(Drummer)
Guten Tag, Makro Spezialisten,
ich möchte in den 30 TAB's "VeraBsV01)und den TAB's "VeraV02" bis "VeraV30" Werte löschen. Die zu löschenden Werte sind in allen TAB's in den gleichen Zelladressen.
Bisher rufe ich im Makro jeden TAB einzeln auf und lösche die Werte in der Tabelle und dies dann 30 mal.
Mein bisheriger Code ist:
  • 'Jahresaltwerte löschen
    Sub MgJahrWertRaus()
    Application.ScreenUpdating = False
    Windows("RabVeraMg.xls").Activate
    'VeraBsV01
    Sheets("VeraBsV01").Select
    Application.xlAutomatic = False 'Berechnungsautomatic aus
    'Löschen Altwerte
    Range( _
    "B16:B45,B49:B77,B81:B111,B115:B145,B148:B178,B182:B212,B215:B245,B249:B279,B283:B312,B316:B346,B350:B380,B383:B413" _
    ).Select
    Selection.ClearContents
    Range("A2").Select
    'VeraV02
    Sheets("VeraV02").Select
    Application.xlAutomatic = False 'Berechnungsautomatic aus
    Range( _
    "B16:B45,B49:B77,B81:B111,B115:B145,B148:B178,B182:B212,B215:B245,B249:B279,B283:B312,B316:B346,B350:B380,B383:B413" _
    ).Select
    Selection.ClearContents
    Range("A2").Select

  • usw. bis "VeraV30".
    Kann man das nicht per Schleife durch alle 30 TAB's machen, da ja alle zu löschenden Werte in jedem Tab, in der gleichen Zelladresse gelöchet werden sollen?
    Wäre schön, wenn mir da geholfen werden kann.
    Gruß,
    Dieter(Drummer)

    Anzeige

    12
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Werte löschen in 30 TABS's, per Schleife
    15.01.2015 12:43:07
    Rudi
    Hallo,
    Ohne Select!!!
    Schema:
    for i=2 to 30
    Sheets("verav" &Format(i,"00").Range(....).clearcontents
    nexti
    

    Gruß
    Rudi

    AW: Sehe ich das richtig, dass
    15.01.2015 12:57:12
    Dieter(Drummer)
    Danke Rudi für Deine Rückmeldung.
    An welcher Stelle des Makros muss ich den Deine Angaben einfügen, da ja die erste Tabelle "VeraBsV01" heißt und dann erst die nächsten Tabellen "VeraV02" bis "VeraV30"?
    Gruß, Dieter(Drummer)

    Anzeige
    AW: Sehe ich das richtig, dass
    15.01.2015 13:12:40
    Rudi
    Hallo,
    nach dem Löschen in VeraBSV01.
    Sub MgJahrWertRaus()
    Dim i As Integer
    Const sRange As String = _
    "B16:B45,B49:B77,B81:B111,B115:B145,B148:B178,B182:B212," _
    & "B215:B245,B249:B279,B283:B312,B316:B346,B350:B380,B383:B413"
    With Application
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
    End With
    With Workbooks("RabVeraMg.xls")
    .Sheets("VeraBsV01").Range(sRange).ClearContents
    For i = 2 To 30
    .Sheets("VeraV" & Format(i, "00")).Range(sRange).ClearContents
    Next i
    End With
    Application.Calculation = xlCalculationAutomatic
    End Sub
    

    Gruß
    Rudi

    Anzeige
    AW: Danke Rudi, einfach perfekt!
    15.01.2015 13:22:38
    Dieter(Drummner)
    Gruß, Dieter(Drummer)

    AW: @Rudi: Makro hängt bei ...
    15.01.2015 14:58:32
    Dieter(Drummer)
    Hallo Rudi,
    dieses Makro rufe ich auf und dann bleibt es bei:
    .Sheets("VeraBsV01").Range(sRange).ClearContents
    leider hängen mit Markierung gelb.
    Du siehst, dass ich die zu löschenden Zellen erweitert habe, aber da wird es wohl nicht dran liegen.
    Die Datei "RabVeraMg.xls" ist geladen.
    Hier das gesamte Makro:
  • 
    Sub MgJahrWertRaus()
    Dim i As Integer
    Const sRange As String = _
    "B16:B45,B49:B77,B81:B111,B115:B145,B148:B178,B182:B212," _
    & "B215:B245,B249:B279,B283:B312,B316:B346,B350:B380,B383:B413," _
    & "D16:D45,D49:D77,D81:D111,D115:D145,D148:D178,D182:D212," _
    & "D215:D245,D249:D279,D283:D312,D316:D346,D350:D380,D383:D413," _
    & "F16:F45,F49:F77,F81:F111,F115:F145,F148:F178,F182:F212," _
    & "F215:F245,F249:F279,F283:F312,F316:F346,F350:F380,F383:F413," _
    & "H16:H45,H49:H77,H81:H111,H115:H145,H148:H178,H182:H212," _
    & "H215:H245,H249:H279,H283:H312,H316:H346,H350:H380,H383:H413," _
    & "J16:J45,J49:J77,J81:J111,J115:J145,J148:J178,J182:J212," _
    & "J215:J245,J249:J279,J283:J312,J316:J346,J350:J380,J383:J413," _
    & "L16:L45,L49:L77,L81:L111,L115:L145,L148:L178,L182:L212," _
    & "L215:L245,L249:L279,L283:L312,L316:L346,L350:L380,L383:L413"
    With Application
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
    End With
    With Workbooks("RabVeraMg.xls")
    .Sheets("VeraBsV01").Range(sRange).ClearContents
    For i = 2 To 30
    .Sheets("VeraV" & Format(i, "00")).Range(sRange).ClearContents
    Next i
    End With
    Application.Calculation = xlCalculationAutomatic
    End Sub
    

  • Wäre schön wenn Du nochmal helfen kannst.
    Gruß, Dieter(Drummer)

    Anzeige
    AW: Zuviele zu löschende Zellen?
    15.01.2015 18:16:01
    Dieter(Drummer)
    Hi Spezialisten,
    Dieses Makro läuft ohne Probleme und es werden Zellen nur in B und D gelöscht:
  • 
    Sub MgJahrWertRaus()
    Dim i As Integer
    Const sRange As String = _
    "B16:B45,B49:B77,B81:B111,B115:B145,B148:B178,B182:B212," _
    & "B215:B245,B249:B279,B283:B312,B316:B346,B350:B380,B383:B413," _
    & "D16:D45,D49:D77,D81:D111,D115:D145,D148:D178,D182:D212," _
    & "D215:D245,D249:D279,D283:D312,D316:D346,D350:D380,D383:D413"
    With Application
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
    End With
    With Workbooks("RabVeraMg.xls")
    .Sheets("VeraBsV01").Range(sRange).ClearContents
    For i = 2 To 30
    .Sheets("VeraV" & Format(i, "00")).Range(sRange).ClearContents
    Next i
    End With
    Application.Calculation = xlCalculationAutomatic
    End Sub
    

  • Wenn ich diese Variante laufen lasse, bleibt das Makro hängen (fette Zeile):
  • 
    Sub MgJahrWertRaus()
    Dim i As Integer
    Const sRange As String = _
    "B16:B45,B49:B77,B81:B111,B115:B145,B148:B178,B182:B212," _
    & "B215:B245,B249:B279,B283:B312,B316:B346,B350:B380,B383:B413," _
    & "D16:D45,D49:D77,D81:D111,D115:D145,D148:D178,D182:D212," _
    & "D215:D245,D249:D279,D283:D312,D316:D346,D350:D380,D383:D413," _
    & "F16:F45,F49:77,F81:F111,F115:F145,F148:F178,F182:F212," _
    & "F215:F245,F249:F279,F283:F312,F316:F346,F350:F380,F383:F413"
    With Application
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
    End With
    With Workbooks("RabVeraMg.xls")
    .Sheets("VeraBsV01").Range(sRange).ClearContents
    For i = 2 To 30
    .Sheets("VeraV" & Format(i, "00")).Range(sRange).ClearContents
    Next i
    End With
    Application.Calculation = xlCalculationAutomatic
    End Sub
    

  • Was ist da falsch?
    Mit der Bitte um weitere Hilfe.
    Gruß, Dieter(Drummer)

    Anzeige
    AW: Zuviele zu löschende Zellen?
    15.01.2015 18:45:53
    Rudi
    Hallo,
    das sind wohl zu viele Bereiche.
    Sub MgJahrWertRaus()
    Dim i As Integer, j As Integer
    Const sRange As String = _
    "B16:B45,B49:B77,B81:B111,B115:B145,B148:B178,B182:B212," _
    & "B215:B245,B249:B279,B283:B312,B316:B346,B350:B380,B383:B413"
    With Application
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
    End With
    With Workbooks("RabVeraMg.xls")
    .Sheets("VeraBsV01").Range(sRange).ClearContents
    For i = 2 To 30
    For j = 0 To 4 Step 2
    .Sheets("VeraV" & Format(i, "00")).Range(sRange).Offset(, j).ClearContents
    Next j
    Next i
    End With
    Application.Calculation = xlCalculationAutomatic
    End Sub
    

    Gruß
    Rudi

    Anzeige
    AW: Danke Rudi, das hab ich mir ...
    15.01.2015 18:53:43
    Dieter(Drummer)
    schon gedacht.
    Ich nehme halt mehrere Makros, die jeweils nur 2 Spaltenbereiche löschen, so muss ich halt drei Makros nehmen, um insgesamt 6 Spaltenbereiche zu löschen.
    Schade, aber da kann man wohl nichts machen.
    Danke und Gruß,
    Dieter(Drummer)

    AW: Danke Rudi, das hab ich mir ...
    15.01.2015 19:00:56
    Rudi
    Hallo,
    man kann schon was machen.
    Eine Lösung für B, D, F hab ich dir ja geschickt.
    Gruß
    Rudi

    Anzeige
    AW: Rudi, hab's jetzt so gelöst und es geht
    15.01.2015 19:07:36
    Dieter/Drummer)
    Danke Rudi, da komm ich schon mit klar.
    Gruß, Dieter(Drummer)
    'von Rudi Maintaire am 15.01.2015 13:12:40
    'MgV01 Jahresaltwerte löschen
    Sub MgJahrWertRaus1()
    Dim i As Integer
    Const sRange As String = _
    "B16:B45,B49:B77,B81:B111,B115:B145,B148:B178,B182:B212," _
    & "B215:B245,B249:B279,B283:B312,B316:B346,B350:B380,B383:B413," _
    & "D16:D45,D49:D77,D81:D111,D115:D145,D148:D178,D182:D212," _
    & "D215:D245,D249:D279,D283:D312,D316:D346,D350:D380,D383:D413"
    With Application
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
    End With
    With Workbooks("RabVeraMg.xls")
    .Sheets("VeraBsV01").Range(sRange).ClearContents
    For i = 2 To 30
    .Sheets("VeraV" & Format(i, "00")).Range(sRange).ClearContents
    Next i
    End With
    'Application.Calculation = xlCalculationAutomatic
    Call MgJahrWertRaus2
    End Sub
    Sub MgJahrWertRaus2()
    Dim i As Integer
    Const sRange As String = _
    "F16:F45,F49:F77,F81:F111,F115:F145,F148:F178,F182:F212," _
    & "F215:F245,F249:F279,F283:F312,F316:F346,F350:F380,F383:F413," _
    & "H16:H45,H49:H77,H81:H111,H115:H145,H148:H178,H182:H212," _
    & "H215:H245,H249:H279,H283:H312,H316:H346,H350:H380,H383:H413"
    With Application
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
    End With
    With Workbooks("RabVeraMg.xls")
    .Sheets("VeraBsV01").Range(sRange).ClearContents
    For i = 2 To 30
    .Sheets("VeraV" & Format(i, "00")).Range(sRange).ClearContents
    Next i
    End With
    'Application.Calculation = xlCalculationAutomatic
    Call MgJahrWertRaus3
    End Sub
    Sub MgJahrWertRaus3()
    Dim i As Integer
    Const sRange As String = _
    "J16:J45,J49:J77,J81:J111,J115:J145,J148:J178,J182:J212," _
    & "J215:J245,J249:J279,J283:J312,J316:J346,J350:J380,J383:J413," _
    & "L16:L45,L49:L77,L81:L111,L115:L145,L148:L178,L182:L212," _
    & "L215:L245,L249:L279,L283:L312,L316:L346,L350:L380,L383:L413"
    With Application
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
    End With
    With Workbooks("RabVeraMg.xls")
    .Sheets("VeraBsV01").Range(sRange).ClearContents
    For i = 2 To 30
    .Sheets("VeraV" & Format(i, "00")).Range(sRange).ClearContents
    Next i
    End With
    Application.Calculation = xlCalculationAutomatic
    End Sub
    

    Anzeige
    AW: Rudi, hab's jetzt so gelöst und es geht
    15.01.2015 19:22:44
    Rudi
    Hallo,
    da die Bereiche alle nebeneinande liegen, musst du nur meinen letzen Code nehmen und die Schleife in
    For j=0 to 8 Step 2
    ändern.
    Dann brauchst du nur 1 Code.
    Gruß
    Rudi

    AW: Rudi, mit der Umsetzung bin ich ...
    15.01.2015 20:20:46
    Dieter(Drummer
    leider überfordert. Da reicht mein Wissenstand nicht.
    Wäre natürlich toll, wenn Du das noch für mich einbauen könntest.
    Gruß, Dieter(Drummer)
    Anzeige
    ;

    Forumthreads zu verwandten Themen

    Anzeige
    Entdecke relevante Threads

    Schau dir verwandte Threads basierend auf dem aktuellen Thema an

    Alle relevanten Threads mit Inhaltsvorschau entdecken
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Entdecke mehr
    Finde genau, was du suchst

    Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

    Suche nach den besten Antworten
    Unsere beliebtesten Threads

    Entdecke unsere meistgeklickten Beiträge in der Google Suche

    Top 100 Threads jetzt ansehen
    Anzeige