Bankleitzahlen sortieren liefert Fehler

  • #1
L

lbmode

Bekanntes Mitglied
Themenersteller
Dabei seit
21.01.2002
Beiträge
328
Reaktionspunkte
0
Ort
25746 Heide
Wir haben Tausende von Bankdaten in einer Adressdatei in EXCEL 2000.

Sortiert man diesen Daten bestand nach Bankleitzahlen, dann werden die Zeilen  merkwürdig in eine doppelt Reihenfolge gebracht.
Es bilden sich zwei Gruppen von Zahlenreihen, aufsteigend oder absteigend.
Alle Zahlen sind im gleichen Format definiert: Zahl ohne Stellen hinter dem Komma.

Ich würde gern eine Beispieltabelle (als Ausschnitt) hier einfügen, wenn ich wüßte wie das geht. Kann mir dazu zunächst jemand helfen?

Hier ist die Beispieldatei:
 
  • #2
Moin,
hab mir das Beispiel mal angeschaut.
Bei mir werden die BLZ zwischen 10010010 und 20030000 mit einem Fehler markiert.
Es wird behauptet, dass das Textfelder sind.
In den Eigenschaften steht aber Zahl. So wie du auch schreibst.

Ändere ich das Textformat über die Fehlerprüfung in Zahl, funktioniert die Sortierung.

Warum das über Zellen formatieren nicht geht, kann ich dir erstmal nicht beantworten.

gruß

safer
 
  • #3
Hallo Ibmode,

ich hab mir das mal von der VB-Seite her angeschaut.

Das Format der Zellen ist druchgängig Zahl mit keiner Nachkommastelle.
Ein Ausnahme gibt es: eine Zelle hat das Format->Standard'.

Dies ist aber nicht weiter schlimm und würde auch zu einem richtigen Sortierergebnis führen.

Jetzt kommt der Pferdefuß:

Die Zahlen selbst, also das eingefügte Format, haben zwei verschieden Formate:
- Variant / Double - also eine Zahl
- Variant / String - also eine Text

Das kannst Du in deiner Beispieldatei sichtbar machen, indem du in C2 die Formel =A2 eingibst und bis C29 herunterziehst. Bis C13 stehen die zahlen dann rechts ausgerichtet -> also tatsächliches Zahlenformat->Zahl'. Von C14 bis C29 sind sie links ausgerichtet -> also Text.


Der folgende Makro hilft dir dieses Problem zu beheben. Er wandelt das tatsächliche Zahlenformat in->Zahl ohne Nachkommastelle für die Spalte A ab Zeile 2.
Spalte und ab Zeile kannst Du in den Konstanten anpassen, wenn es in der tatsächlichen Datei abweicht.

Gruß Matjes :)

Code:
Sub BLZFormat_AufZahlOhneNachkommastelle()

  
 ->#### GGF  A N P A S S E N  ##########
  Const c_ERSTEWERTEZEILE = 2
  Const c_SPALTENNR_BLZ = 1
 ->#### GGF  A N P A S S E N  ##########
  
  Dim s_BLZ As String, l_BLZ As String, l_zeile As Long
  
  l_zeile = c_ERSTEWERTEZEILE
  Do
   ->BLZ als String lesen
    s_BLZ = Cells(l_zeile, c_SPALTENNR_BLZ).Value
    If s_BLZ =  Then Exit Do
   ->Zahl-Format setzen
    Cells(l_zeile, c_SPALTENNR_BLZ).NumberFormat = 0
   ->String-Zahl in Zahl konvertieren
    l_BLZ = s_BLZ
    If Err.Number <> 0 Then
      Err.Clear
      MsgBox (In Zeile  & l_zeile &  hat die Konvertierung nicht geklappt.)
    Else
     ->Zahl im Zhalenformat speichern
       Cells(l_zeile, c_SPALTENNR_BLZ).Value = l_BLZ
    End If
   ->nächste Zeile
    l_zeile = l_zeile + 1
  Loop
    
End Sub
 
  • #4
viele Dank erstmal an die beiden Experten!

Das muß ich mir morgen erstmal in Ruhe ansehen.

Es bleibt mir aber immernoch ein Rätsel, wodurch diese verschiedenen Formate entstehen. Die Bankleitzahlen sammeln sich in der Tabelle nach und nach durch Eingabe von Hand.
 
  • #5
lbmode schrieb:
... durch Eingabe von Hand.

Daran wird es liegen. Es braucht nur jemand etwas andere Excel-Einstellungen zu haben und schon ist es passiert.
 
  • #6
... oder jemand kopiert die zahlen in die tabelle und übernimmt somit auch das ursprüngliche zellenformat ...

gruß,
kath.hundefriseursalon
 
  • #7
Danke, -insbesondere Matjes- für das makro!

habe inzwischen jedoch eine einfachere Lösung gefunden, um die BLZ-Liste zu bereinigen:

- neue leere Spalte einfügen
- dorthin die ganze BLZ-Liste mit =1*BLZ als Werte einfügen
- dann die ursprüngliche Liste löschen

nun sind alles saubere Zahlen, die sich auch ordentlich sortieren lassen.
 
  • #8
lbmode schrieb:
Danke, -insbesondere Matjes- für das makro!

habe inzwischen jedoch eine einfachere Lösung gefunden, um die BLZ-Liste zu bereinigen:

- neue leere Spalte einfügen
- dorthin die ganze BLZ-Liste mit =1*BLZ als Werte einfügen
- dann die ursprüngliche Liste löschen

nun sind alles saubere Zahlen, die sich auch ordentlich sortieren lassen.

Hallo

Ohne Makro

BLZ Spalte Markieren
Daten
Text in Spalten...
Fertigstellen

Das wars

MfG hddiesel
 
  • #9
Toll !!!  :D :D :D
 
  • #10
Matjes schrieb:
Hallo Matjes

Das gleiche für deine SUPER MAKROLÖSUNGEN :D :D :D

Manchmal der letzte Ausweg bei einem Problem!

Wünsche ein schönes Wochenende und mach weiter so.
 
  • #11
Etwas spät, aber als allgemeine Lösung zu Problemen mit der falschen Formatierung von Zahlen in Excel setze ich mit Erfolg dieses ein:


Zuvor formatiere ich die fraglichen Zellen immer erst als Zahlen mit 3 Nachkommastellen. Warum 3? Weil das sonst nicht vorkommt und mir auf einen Blick zeigt, ob die Zellen den Umwandlungsbefehl verstanden haben. Danach sortiere ich einmal aufsteigend und einmal absteigend. Wenn beide Enden der Spalte gut aussehen, hat die Umwandlung Erfolg gehabt.
Wenn nämlich versehentlich ein Leerzeichen oder sonstiger Mist in eine Zahl gekommen ist, greift der Trick natürlich nicht.
 
  • #12
Vielen Dank Klexy,

gibt doch immernoch was Neues!
 
Thema:

Bankleitzahlen sortieren liefert Fehler

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben