Makro ändern ? Excel 2003

Hallo zusammen, versuche mal mein Anliegen zu beschreiben.
Dieses Makro wird verwendet.
Sub Makro1()

’ Makro1 Makro Klasse1
’ Makro am 25.06.2009 von * aufgezeichnet

’ Tastenkombination: Strg+r

Range(„A5:stuck_out_tongue:18“).Select
Selection.Sort Key1:=Range(„N5“), Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom
Range(„O5“).Select
End Sub

In der Spalte N5 sind die Summen mehrerer Spalten. Das Ergebnisse bei keinen Einträgen wird mit 0,000 angezeigt.
Das Sortieren von kleiner Zahl nach großer Zahl funktioniert. Nur sind leider immer die Spalten in denen das Ergebniss eben 0,000 bleibt am Anfang, also N5
Wie kann ich diese beim Sortieren ausklammern, damit es mir die Spalten mit Werten zuerst ab N5 sortiert und die Spalten ohne Werte mit dem Ergebniss 0,000 unten anhängt.
Hoffe mal es kommt so einigermaßen rüber.
Vielen Dank schon mal vorab.
Wolgö

Hallo Wolgo,

teste mal dieses makro:

Sub Makro1()
' Tastenkombination Strg+r
Range("A5P18").Sort Key1:=Range("N5"), Order1:=xlAscending, Header:=xlNo, \_
 OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("O5").Select
End Sub

Wie kann ich diese beim Sortieren ausklammern, damit es mir
die Spalten mit Werten zuerst ab N5 sortiert und die Spalten
ohne Werte mit dem Ergebniss 0,000 unten anhängt.

Sorry, bin müd. Kriegste es hin in einer Hilfsspalte mit
einer Formel wie
=wenn(Nx=0;1;0)
oder so ähnlich alle Zellen zu „markieren“ die 0,000 als Inhalt/Ergebnis haben?

Dann ist der Rest einfach. Du sortierst erst nach dieser Spalte dann nach den Werten wie vorher.
Wenn das funktioniert ist die Umsetzung nach Vba recht einfach.
Wenn es funktioniert zeige den aufgezeichneten Code des Makrorekoders.

Gruß
Reinhard

NACHTRAG
Ich meine natürlich das Sortieren in der Spalte N von 5-18
Das zuerst die Spalten mit addierten Werten angezeigt werden und die leeren Spalten in den das Ergebniss eben 0,000 bleibt unten angehängt werden.

Hallo Reinhard
Nö das Makro geht gar nicht. Und wenn ich zwischen („A5P18“)wieder den Doppelpunkt setze ist es gleich wie vorher.
Bin jetzt auch erst mal Platt und schaue morgen Abend wieder danach

Danke erstmal !!!

Nö das Makro geht gar nicht. Und wenn ich zwischen
(„A5P18“)wieder den Doppelpunkt setze ist es gleich wie
vorher.
Bin jetzt auch erst mal Platt und schaue morgen Abend wieder
danach

Hallo Wolgo,

naja, der Doppelpunkt entflutschte mir halt :smile:

Probiere es mal so, wenn Q5:Q18 frei sind.
Ggfs. die eine Codezeile so abändern:
Range(„Q5:Q18“).Formula = „=IF(N5>0,N5,MAX(N5:N18)+1)“

Sub Makro1()
' Tastenkombination Strg+r
Range("Q5:Q18").Formula = "=IF(N5\>0,N5,100000)"
Range("A5:Q18").Sort Key1:=Range("Q5"), Order1:=xlAscending, Header:=xlNo, \_
 OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("Q5:Q18").ClearContents
End Sub

Gruß
Reinhard

Hallo Reinhard

Erst mal danke für Deine Mühe und Unterstützung.
Ich bekomme es nicht hin. Bin auch nicht so der Excel Held.

Kann auch sein ich schreibe hier Nonsens oder bringe Dich auf die falsche Fährte.
Wenn Du möchtest kann ich Dir die Tabelle gerne Mailen.
Ist bis jetzt ein Entwurf und nicht geheim.
Bei Interesse kannst du Dich hier melden.

Viele Grüße
Wolfgang (mein Name)

EDIT
[MOD]Holger
Mailadresse auf Wunsch gelöscht

Kann auch sein ich schreibe hier Nonsens oder bringe Dich auf
die falsche Fährte.
Wenn Du möchtest kann ich Dir die Tabelle gerne Mailen.
Ist bis jetzt ein Entwurf und nicht geheim.
Bei Interesse kannst du Dich hier melden.

Hallo Wolfgang,

gehe bitte in die hiesige Brettbeschreibung und klicke auf den Bruefumschlag neben einem Mod-Namen und bitte um Löschung
deiner Mailadresse im Text.

Klicke auf FAQ:2606 und such die Webadresse von fileupload,
lade bitte damit deine Mappe hoch.

Gruß
Reinhard

Hallo Reinhard hier:

http://www.file-upload.net/download-4172203/HVFE-Eve…

In der ersten Mappe habe ich ein paar Zahlen eingetragen.
Button Klasse1 sortiert nach Werten und S-Nr. wieder zurück.
Nur sollen eben die Werte zuerst kommen und dann die 0,000
damit ich die Tabelle auch ansehlich drucken kann.

Danke nochmals
Wolfgang

Ach ja
Klasse 1 = Makro 1
S-Nr = Makro 11

http://www.file-upload.net/download-4172203/HVFE-Eve…

In der ersten Mappe habe ich ein paar Zahlen eingetragen.
Button Klasse1 sortiert nach Werten und S-Nr. wieder zurück.
Nur sollen eben die Werte zuerst kommen und dann die 0,000
damit ich die Tabelle auch ansehlich drucken kann.

Hallo Wolfgang,

okay, ich schau gleich mal auf die Buttons.
Vorab was mir auffiel, du sagtest ja daß du in Excel noch nicht komplett alles kennst :smile:

Gehe in C5, dann oben Fenster—Fixieren…
Sehr hilfreich bei langen und breiten Tabellen beim Scrollen.

In Extras—Optionen kannst du die Anzeige von Nullwerten unterbinden.
Oder so
=wenn(SUMME(E5;G5;I5;K5;M5)=0;"";SUMME(E5;G5;I5;K5;M5))
Oder mit bed. Formatierung, Wenn 0 Schriftfarbe weiß.

Select brauchz man zu 99% nicht.
Der Makrorekorder liefert sowas:

Sub Makro2()
' Makro2 Makro Klasse2
' Makro am 25.06.2009 von \* aufgezeichnet
'
' Tastenkombination: Strg+r
Range("A19:stuck\_out\_tongue:32").Select
 Selection.Sort Key1:=Range("N19"), Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:= \_
 False, Orientation:=xlTopToBottom
 Range("O19").Select
End Sub

Ändere sowas gleich ab in dies:

Sub Makro2()
' Makro2 Makro Klasse2
' Makro am 25.06.2009 von \* aufgezeichnet
' Tastenkombination: Strg+r
Range("A19:stuck\_out\_tongue:32").Sort Key1:=Range("N19"), Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:= \_
 False, Orientation:=xlTopToBottom
End Sub

Gelegentlich steht in der Aufzeichnung:
Header:=xlGuess
das ändere ich immer manuell ab auf xlNo oder xlYes.
Also mit oder ohne Überschriftszeile.
xlGuess bedeutet Excel entscheidet das für mich, das passt mir
grundsätzlich nicht:smile:

Für die Platzierung kennt Excel die Funktion Rang().
Wer ist nun wieder Bodo? :smile:

Was hat es mit der Unterteilung in Blöcke wie 100:113, 201:214, usw.
auf sich. Sollen die ggfs. einzeln sortiert werden, sind das die Klassen?
Wenn das Blöcke sind, so überprüf mal ob du die nicht gleich aufgebaut benutzen kannst.
Also so 100:113, 200:213, 300:313, …
oder so 101:114, 201:214, 301:314, …

Je gleicher der Blockaufbau dsto leichter für einen makrocode.

Bis nachher.

Gruß
Reinhard

Input Input Input…
Das mit dem fixieren ist schon mal richtig gut, lol
Die Blöcke bedeuten Klassen 1-7. Die Nummern sind Startnummern und da gibt es eben eine Nummer mit der 00 hinten. In diesem Fall die 100. Das ist der Clubmeister vom letzten Jahr. Sonst ist natürlich sinnvoll gleiche Blöcke zu machen. Bobo ist mein Spitzname und so heißt nun mal mein Notebook.

Gruß Wolfgang

Hallo Wolgang,

Das mit dem fixieren ist schon mal richtig gut, lol

ja sehr brauchbar, z.B. könntest du da deine beiden Buttons in den fixierten Bereich verschieben. dann sind sie jederzeit zugänlich.
Oder, was aktuell nicht zutrifft aber kann ja mal in einer anderen Tabelle eine Rolle spielen.
In den fixierten bereich die Summe einer Spalte „legen“.

Die Blöcke bedeuten Klassen 1-7. Die Nummern sind Startnummern
und da gibt es eben eine Nummer mit der 00 hinten. In diesem
Fall die 100. Das ist der Clubmeister vom letzten Jahr. Sonst
ist natürlich sinnvoll gleiche Blöcke zu machen.

Okay, was aber ist nun mit den Blöcken? Sollen die einzeln sortiert werden inklusive Rang oder alles?

Bobo ist mein
Spitzname und so heißt nun mal mein Notebook.

Aha, wer ist nun messner? Nicht das ich neugierig bin *entrüstet schau*
*grien*
Eine schlechte Nachricht, hab dein eigentliches Problem noch gar nicht angegangen und warte erstmal ab was nun mit der Blocksorterei wird bzw. gemacht werden soll.
Die gute, mein Code ist getestet also hast du super Chancen daß man das löst *gg*

Gruß
Reinhard

GM Reinhard
Hier geht es um Zeiten einer Gleichmäßigkeitsprüfung in verschiedenen Klassen. Das heißt es gibt eine Klassenwertung und eine Klassenübergreifende Gesamtwertung. Daher hängen die Blöcke direkt aneinander.
Nur kurz. Die Blöcke müssen einzeln, jeder für sich sortierbar sein. Das ist Makro 1-7 und die zurück sind Makro 11-17. Dann muss die ganze Tabelle Block übergreifend sortierbar sein. Das ist das Makro Gesamt mit Button ganz unten.
Die Mappe 2 ist ja identisch nur das man da die Zeiten eingeben kann. Referenzrunde und Wertungsrunde. Die rechnet es dann eben aus, sollte es die Zeitnahmesoftware vor Ort nicht können. Hier werden die selben Makros verwendet.
Messner ist der nette Kumpel der früher, als ich noch ein kompletter DAU war, mit mir die Makros erstellt hat.

Nun einen schönen Tag, muss jetzt zum Arbeiten.
Wolfgang

http://www.file-upload.net/download-4172203/HVFE-Eve…

In der ersten Mappe habe ich ein paar Zahlen eingetragen.
Button Klasse1 sortiert nach Werten und S-Nr. wieder zurück.
Nur sollen eben die Werte zuerst kommen und dann die 0,000
damit ich die Tabelle auch ansehlich drucken kann.

Hallo Wolfgang,

hier die Mappe:
http://www.uploadagent.de/show-183051-1331232219.html

Deine Buttons habe ich per makro „Einmalig“ schon umbenannt und
allen das Makro „Alle“ zugewiesen.
Nachstehend die Codes.

Für deinen Überblick stehen in R die Namen der Schaltflächen links davon. Spalte R kann gelöscht werden, spielt ansonsten keine Rolle.

Fülle mal zum Austesten die tabelle mit viel mehr Werten.
Schreib z.B. in B5
Fahrer1
dann gehe auf die untere rechte Ecke von B5 und zieh das runter bis Zeile 102.

Schreib in E5
=Zufallszahl()*10
und kopiere diese Formel nach unten, dann markiere E5:E102, Str+c,
Bearbeiten—Inhalte einfügen—Werte.
Desgleichen für Spalte G,i,…

In manchen Blöcken markierst du dann im unteren Blockbereich
einige Zeilen im Bereich B:M und löscht die Zellinhalte.
Dann erst teste meine Makros. Mit schlappen 4 Testzeilen sieht man doch nix.

Gruß
Reinhard

Option Explicit

Sub Alle()
Application.ScreenUpdating = False
Select Case Left(Application.Caller, Len(Application.Caller) - 1)
 Case "K\_Nr"
 Call Sortier(Val(Right(Application.Caller, 1)), "N")
 Case "S\_Nr"
 Call Sortier(Val(Right(Application.Caller, 1)), "A")
 Case "Klassen"
 Call Sortier(Val(Right(Application.Caller, 1)), "N", True)
 Call Sichtbar(False)
 Case "Gesamt"
 Call Sortier(Val(Right(Application.Caller, 1)), "A", True)
 Call Sichtbar(True)
 Case Else
 MsgBox "?"
End Select
ActiveSheet.Shapes(Application.Caller).TopLeftCell.Select
Application.ScreenUpdating = True
End Sub

Sub Sortier(ByVal Nr As Integer, ByVal strS As String, Optional bolGesamt As Boolean = False)
Dim Zei As Long, Zelle As Range
Set Zelle = ActiveCell
Zei = 5 + (Nr - 1) \* 14
If Not bolGesamt Then
 Range("A" & Zei & ":stuck\_out\_tongue:" & Zei + 13).Sort Key1:=Range(strS & Zei), Order1:=xlAscending, Header:=xlNo
Else
 Range("A5:stuck\_out\_tongue:102").Sort Key1:=Range(strS & "5"), Order1:=xlAscending, Header:=xlNo
End If
Zelle.Select
End Sub

Sub Sichtbar(ByVal S As Boolean)
Dim N As Integer
For N = 1 To 14
 Worksheets("Wert.o.Rundenz.").Shapes(N).Visible = S
Next N
End Sub

Sub Einmalig()
Dim N As Integer, NN As Integer
For N = 1 To 14 Step 2
 NN = NN + 1
 With Worksheets("Wert.o.Rundenz.").Shapes(N)
 .Name = "K\_Nr" & NN
 .TopLeftCell.Offset(0, 1).Value = .Name
 .OnAction = "Alle"
 End With
 With Worksheets("Wert.o.Rundenz.").Shapes(N + 1)
 .Name = "S\_Nr" & NN
 .TopLeftCell.Offset(0, 1).Value = .Name
 .OnAction = "Alle"
 End With
Next N
With Worksheets("Wert.o.Rundenz.").Shapes(N)
 .Name = "Klassen1"
 .TopLeftCell.Offset(0, 1).Value = .Name
 .OnAction = "Alle"
End With
With Worksheets("Wert.o.Rundenz.").Shapes(N + 1)
 .Name = "Gesamt1"
 .TopLeftCell.Offset(0, 1).Value = .Name
 .OnAction = "Alle"
End With
End Sub

Hallo Reinhard

Bin wieder Zuhause und der erste Klick war das Forum.
Siehe da, neue Formel.
Ich habe diese jetzt mal angewandt und was soll ich sagen ?
Der Hammer es geht !! Absolut super, *riesig freu*. Jetzt ist die Tabelle so wie ich diese haben wollte. Weiß gar nicht wie ich Dir danken soll. Wir werden uns wahrscheinlich nie sehen, und wenn doch, da zumindest nicht erkennen. Du hast trotzdem dicke was gut bei mir.
Nochmals vielen vielen Dank für Deine Unterstützung.

Echt super und nochmal *riesig freu*
Wolfgang