autom. Trennung des Zellwertes b. allen Eingaben

Bild

Betrifft: autom. Trennung des Zellwertes b. allen Eingaben
von: udo
Geschrieben am: 10.11.2003 22:52:44

Schönen Abend zusammen,

hab mal vor geraumer ZEit folgendes Makro ebenfalls aus dem Forum bekommen, um
einen in einer Zelle eingegebenen Wert aus Zahlen & Buchstaben , der 10 stellig
ist.

zB.: 0123123123 zu 0_123_123_123 ( die Striche sind Leerzeichen ), oder
zB.: 1451258RE9 zu 1_451_258_RE9 ( "" ).

Sprich die Trennung soll immer an 2. , 4. , & 7. Stelle erfolgen, und der Zellwert ist immer 10 stellig.

Mit diesem Makro hat es zumindest in Excel XP schon ganz gut funktioniert, jedoch EXCEL 97 im Gesch. meckert dabei.
" Mid " wird dabei ständig bemängelt. Habe schon probiert Mid zu dekl. aber leider ohne Erfolg.

Zum Thema:

Gibts ne Lösung auf einer einfachen Zellformatierung die ich noch nicht kenne,
# ### ### ### oder so ähnlich ???

Oder hat mir bitte Jemand eine andere VBA Anweisung für beispielsweise Spalte B.

wäre Euch wiedermal sehr verbunden, vielen liebn Dank im Voraus, Gruß udo

----------------------------------------------------------------------------

If Target.Column = 2 Then

If Len(eingabe) = 10 Then
Target = Mid(eingabe, 1, 1) & " " & Mid(eingabe, 2, 3) & " " & Mid(eingabe, 5, 3) & " " & Mid(eingabe, 8, 3)
End If
End If

Bild


Betrifft: AW: autom. Trennung des Zellwertes b. allen Eingab
von: RAnton
Geschrieben am: 10.11.2003 23:00:24

Hallo Udo
sag mal was dein Excel-97 sagt. Bei mir geht dein Code.

Gruß
RAnton


Bild


Betrifft: Sorry , geht von hier aus nicht , denn
von: udo
Geschrieben am: 10.11.2003 23:07:58

Hallo erstmal, ...

... die Datei spinnt nur im Geschäft bei mir ? komisch, mir ist echt auch nicht klar
was warum wie.

Wenn ich mich recht erinnere bez. er Mid als nicht erkannte Vari.
Bin mir aber nicht sicher.

Was auf jedenfall dort dann immer blau leuchtet im Debugger ist die Bezeichnung " Mid "
???

das ist mir ne Nummer zu hoch, ...wäre toll wenn Euch da was dazu bekannt ist
Danke dir schon mal, lieben Gruß udo


Bild


Betrifft: AW: autom. Trennung des Zellwertes b. allen Eingaben
von: PeterW
Geschrieben am: 10.11.2003 23:03:47

Hallo Udo,

was steht denn in eingabe? Probier es mal mit

If Target.Column = 2 And Len(Target) = 10 Then
Target = Left(Target, 1) & " " _
& Mid(Target, 2, 3) & " " & _
Mid(Target, 5, 3) & " " & Mid(Target, 8, 3)
End If

Gruß
Peter


Bild


Betrifft: AW: autom. Trennung des Zellwertes b. allen Eingaben
von: udo
Geschrieben am: 10.11.2003 23:15:06

Hallo Peter, schönen Dank auch an dich,

ich weis jetzt nicht ob das dann zum Erfolg führt, da der Debugger bei uns im Gesch.
in meiner bisherigen Anweisung immer die Bezeichnung " Mid " beanstandet, und im als variable nicht ganz geläufig ist.
Als ich vor einigen Tagen den Fehler schonmal postete, meinte man dass das was der der
" Objektbibliothek " zu tun haben könnte ???

Das ist mir alles leider zu hoch ... sorry.

Ich dacht , vielleicht gibts da ne ganz banale Lösung , indem man die Zelle mit rechtsklick formatiert zB.: mit # ### ### ### oder so ähnlich.

Aber egal wie ich da rumtrickse, bei Zahlen funkts, sind dann aber Buchstaben mit dabei, dann hab ich auf einmal noch 5 Nullen mit zusätzlich hinten dran stehen ???

Also auch nicht perfekt !

Sch... aber auch ;-)

Wär Euch echt dankbar für eine Lösung

Liebn Gruß , udo


Bild


Betrifft: AW: autom. Trennung des Zellwertes b. allen Eingaben
von: FP
Geschrieben am: 10.11.2003 23:04:04

Hallo Udo,

also bei mir unter Excel97-SR2 funktioniert dieser Ereigniscode:

Option Explicit


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
  With Target
    If .Cells.Count > 1 Then Exit Sub
    If .Column = 2 And Len(.Value) = 10 Then _
      .Value = Left(.Value, 1) & " " _
        & Mid(.Value, 2, 3) & " " _
        & Mid(.Value, 5, 3) & " " _
        & Mid(.Value, 8, 3)
  End With
End Sub



Servus aus dem Salzkammergut
Franz


Bild


Betrifft: AW: autom. Trennung des Zellwertes b. allen Eingaben
von: udo
Geschrieben am: 10.11.2003 23:19:17

Hallo Franz,
Dank auch an Dich schon mal,
ja, wie bereits beschrieben, das ganze ist wohl recht merkwürdig ???

Ich weis echt auch nicht warum unser Excel im Gesch. da zu merkern hat ???

weis einer von euch , ob man " Mid " umgehn kann, indem man dafür was anderes nimmt ?
geht sowas überhaupt bei dieser Art v. Funktion.

Bei mir steht das ganze übrigens auch ebenfalls im Workshhet Cahnge Ereignis

Danke , und lieben Gruß ,udo


Bild


Betrifft: Ist euch zufällig so ne ganz banale Lösung ...
von: udo
Geschrieben am: 10.11.2003 23:23:24

wie wenn man die Zelle selbst formatiert bekannt , die da greifen könnte ?

Ich krieg da noch die Pimpanelle. Das ist wirklich wie verzwickt !

Gruß udo


Bild


Betrifft: AW: Ist euch zufällig so ne ganz banale Lösung ...
von: PeterW
Geschrieben am: 10.11.2003 23:25:10

Hallo Udo,

bei Zahlen geht das mit einem benutzerdefinierten Format aber sobald Buchstaben enthalten sind handelt es sich nicht mehr um eine Zahl sondern um einen Text.

Gruß
Peter


Bild


Betrifft: Ja, das ist echt schade, hab ich auch sch. entdeck
von: udo
Geschrieben am: 10.11.2003 23:28:51

...

könntest du mir mal sagen für was dieses Mid überhaupt steht ?

vielleicht kann ich da irgend was umbauen ???

Gruß udo, Danke Peter


Bild


Betrifft: oder meint ihr das folgendes evt. helfen könnte
von: udo
Geschrieben am: 10.11.2003 23:32:17

das man Mid deklariert mit

Dim Mid as ...( weis nicht genau )
Mid = m

und dann in der Anweisung anstatt Mid dann das m setzt, wird aber wahrsch, dann auch nicht funktioniern , ...

Vielleicht so ???

udo ;-)


Bild


Betrifft: AW: oder meint ihr das folgendes evt. helfen könnte
von: PeterW
Geschrieben am: 10.11.2003 23:42:15

Hallo Udo,

aus der VBA-Hilfe zu Mid:

Gibt einen Wert vom Typ Variant (String) zurück, der eine bestimmte Anzahl von Zeichen aus einer Zeichenfolge enthält.
Syntax
Mid(string, start[, length])
Die Syntax der Mid-Funktion verwendet die folgenden benannten Argumente:

Teil Beschreibung
string Erforderlich. Zeichenfolgenausdruck, aus dem Zeichen zurückgegeben werden. Wenn string den Wert Null enthält, wird Null zurückgegeben.
start Erforderlich; Wert vom Typ Long. Position in string, an der die zurückzugebende Zeichenfolge beginnt. Ist start größer als die Anzahl der Zeichen in string, so gibt Mid eine leere Zeichenfolge ("") zurück.
length Optional; Wert vom Typ Variant (Long). Anzahl der zurückzugebenden Zeichen. Wird length nicht angegeben oder befinden sich weniger Zeichen im Text (das Zeichen an der Stelle start eingeschlossen), als durch length angegeben, so werden alle Zeichen ab start bis zum Ende der Zeichenfolge zurückgegeben.
Bemerkungen
Mit der Len-Funktion können Sie die Anzahl der Zeichen in string bestimmen.

Mid wird bei RAnton und FP unter Version 8 richtig erkannt. Probier morgen am anderen Rechner nochmal die Version von FP.
Falls das immer noch nicht klappt könnte ich mir die "Krücke" vorstellen, die Eingabe in einen String zu packen, mit Right zu kürzen und dann mit Left davon die erforderlichen Zeichen zu nehmen.

Gruß
Peter


Bild


Betrifft: ok, super , ganz herzl. Dank an euch Alle, ich ..
von: udo
Geschrieben am: 10.11.2003 23:53:02

werd es mal am Mittwoch dann entsprechend testen, und mal schaun ob das zum Erfolg führte.

Ich werde meine Ergebnisse dann diesem Thread noch beigeben, sobald ich was in Erfahrung gebracht habe.

Kann aber ein paar Tage dauern evt. nur falls der Eine óder Andere auch mal gespannt ist obs klappt, dann kopiert euch halt mal den Link des Threads.


Also auf Jeden Fall ganz herzlichen Dank an Euch Alle, und schönen Abend noch

Gruß udo


Bild


Betrifft: AW: ok, super , ganz herzl. Dank an euch Alle, ich ..
von: PeterW
Geschrieben am: 10.11.2003 23:56:33

Hallo Udo,

falls dich das Monstrum ohne Mid interessiert:

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column = 2 And Target.Cells.Count = 1 And Len(Target) = 10 Then
     Target = Left(Target, 1) & " " & _
     Left(Right(Target, 9), 3) & " " & _
     Left(Right(Target, 6), 3) & " " & _
     Left(Right(Target, 3), 3)
  End If
End Sub

Gruß
Peter


Bild


Betrifft: Ja genau , das is es
von: udo
Geschrieben am: 11.11.2003 00:03:35

Super , Danke dir Peter.

Ich glaub das könnte helfen, so wie ich das schon beurteilen kann.
Die Grösse ist ja auch nicht wirkl. schlimm, hauptsache s' funktioniert dann auch.

Also vielen lieben Dank an dich, an Euch Alle ,

ihr seit spitze Jungs ;-)

Lieben Gruß , udo


Bild

Beiträge aus den Excel-Beispielen zum Thema " autom. Trennung des Zellwertes b. allen Eingaben"