Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
632to636
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
632to636
632to636
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Dynamisch sortieren?

Dynamisch sortieren?
07.07.2005 10:49:49
vic
Hallo Leute,
ich habe eine tabelle mit ca. 50 kunden(=50 zeilen).
nun bearbeite ich calls, und wenn diese erledigt sind, gebe ich das heutige datum ein ("strg"+".").
1)jetzt möchte ich, dass die zeile mit dem aktuellsten datum sofort nach "Return" nach ganz unten verschoben wird. ist das realisierbar?
das älteste datum soll folglich ganz oben stehen.
kann mir einer helfen? ich habe leider keinerlei vba kenntnisse.
2)in spalte 1 habe ich eine art erledigt-oder-nicht? eingefügt. wird nun ein "e" in die entsprechende zeile des kunden getippt, verändert sich der hintergrund der zeile von rot auf weiss (bedingte formatierung). ist es evtl. möglich mithilfe der bed. formatierung auch automatisch das heutige datum in die entsprechende spalte beim kunden einzutragen?
danke im voraus!!

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dynamisch sortieren?
07.07.2005 11:56:21
Harald
Hi Vic,
da wirst Du um vba nicht rumkommen.
Einen Ansatz hätte ich schon, aber da Du keine vba-Kenntnisse hast, muss wohl eine Fertig-Lösung her. Dazu sollte ich wissen in welche Spalte das Datum soll und bis zu welcher Spalte die Tabelle gefüllt ist.
Gruß
Harald
AW: Dynamisch sortieren?
07.07.2005 14:59:36
vic
ok. dann muss ich vba installieren oder?
spalten sind gefüllt von a bis einschließlich h.
das datum steckt in spalte e.
AW: Dynamisch sortieren?
07.07.2005 15:42:36
Harald
Hi Vic,
vba ist fester Bestandteil von Excel und die Tastenkombi Alt+F11 hat erhebliches Suchtpotential ;-))
Deine Lösung hab ich fertig bis auf die Anpassung der Spalten. Nur sitz ich bereits zuhause und deine Lösung schlummert im Firmen-PC.
Wenn es nicht zu sehr eilt, würde ich dir den Lösungsansatz mit Erklärung morgen früh reinstellen.
Gruß
Harald
Anzeige
AW: Dynamisch sortieren?
08.07.2005 08:52:47
vic
Was? du hast das ganze schon fertig?
Wie geil!!
Das mit alt+f11 habe ich auch nicht gewusst. hört sich sehr interessant an.
Ich programmiere auch recht gerne (java in der schule/ausbildung).
Ich glaube, ich sollte mich ein bisschen mit visual basic vertraut machen :)
AW: Dynamisch sortieren?
08.07.2005 10:59:03
Harald
Hi Vic,
sorry, hat etwas gedauert.
Teste die Sache erstmal an einer Kopie !!!!
Wegen der Sortierung solltest Du in Spalte A e für erledigt und z.B. o für offen eintragen.
Bedingte Formatierung auf o ( rote Zelle und wenn du rote Schrift anwählst, ist das o auch nicht zu sehen)
So...geht los ;-))
2 Möglichkeiten
1.
-rechte Maustaste auf den betreffenden Tabellenreiter links unten (z.B. Tabelle1)
-Code anzeigen
-untenstehenden Code ins große, weiße rechte Code-Fenster kopieren
2.
-Alt+F11
-links oben im Projektexplorer deine Mappe aufklicken und das betreffende Blatt aufklicken
- Code ins große, weiße rechte Code-Fenster kopieren
Zurück ins Blatt, speichern...fertich.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim RaBereich As Range
'Ausstiegskriterien
If Target.Row < 2 Or Target.Count > 1 Or Target.Column > 1 Then Exit Sub
If Target.Value <> "e" Then Exit Sub
'Gültigkeitsbereich
Set RaBereich = Range("A2:A50")
'unerwünschte Aktionen ausschließen
Application.EnableEvents = False
'Datum nach Spalte E
If Not Intersect(Target, RaBereich) Is Nothing Then
Target.Offset(0, 4) = Date
End If
Application.EnableEvents = True
Set RaBereich = Nothing
'sortieren
Range("A1:I50").Sort Key1:=Range("A2"), Order1:=xlDescending, Key2:=Range( _
"E2"), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase _
:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal
End Sub

Es handelt sich um eine Ereignisprozedur die nur in "ihrem" Blatt ausgelöst werden kann.
Auslöser in diesem Fall, ist ein Eingabeprozess.
Der Code steigt aus, wenn
- Eingabe in erster Zeile oder nicht in erster Spalte
- mehr als eine Zelle aktiviert ist
- kein e eingetragen wird
Aktion:
Datumseintrag in gleicher Zeile aber 4 Spalten weiter (Spalte E)
Sortiert "e" Einträge nach unten (neuestes Tagesdatum in letzte Zeile(n) )
Na...hoffentlich klappts ;-))
Kleiner Tipp, ob der Chef nen vba-Kurs zahlt oder nicht, nimm dir die Excel-CD von Herber.
Bin kein Werbeträger oder so. Ich finde diese CD deckt einiges ab.
Gruß
Harald
Anzeige
AW: Dynamisch sortieren?
08.07.2005 15:13:19
vic
wow!!
hammerhart. funktioniert (fast) so wie ich es haben will!!
hast mir sehr geholfen.
habe noch ein paar wünsche :)
kann ich den bereich spalte a bis inkl. h bedingt formatieren(in abhängigkeit von spalte A !!)? sinn und zweck: wenn in spalte A: "o" steht, soll der ganze zeilenbereich rot unterlegt sein. bei "e" weiss. geht das?
ich hatte es bisher mit Istleer($a3) formatiert gehabt. wenn ich das "o" benutze geht das natürlich nicht mehr. wie kann ich einfach abfragen ob der wert der zelle "o" oder "e" ist, und wie kann ich dann die jeweilige formatierung zuweisen?
AW: Dynamisch sortieren?
08.07.2005 16:58:03
Harald
Schön, dass es klappt. Bin schon wieder zuhause und hab nur grad händisch was gebastelt.
Ich glaub da würd jeder vba-Profi was anne Erbse kriegen ;-))
Hab jetzt Wochenende. Falls der Thread am Montag noch da sein sollte, werd ich versuchen eine fachmännischere Lösung auszuarbeiten.
Schönes WE

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim RaBereich As Range
Dim d As Range
Dim i As Integer
Call Farbe
'Ausstiegskriterien
If Target.Row < 2 Or Target.Count > 1 Or Target.Column > 1 Then Exit Sub
If Target.Value <> "e" Then
Exit Sub
End If
'Gültigkeitsbereich
Set RaBereich = Range("A2:A50")
'unerwünschte Aktionen ausschließen
Application.EnableEvents = False
'Datum nach Spalte E
If Not Intersect(Target, RaBereich) Is Nothing Then
Target.Offset(0, 4) = Date
End If
Application.EnableEvents = True
Set RaBereich = Nothing
Call Farbe
'sortieren
Range("A1:I50").Sort Key1:=Range("A2"), Order1:=xlDescending, Key2:=Range( _
"E2"), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase _
:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal
End Sub

Sub Farbe()
For i = 1 To 50
If Cells(i, 1).Value = "o" Then
Range("A" & i & ":I" & i).Interior.ColorIndex = 3
Else
Range("A" & i & ":I" & i).Interior.ColorIndex = xlNone
End If
Next i

End Sub
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige