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

Sortiervorgang ist sichtbar

Sortiervorgang ist sichtbar
mike49
Hallo zusammen,
in meiner Arbeitsmappe sind die Module "Linie" und "ModSortierung". Nach erflgtem Eintrag wird nach Betätigung der Return-Taste die Sortierung am Bildschirm sichtbar. Das sollte nicht sein. Was ist hier fehlerhaft?
Modul "Linie":
Option Explicit
Sub LinieSetzen()
Application.ScreenUpdating = False
Dim LoLetzte As Long
Dim Loi As Long
' letzte belegte Zeile unabhängig von Excelversion für Spalte A (1)
LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
For Loi = LoLetzte To 4 Step -1
If Loi = LoLetzte And Cells(LoLetzte, 2) "" Then
With Range("A" & Loi & ":H" & Loi).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.Weight = xlThin
End With
ElseIf Month(Cells(Loi, 2)) Month(Cells(Loi - 1, 2)) Then
With Range("A" & Loi - 1 & ":H" & Loi - 1).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.Weight = xlMedium
End With
ElseIf Cells(Loi, 2) = "" And Cells(Loi - 1, 2) "" Then
With Range("A" & Loi - 1 & ":H" & Loi - 1).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.Weight = xlThin
End With
Else
Range("A" & Loi - 1 & ":H" & Loi - 1).Borders(xlEdgeBottom).LineStyle = xlNone
End If
Next Loi
Application.ScreenUpdating = True
End Sub
Modul "ModSortierung":
Option Explicit
Public intZeilen As Integer
Sub Orte_sortieren()
Application.ScreenUpdating = False
'Zeilen in der Tabelle.
intZeilen = ActiveSheet.Range("A3").SpecialCells(xlLastCell).Row
'// Alle Orte nach Datum sortieren.
Sortiere_alle_Orte_nach_Datum
'// 1. Ort nach Datum + Uhrzeit sortieren.
Sortiere_Ort_1_nach_Datum_Uhrzeit
'// Letzten Ort (2 komplette Spalten) nach vorn verschieben.
Verschiebe_Spalten
'// Neuen 1. Ort nach Datum + Uhrzeit sortieren.
Sortiere_Ort_1_nach_Datum_Uhrzeit
'// Erneut: Letzten Ort (2 komplette Spalten) nach vorn verschieben.
Verschiebe_Spalten
'// Erneut: Neuen 1. Ort nach Datum + Uhrzeit sortieren.
Sortiere_Ort_1_nach_Datum_Uhrzeit
'// Abschließend: Letzten Ort wieder nach vorn verschieben.
Verschiebe_Spalten
'// Druckbereich.
'Benutzte Zeilen in der Tabelle.
intZeilen = ActiveSheet.Range("B2").End(xlDown).Row
ActiveSheet.PageSetup.PrintArea = "$A$1:$H$" & intZeilen
'// Variablen zurücksetzen.
intZeilen = 0
Application.ScreenUpdating = True
End Sub
Private Sub Verschiebe_Spalten()
Application.ScreenUpdating = False
With ActiveSheet
.Columns("G:H").Cut
.Columns("C:C").Insert Shift:=xlToRight
End With
Application.ScreenUpdating = True
End Sub
Private Sub Sortiere_alle_Orte_nach_Datum()
Application.ScreenUpdating = False
With ActiveSheet
.Range("A3:H" & intZeilen).Sort _
Key1:=Range("B3"), _
Order1:=xlAscending, _
Header:=xlNo, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
End With
Application.ScreenUpdating = True
End Sub
Private Sub Sortiere_Ort_1_nach_Datum_Uhrzeit()
Application.ScreenUpdating = False
With ActiveSheet
.Range("A3:D" & intZeilen).Sort _
Key1:=Range("B3"), _
Order1:=xlAscending, _
Key2:=Range("D3"), _
Order2:=xlAscending, _
Header:=xlNo, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
End With
Dim LoLetzte As Long
Dim Loi As Long
' letzte belegte Zeile unabhängig von Excelversion für Spalte A (1)
LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
Count)
For Loi = LoLetzte To 4 Step -1
If Loi = LoLetzte And Cells(LoLetzte, 2)  "" Then
With Range("A" & Loi & ":H" & Loi).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.Weight = xlThin
End With
ElseIf Month(Cells(Loi, 2))  Month(Cells(Loi - 1, 2)) Then
With Range("A" & Loi - 1 & ":H" & Loi - 1).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.Weight = xlMedium
End With
ElseIf Cells(Loi, 2) = "" And Cells(Loi - 1, 2)  "" Then
With Range("A" & Loi - 1 & ":H" & Loi - 1).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.Weight = xlThin
End With
Else
Range("A" & Loi - 1 & ":H" & Loi - 1).Borders(xlEdgeBottom).LineStyle = xlNone
End If
Next Loi
Application.ScreenUpdating = True
End Sub

Freundliche Grüße
mike49

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Sortiervorgang ist sichtbar
22.01.2010 13:45:38
Rudi
Hallo,
du solltest Application.Screenupdating nur in den aufrufenden Prozeduren setzen.
Gruß
Rudi
AW: Sortiervorgang ist sichtbar
22.01.2010 13:55:25
mike49
Hallo Rudi,
danke, dass du dich der Sache angenommen hast. Leider kenne ich mich in VBA nicht so gut aus und weiß deshalb nicht, was gemeint ist. Beim Erstellen der Makros wurde mir im Forum von den fleißigen Helfern geholfen. Danke nochmals allen Helfern. Könntest du mir vielleicht genauer sagen, was in meinen Makros weg bzw. dazu muss?
Gruß
mike49
AW: Sortiervorgang ist sichtbar
22.01.2010 14:46:00
Rudi
Hallo,
Nach erflgtem Eintrag wird nach Betätigung der Return-Taste 

lässt darauf schließen, dass du irgendwas per Worksheet_Change-Prozedur anstößt.
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
MeineProzedur
NochNeProzedur
Application.ScreenUpdating = False
End Sub
Aus MeineProzedur, NochNeProzedur solltest du alle Application.ScreenUpdating-Anweisungen entfernen.
Ansonsten: Geh die Codes mit F8 durch und schau, wann wo was an- und abgeschaltet wird.
Gruß
Rudi
Anzeige
Danke dir. Klappt jetzt . . .
22.01.2010 18:22:14
mike49
Freundliche Grüße
mike49

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige