Anzeige
Archiv - Navigation
952to956
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
952to956
952to956
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Nummer erkennen und formatieren

Nummer erkennen und formatieren
23.02.2008 09:13:00
daniel
Guten Morgen und ein schönes Wochenende,
ich möchte mir ein Makro schreiben und das dann in die Symbolleiste mit einblenden.
Es soll mehrere Sachen können ... ich fang am besten mal an ;-)
- Es soll alle makierten Zellen untersuchen ( handelt es sich um eine Zahl dann macht es weiter, wenn es
eine Überschrift ist die aus Buchstaben besteht soll er Sie übersprigen und die nächste makierte Zelle überprüfen )
- Das Ergebnis soll übrigens immer so aussehen "51-562-5642/9" mit der formatierung Text
- Wenn das Makro die Nummer nicht so vorfindet geht es los... :-)
1. mache ein Textfeld da draus ( Selection.NumberFormat = "@" )
diese und noch ein paar mehr Mögliche Nummern gilt es zu erkennen und umzuwandeln.
5156256423
515625642/9
51-562-56429
51-5625642/9
51562-5642/9
515625642 15625642 12kj2nkj21 (1) Die Formel ;)
F6 = 515625642

REST((TEIL($F$6;1;1)*4)+(TEIL($F$6;2;1)*3)+(TEIL($F$6;3;1)*2)+(TEIL($F$6;4;1)*7)+(TEIL($F$6;5;1) _
*6) +(TEIL($F$6;6;1)*5)+(TEIL($F$6;7;1)*4)+(TEIL($F$6;8;1)*3)+(TEIL($F$6;9;1)*2);11)


2. Wenn die Zahl jetzt mit 10stellen vorliegt ohne Zeichen z.B. 5156256429
kann Sie so umgewandelt werden:


WENN(LÄNGE(B41)=10;LINKS(B41;2)&"-" & TEIL(B41;3;3)& "-" & TEIL(B41;6;4) & "/" & RECHTS(B41;1))


in "51-562-5642/9"
Kann man die Formeln im VBA Code unterbringen?
Hoffe man kann mir folgen ... und
Vielen Vielen Dank für alle die sich meinem Problem annehmen. Hab gerade eine neue Stelle und es wär super wenn man das hin bekäme. Ein paar Pluspunkte beim Chef sammeln ;-)
Mfg daniel

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

Betreff
Datum
Anwender
Anzeige
AW: Nummer erkennen und formatieren
23.02.2008 11:34:00
Erich
Hallo Daniel,
bevor man das Ganze in VBA umsetzt, ein paar Formeln zur Klärung.
Stehen in Spalte A die möglicherweise auftretenden "Zahlen"?
Soll das, was in Spalte A steht, durch die Werte in Spalte D überschrieben werden?
(Spalte A ist hier nur ein Beispiel, bearbeitet werden soll ja Selection.)
 ABCD
1Quelleohne /-mit PZformatiert
25156256423515625642515625642951-562-5642/9
3515625642123515625642515625642951-562-5642/9
4515625642/9515625642515625642951-562-5642/9
551-562-56429515625642515625642951-562-5642/9
651-5625642/9515625642515625642951-562-5642/9
751562-5642/9515625642515625642951-562-5642/9
8515625642515625642515625642951-562-5642/9
915625642015625642015625642001-562-5642/0
1012/3//000000123000000123500-000-0123/5
1112kj2nkj212kj2nkj2Fehler12kj2nkj2

Formeln der Tabelle
ZelleFormel
B2=RECHTS("00000000"&LINKS(WECHSELN(WECHSELN(A2;"-";""); "/";""); 9); 9)
C2=WENN(ISTZAHL(1*B2); B2&REST((TEIL(B2;1;1)*4)+(TEIL(B2;2;1)*3)+(TEIL(B2;3;1)*2)+(TEIL(B2;4;1)*7)+(TEIL(B2;5;1)*6) +(TEIL(B2;6;1)*5)+(TEIL(B2;7;1)*4)+(TEIL(B2;8;1)*3)+(TEIL(B2;9;1)*2); 11); "Fehler")
D2=WENN(ISTZAHL(1*C2); LINKS(C2;2)&"-" & TEIL(C2;3;3)& "-" & TEIL(C2;6;4) & "/" & RECHTS(C2;1); A2)

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Nummer erkennen und formatieren
23.02.2008 11:59:00
daniel
Hallo Erich,
genau so soll es sein!!! Es sieht so einfach bei dir aus...
Die Werte können in der Spalte A einfach ersetzt werden.
Kann man das als Makro eigentlich auch per Rechtsklick in Excel einbinden?
Hab das mal irgendwann gesehen, weiß nur nicht wie es geht.
Jetzt schon mal vielen Dank!!

AW: Nummer erkennen und formatieren
23.02.2008 12:43:11
Erich
Hi Daniel,
hier als Makro:

Sub Spezialformat()
Dim rng As Range, strT As String, intP As Integer
For Each rng In Selection
strT = Replace(Replace(rng, "/", ""), "-", "")
strT = Replace(Replace(strT, ".", "X"), ",", "X")
If IsNumeric(strT) Then
strT = Right("00000000" & Left(strT, 9), 9)
intP = 4 * Left(strT, 1) + 3 * Left(Right(strT, 8), 1) _
+ 2 * Left(Right(strT, 7), 1) + 7 * Left(Right(strT, 6), 1) _
+ 6 * Left(Right(strT, 5), 1) + 5 * Left(Right(strT, 4), 1) _
+ 4 * Left(Right(strT, 3), 1) + 3 * Left(Right(strT, 2), 1) _
+ 2 * Right(strT, 1)
strT = strT & intP Mod 11
rng = Format(strT, "00-000-0000/0")
Else
rng.Interior.ColorIndex = 3
End If
Next rng
End Sub

Da ich im Moment keine Zeit habe (Mittagessen):
Schau doch mal hier im Archiv nach Kontextmenü.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Nummer erkennen und formatieren
23.02.2008 13:09:42
daniel
danke hab mir schon ein schönes AddIn rausgesucht.
Für alle anderen hier der Link:
https://www.herber.de/bbs/user/9263.xla
Vielen Dank Erich
Du hast mir sehr viel Zeit erspart, meine Freundin wird es dir danken :-)
und ich natürlich auch... noch ein schönes Wochenende...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige