Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1540to1544
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

Zwei Prozeduren mit Sortierungsanweisung

Zwei Prozeduren mit Sortierungsanweisung
19.02.2017 16:36:27
Sascha
Hallo Excel Novizen und Profis,
ich stolpere aktuell über das Problem, dass ich partou keine zwei Sortierungsanweisungen in meinem Projekt nutzen kann.
Ich habe ursprünglich innerhalb einer Prozedur zwei verschiedene Worksheets angesteuert, ggf. einen Wert in der ersten Spalte hinzugefügt und anschließend den Bereich der ersten Spalte des jeweiligen Sheets neu sortieren lassen.
Wenn ich nur eine der Sortierungsanweisungen benutze und die andere auskommentiere, funktioniert alles wunderbar. Beide funktionieren aber nicht... Mittlerweile habe ich beide Anweisungsabfolgen schon in einzelne Prozeduren überführt und die Sortierungsanweisungen auf das Minimum gekürzt. Dennoch knappt es einfach nicht. Ich bekomme beim Ausführen immer den Fehler:
"Die Sort-Methode des Range-Objektes konnte nicht ausgeführt werden." - Laufzeitfehler 1004
Vielleicht habt ihr ja eine Idee, was die Ursache sein könnte? Danke schonmal für eure Ideen =)
Hier die beiden Prozeduren (die MessageBoxes sind nur für mich zur Fehlerfindung, auch wenn sie nichts gebracht haben ^^):
Private Sub ZutatenNeueZutat()
'Worksheet setzen
Set WS_Zutaten = ActiveWorkbook.Worksheets("Zutaten")
'Letzte befüllte Zeile finden
VarZutatenMax = WS_Zutaten.Range("A500").End(xlUp).Row
'Prüfung ob Zutat bereits gelistet
VarX = 1
VarY = False
For VarX = 1 To VarZutatenMax
If WS_Zutaten.Cells(VarX, 1).Value = UF_NeuesRezept.Controls.Item("Zutat" & VarZeile). _
Value Then
MsgBox ("Zutat " & UF_NeuesRezept.Controls.Item("Zutat" & VarZeile).Value & "  _
bereits eingetragen: " & VarX)
VarY = True
VarX = VarZutatenMax
End If
Next
'Zutat anfügen, wenn noch nicht vorhanden; dann neu sortieren
If VarY = False Then
MsgBox ("Zutat " & UF_NeuesRezept.Controls.Item("Zutat" & VarZeile).Value & " noch  _
nicht vorhanden: " & VarX)
WS_Zutaten.Cells(VarX, 1).Value = UF_NeuesRezept.Controls.Item("Zutat" & VarZeile). _
Value
WS_Zutaten.Range("A1:A" & VarZutatenMax + 1).Sort Order1:=1
End If
End Sub
Private Sub EinheitenNeueEinheit()
'Worksheet setzen
Set WS_Einheiten = ActiveWorkbook.Worksheets("Einheiten")
'Letzte befüllte Zeile finden
VarEinheitenMax = WS_Einheiten.Range("A25").End(xlUp).Row
'Prüfung ob Einheit bereits gelistet
VarX = 1
VarY = False
MsgBox ("VarEinheitenMax: " & VarEinheitenMax & " - VarX: " & VarX & " - VarY: " & VarY)
For VarX = 1 To VarEinheitenMax
If WS_Einheiten.Cells(VarX, 1).Value = UF_NeuesRezept.Controls.Item("Einheit" &  _
VarZeile).Value Then
MsgBox ("Einheit " & UF_NeuesRezept.Controls.Item("Einheit" & VarZeile).Value & "  _
bereits eingetragen: " & VarX)
VarY = True
VarX = VarEinheitenMax
End If
Next
'Einheit anfügen, wenn noch nicht vorhanden; dann neu sortieren
If VarY = False Then
MsgBox ("Einheit " & UF_NeuesRezept.Controls.Item("Einheit" & VarZeile).Value & " noch  _
nicht vorhanden: " & VarX)
WS_Einheiten.Cells(VarX, 1).Value = UF_NeuesRezept.Controls.Item("Einheit" & VarZeile). _
Value
WS_Einheiten.Range("A1:A" & VarEinheitenMax + 1).Sort Order1:=1
End If
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zwei Prozeduren mit Sortierungsanweisung
19.02.2017 18:09:59
Michael
Hi,
ich habe mal etwas aufgeräumt:
Sub ZutatenNeueZutat()
Dim c As Range
Dim maxZ As Long ' unterste, vorh. Zeile
Dim suchMich As String
' Bei Dir dann *************:
' suchMich = UF_NeuesRezept.Controls.Item("Zutat" & VarZeile).Value
With Worksheets("Zutaten")
' bei mir schnell aus dem Blatt *************:
suchMich = .Range("E2").Value
maxZ = .Range("A" & .Rows.Count).End(xlUp).Row
Set c = .Range("A1:A" & maxZ).Find _
(what:=suchMich, LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
MsgBox "Zutat " & suchMich & " bereits eingetragen: " & c.Row
Else
.Cells(maxZ + 1, 1).Value = suchMich
.Range("A1:A" & maxZ + 1).Sort key1:=.Range("A1"), Order1:=xlAscending, Header:=True
End If
End With
End Sub

Datei: https://www.herber.de/bbs/user/111583.xlsm
Schöne Grüße,
Michael
Anzeige
AW: Zwei Prozeduren mit Sortierungsanweisung
19.02.2017 20:49:33
Sascha
Vielen Dank Michael, ich werde das mal ausprobieren.
Aber an der Sortierung selbst hat sich ja nichts groß getan? Excel hat mir diese immer als die Ursache für das Problem angekreidet. Kannst du dir erklären warum? (Nicht, dass ich dich hier zur Fehlersuche in meinem Stümper Code verdonnern will ;P )
Ich melde mich, wenn ich das morgen mal getestet habe.
Danke nochmals und gute Nacht.
Zwei Prozeduren mit Sortierungsanweisung
20.02.2017 16:32:17
Michael
Hi,
ich habe das mangels Beispieldatei nicht im Einzelnen überprüft - kann sein, daß es am fehlenden key1 gelegen hat.
Gruß,
M.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige