Thema Datum  Von Nutzer Rating
Antwort
19.09.2017 17:56:23 Danni
NotSolved
19.09.2017 21:15:19 Werner
***
NotSolved
19.09.2017 22:00:43 Gast84199
NotSolved
19.09.2017 22:35:02 Werner
NotSolved
19.09.2017 22:45:42 Gast59844
NotSolved
Blau Schleife für ca 300 Tabellen
20.09.2017 00:23:44 Werner
*****
Solved
21.09.2017 05:43:33 Gast4930
NotSolved
21.09.2017 15:38:36 Gast77111
NotSolved
22.09.2017 11:01:24 Werner
NotSolved

Ansicht des Beitrags:
Von:
Werner
Datum:
20.09.2017 00:23:44
Views:
693
Rating: Antwort:
 Nein
Thema:
Schleife für ca 300 Tabellen

Hallo Danni,

mal was Grundsätzliches: Verbundene Zellen sind Schrott, die machen nur Theater. Die braucht kein Mensch. Wenn du die gleiche Optik wie bei verbundenen Zellen haben willst, dann schreib mal etwas in Zelle A1. Dann A1 bis C1 markieren, Rechtsklick, Zellen formatieren, Ausrichtung, Horizontal, über Auswahl zentrieren. Ergebnis, gleiche Optik wie bei verbundenen Zellen, aber ohne die Probleme von verbundenen Zellen.

Und jetzt zum Code:

Bei verbundenen Zellen muss ich mit einer Schleife über alle Zellen des jeweiligen Arbeitsblattes laufen, die Zelle dann jeweils prüfen ob es sich um eine verbundene Zelle handelt und wenn ja, dann die Zeile löschen.

Und das bei 300 Blättern. Wie groß dein Datenbereich in den einzelnen Blättern ist, weiß ich nicht.

Von daher kann ich dir auch nicht sagen, ob das Geschwindigkeitsmäßig in Ordnung ist. Teste mal.

Option Explicit

Public Sub Test()
Dim loZeile As Long, loSpalte As Long
Dim raBereich As Range, raBereich1 As Range, raZelle As Range
Dim ws As Worksheet

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

For Each ws In ThisWorkbook.Worksheets
    With ws.UsedRange
        loZeile = .Rows.Count
        loSpalte = .Columns.Count
        Set raBereich = .Range(.Cells(2, 1), .Cells(loZeile, loSpalte))
            For Each raZelle In raBereich
                If raZelle.MergeCells = True Then
                    raZelle.EntireRow.Delete
                End If
            Next raZelle
        Set raBereich1 = .Range(.Cells(1, 5), .Cells(loZeile, 5))
        raBereich1.FormulaLocal = "=WENNFEHLER(SVERWEIS(A1;A:B;2;Falsch);"""")"
        raBereich1.Value = raBereich1.Value
        .Range("C:D").EntireColumn.Delete
    End With
Next ws

Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True

Set raBereich = Nothing
Set raBereich1 = Nothing
End Sub

 

Gruß Werner


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
19.09.2017 17:56:23 Danni
NotSolved
19.09.2017 21:15:19 Werner
***
NotSolved
19.09.2017 22:00:43 Gast84199
NotSolved
19.09.2017 22:35:02 Werner
NotSolved
19.09.2017 22:45:42 Gast59844
NotSolved
Blau Schleife für ca 300 Tabellen
20.09.2017 00:23:44 Werner
*****
Solved
21.09.2017 05:43:33 Gast4930
NotSolved
21.09.2017 15:38:36 Gast77111
NotSolved
22.09.2017 11:01:24 Werner
NotSolved