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

VBA Formatierung Zahlen mit Sonderzeichen

VBA Formatierung Zahlen mit Sonderzeichen
29.10.2013 16:51:48
Fabian
Hallo zusammen. Hab mir soeben einen halben tag um die Ohren geschlagen mit folgendem Problem:
Ich habe rund 2.000 Zahlenfolgen in einer Exceldatei geliefert bekommen. Diese sind am Stück weg geschrieben ohne jegliche Trennung. Bevor ich nun jede Zahlenfolge einzeln anpacke möchte ich ein Makro drüber laufen lassen, sodass danach Sonderzeichen eingefügt sind.
Beispiel:
Vorhanden Zahl: 1234567890
Soll nach Überarbeitung so aussehen: 1-23.456.789-0
Heißt also, ich möchte die Punkte und Striche einfügen. Leider hat folgendes nicht funktioniert:
With Range("C2:C2000")
.NumberFormat = ("#-##,###,###-#")
Wer ist denn so nett und hilft mir aus der Klemme?
Danke und Gruß,
Fabian

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Formatierung Zahlen mit Sonderzeichen
29.10.2013 17:05:36
firmus
Hi Fabian,
wie sieht denn die Zahlenfolge aus "am Stück weg geschrieben ohne jegliche Trennung"
so?: 12345678901234567890123456789012345678901234567890123456789012345678901234567890
oder so?
1234567890
1234567890
1234567890
1234567890
oder oder oder...
Am besten packst Du ein Stück davon in eine xls-mappe und lädst dieses Beispiel dann hoch.
und - welches Datenformat soll denn so eine Ergebniszahl haben?
Vom Datenformat hängt ab, was Du danach damit machen kannst (rechnen, vergleichen, ...)
Gruß
Firmus

AW: VBA Formatierung Zahlen mit Sonderzeichen
29.10.2013 17:28:13
Tino
Hallo,
versuch es mal so.
.NumberFormat = "0""-""00"".""000"".""000""-""0"
 A
21-23.456.789-0
31-23.456.789-1
41-23.456.789-2
51-23.456.789-3
61-23.456.789-4
71-23.456.789-5
81-23.456.789-6
91-23.456.789-7
100-00.000.000-0
11 

Gruß Tino

Anzeige
AW: VBA Formatierung Zahlen mit Sonderzeichen
29.10.2013 18:06:43
Daniel
zur Erläuterung von Tinos Antwort:
Punkt und Komma sind Funktionszeichen (Dezimaltrenner und Tausendertrenner)
dh sie haben innerhalb des Zahlenformatstring eine definierte Funktion und können nicht an beliebiger Stelle erscheinen, das können nur einfache Zeichen ohne Sonderfunktion.
wenn jetzt ein Funktionszeichen wie ein normales Zeichen behandelt werden soll, so dass es an beliebiger Stelle erscheinen kann, dann muss es in Anführungszeichen gesetzt werden.
die Anführungszeichen muss man doppelt, weil Excel daran die Anführungszeichen, die zum Text gehören von den Anführungszeichen unterscheidet, die den Teiltext begrenzen.
Gruß Daniel

Anzeige
Irr' dich al nicht, ...
29.10.2013 20:32:31
Luc:-?
…Daniel;
da hat das benutzerdefinierte Format noch Kürzeres drauf, mit dem das Ganze auch so geschrieben wdn kann:
.NumberFormat = "0\-00\.000\.000\-0"
Das würde dann für 1…0 im Ergebnis so aussehen: 1-23.456.789-0
Gruß Luc :-?

AW: Irr' dich al nicht, ...
30.10.2013 09:45:28
Daniel
Hi Luc
wo liegt mein Irrtum?
sind Punkt und Komma keine Zeichen mit besonderer Funktion im Zahlenformatstring?
kannst du bitte ersten deine Tastatur reparieren (oder eine neue holen) und das mit dem \ mal besser erklären anstatt immer nur irgendwelche andeutungsvollen Brocken hinzuwerfen?
Gruß Daniel

Anzeige
Die wackelt auf dem Untergrund, deshalb ...
30.10.2013 14:11:27
Luc:-?
…fehlte das m, Daniel. ;-]
Deine Aussage hatte 2 Teile. Ich bezog mich nur auf den mit "". Das sollte dir doch eigentlich klar sein!
Gruß Luc :-?

AW: Die wackelt auf dem Untergrund, deshalb ...
30.10.2013 17:03:22
Daniel
aber wenn das mit den Anführungszeichen falsch ist, dann dürfte doch Tinos lösung gar nicht funktionieren?
ich hab ja nur versucht, seinen Vorschlag zu erklären.
btw, wenn du nichts dazu schreibst, ist überhaupt nicht klar, auf welchen Teil du dich beziehst.

Die Lösung ist NICHT falsch, nur nicht die ...
30.10.2013 17:58:11
Luc:-?
einzige, Daniel;
das hat aber deine Erklärung behauptet… ;->
Luc :-?

AW: Die Lösung ist NICHT falsch, nur nicht die ...
30.10.2013 18:15:29
Daniel
wenn du das so sieht daß ich behauptet es wäre die einzige...
nuja.
aber wenn du in die Überschrift schreibst ich würde irren, dann sollte meine Lösung schon richtig falsch sein, sonst ist das für mich schon hart an der Grenze.
zumal die grundlegende Tatsache, daß man Funktionszeichen kennzeichen muss, wenn man sie ausserhalb ihre Funktion einsezten will, ja richtig.
dass ich halt nicht alle Möglichkeiten aufgezählt habe, seisdrum.
wenns jetzt noch eine dritte möglichkeit geäbe, dann würdest du ja auch irren.
mit solchen Bewertungen anderer Beiträge schon in der Überschrift solltest du vorsichtig sein, nicht das dir das einer noch falsch auslegt.

Anzeige
Nun gut, ich habe zwar nichts behauptet, ...
30.10.2013 20:30:57
Luc:-?
…Daniel,
aber es sollte bei der benutzerdefinierten Formatierung wirklich nur diese beiden geben, was völlig andere Lösungsmöglichkeiten ja nicht ausschließt, wie der weitere Thread-Verlauf auch zeigt. ;->
Zitat: wenn jetzt ein Funktionszeichen wie ein normales Zeichen behandelt werden soll, so dass es an beliebiger Stelle erscheinen kann, dann muss es in Anführungszeichen gesetzt werden. (Hervorhebung von mir)
Das gilt aber idR nicht für die von dir so genannten FktsZeichen, sondern generell für alle Zeichen. Ein FktsZeichen bedarf dieser Schreibweise nur dann, wenn es als normales Zeichen behandelt wdn soll. Insofern ist deine Erklärung ohnehin auch insgesamt nicht ganz richtig. Nun alles klar?!
Luc :-?

Anzeige
AW: Nun gut, ich habe zwar nichts behauptet, ...
30.10.2013 20:55:00
Daniel
nein, eher verwirrt wegen deiner unsinnigen, in sich widersprüchlichen Aussagen:
Zitat: Das gilt aber idR nicht für die von dir so genannten FktsZeichen, sondern generell für alle Zeichen
wie kann etwas generell für alles gelten, wenn es nicht für eine Teilmenge gilt?
oder hat deine Tastatur hier das "nur" verschluckt?

...f'ür alle Zeichen, die als normales Zeichen ...
30.10.2013 21:50:01
Luc:-?
…behandelt wdn sollen', Daniel,
dürfte nun ja aber auch deinen Ansprüchen genügen, während deine ursprüngliche Aussage diesen eigentlich nicht genügen sollte. :->
Luc :-?

AW: ...f'ür alle Zeichen, die als normales Zeichen ...
30.10.2013 22:14:33
Daniel
mir ist immer noch nicht klar, warum meine erste Aussage falsch sein sollte.
es wäre aber schön, wenn du mal in vollständigen Sätzen mit vollständigen Wörten antworten würdest, vielleicht wäre es dann leichter, dich zu verstehen.

Anzeige
Was sind für dich 'vollständige Sätze', ...
31.10.2013 02:17:23
Luc:-?
…Daniel?
Sehe nicht, dass ich halbe gebrauche! Aber das wird mir jetzt langsam zu dumm. Muss doch wohl nicht immer aufs Neue deutlich Sichtbares begründen. Habe Wichtigeres zu tun, als mit „beleidigten Leberwürsten“ über „Kaisers Bart“ zu diskutieren. Glaub doch, was du willst; wir wdn ja sehen, wo das hinführt… :-]
Luc :-?

AW: Was sind für dich 'vollständige Sätze', ...
31.10.2013 10:11:43
Daniel
Vollständige Sätze sind Sätze, die dort enden, wo sie anfangen.
wenn du erst andeutest, ich würde irren, dann aber später zugibst, dass meine Lösung nicht falsch ist, dann war deine erste Aussage eine öffentliche negative, aber falsche Bewertung meines Beitrags und das ist in meinen Augen schon ein Beleidigung.
wenn du nicht mit "beleidigen Leberwürsten" diskutieren magst, solltest du sowas unterlassen.

Anzeige
AW: VBA Formatierung Zahlen mit Sonderzeichen
30.10.2013 08:33:51
Fabian
Guten Morgen!
Super, das hat beides funktioniert, danke euch!
Wie müsste meine Syntax denn aussehen wenn ich die Zahlenfolge nicht nur in diesem Format dargestellt haben möchte, sondern tatsächlich die Punkte und Striche in die Zelle eingefügt haben möchte? Wenn da ein Script drüber läuft, sucht dieses leider nicht anhand des Formates sondern des tatsächlichn Inhalts.
VG

AW: VBA Formatierung Zahlen mit Sonderzeichen
30.10.2013 09:42:04
Daniel
Hi
dann musst du einen Hilfsspalte einfügen mit der Formel =Text(A1;"dein Zahlenformatstring")
und mit dieser Hilfsspalte weiterarbeiten.
Gruß Daniel

AW: VBA Formatierung Zahlen mit Sonderzeichen
30.10.2013 09:59:19
Fabian
Perfekt! Danke Dir Daniel.
VG Fabian

Anzeige
oder mit VBA
30.10.2013 11:17:50
Tino
Hallo,
so müsste es auch gehen.
Beachte aber das die Werte in den Zellen danach keine Zahlen mehr sind.
Sub Beispiel()
Dim arValues, n&
With Range("A2:A100")
arValues = .Value2
For n = 1 To UBound(arValues)
If IsNumeric(arValues(n, 1)) Then
arValues(n, 1) = Format(arValues(n, 1), "0""-""00"".""000"".""000""-""0")
End If
Next n
.Value = arValues
End With
End Sub
Gruß Tino

Wenn du mit einer UDF (VBA) suchst, könntest ...
30.10.2013 14:20:07
Luc:-?
…du statt der Value-Eigenschaft der Zellen auch deren Text-Eigenschaft verwenden, Fabian,
was ggf den Vorteil hätte, dass das Original so bliebe wie es ist und um das zu erreichen, keine Hilfszellen benötigt würden. Allerdings hängt das, was am Sinnvollsten wäre, in 1.Linie davon ab, was und wie du suchen willst und was sonst noch mit diesen Daten geschehen soll bzw wofür sie sonst noch benötigt wdn.
Gruß Luc :-?

Anzeige
AW: Wenn du mit einer UDF (VBA) suchst, könntest ...
30.10.2013 20:15:22
Daniel
auf den .Text-Wert der Zelle kannst du aber nur direkt und einzeln zugreifen.
sobald du Funktionen verwenden willst (z.B. FIND, Autofilter, VLookUp usw) gehts nicht mehr mit .Text.
außerdem ist der Zugriff auf .Text bei mir c.a. 4x langsamer als der Zugriff auf .Value.
Gruß Daniel

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige