Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Sortierung in Mehreren Arbeitsblättern

Sortierung in Mehreren Arbeitsblättern
07.06.2023 14:47:16
WunschPizza

Schönen Guten Tag Liebe Forumsfreunde,
ich bin auf ein Problem gestoßen und weiß nun leider selber nicht mehr weiter.
Ich Habe Eine Excel, welche ich als Datenbank verwende, diese Besitzt eine mir Unbekannte Anzahl an Arbeitsblättern.
Die Arbeitsblätter in sich haben einen Ähnlichen Aufbau.
Aufgabe ist es, die Eintragungen Alphabetisch zu Sortieren und Anschließend werden diese mit einer Firmen Internen Nummer Gekennzeichnet.
Nun zu meinem Problem ab dem 2.Worksheet spuckt diese Zeile "ThisWorkbook.Worksheets(Index1).Range(Columns(2), Columns(20)).Sort key1:=Columns(2), Header:=xlGuess" immer einen Objekt oder anwendungsdefinierten Fehler. Unten Findet ihr den Gesamten Code.
Wo steckt mein Fehler ?
Ich danke euch schon Vorab für eure Hilfe.

Sub SortAndNumber()
'Variablen Deklaration
Dim Number As Integer
Dim IntNrMax As Double
Dim Index1 As String


'Startwerte
Number = 0
IntNrMax = 0

'Code
For Each Worksheet In ThisWorkbook.Worksheets
Index1 = Worksheet.Name
If Worksheet.Name > "RAM" Then
Number = WorksheetFunction.CountA(ThisWorkbook.Worksheets(Worksheet.Name).Columns(2)) - 1
Problem --> ThisWorkbook.Worksheets(Index1).Range(Columns(2), Columns(20)).Sort key1:=Columns(2), Header:=xlGuess
For x = 1 To Number
ThisWorkbook.Worksheets(Worksheet.Name).Cells(x + 1, 1).Value = x + IntNrMax
Next
IntNrMax = WorksheetFunction.Max(ThisWorkbook.Worksheets(Worksheet.Name).Columns(1))
End If
Next Worksheet
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sortierung in Mehreren Arbeitsblättern
07.06.2023 15:44:20
Nepumuk
Hallo,

so:

Public Sub SortAndNumber()
    'Variablen Deklaration
    Dim Number As Integer
    Dim IntNrMax As Double
    Dim Index1 As String
    Dim objWorksheet As Worksheet
    Dim x As Long

    'Startwerte
    Number = 0
    IntNrMax = 0

    'Code
    For Each objWorksheet In ThisWorkbook.Worksheets
        If objWorksheet.Name > "RAM" Then
            Number = WorksheetFunction.CountA(objWorksheet.Columns(2)) - 1
            With objWorksheet
                .Range(.Columns(2), .Columns(20)).Sort Key1:=.Cells(1, 2), Header:=xlGuess
            End With
            For x = 1 To Number
                objWorksheet.Cells(x + 1, 1).Value = x + IntNrMax
            Next
            IntNrMax = WorksheetFunction.Max(objWorksheet.Columns(1))
        End If
    Next
End Sub
Gruß
Nepumuk


Anzeige
AW: Sortierung in Mehreren Arbeitsblättern
07.06.2023 17:20:56
snb
Verzichte auf Variabele Namen die in VBA 'reserved" sind
Sub M_snb()
  For Each it  In ThisWorkbook.Worksheets
   If it.Name > "RAM" Then
     With it.usedrange
         .Sort it.cells(1,2),,,,,,,1
        .offset(1).resize(.rows.count)-1)=evaluate("row(" & n+1 &":" & n+.rows.count -1& ")")
   end if
  Next
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
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