In Zelle bei Eingabe mit Nullen auffüllen

Hallo zusammen,

ich habe folgendes Problem.

Ich bräuchte eine Funktion im Excel, die bei einer Eingabe automatisch Nullen auffüllt bis es 13-Stellen sind.

Also zum Beispiel:
Eingabe = 5069801
Excel soll daraus machen = 5069801000000

Eine benutzerdefinierte Formatierung hilft mir leider nicht weiter, da ich die Daten mit Formeln weiter verarbeite und dazu die 13-stellige Nummer bräuchte.

Gibt es im Excel eine solche Funktion? Oder ist sowas mit VBA möglich?

Vielen vielen Dank im voraus für eure Bemühungen!!

MfG Caro

Hallo,
ein Teil-Aspekt,
wenn in die Zelle eingegeben werden soll, kann darin KEINE Formel stehen, die irgendwas mit der Eingabe macht. Stuende eine Formel in der zelle, wird die Formel mit der Eingabe ueberschrieben und die Formel ist weg.
Wenn zwei Zellen die Aufgabe erledigen, sieht es besser aus. Im eine Zelle eingeben, in die zweite Zelle die Formel rein, was mit der Eingabe in der ersten Zelle gerechnet werden soll, um das Ergebnis in die zweite Zelle zu schreiben.
Gruss Helmut

Hi,

falls du hilfsspalten machen kannst, würd ichs auf die Schnelle so machen.

a1= deine zahl
b1= a1*1000000000000
c1=links(b1;13)

c1 wär dann halt die 13 stellige zahl.
nich schön aber selten

mfg

Vielen Dank für eure Bemühungen.

Dies mit der Hilfsspalte ist eine gute Idee doch leider nicht ganz das wonach ich suche.
Wenn es nichts anderes gibt werde ich mich aber damit anfreunden müssen ;o)

Weiß vielleicht ein VBA-Spezialist ob es so vielleicht eine Lösung gäbe??

MfG Caro

Dies mit der Hilfsspalte ist eine gute Idee doch leider nicht
ganz das wonach ich suche.
Wenn es nichts anderes gibt werde ich mich aber damit
anfreunden müssen ;o)

Weiß vielleicht ein VBA-Spezialist ob es so vielleicht eine
Lösung gäbe??

Hallo Caro,

der nachfolgende Code gehört in das Modul des betreffenden Blattes.
Überwacht wird die 1te Spalte=A, für eine andere Spalte mußt du die 1 in Columns abändern.

Gruß
Reinhard

Option Explicit

Private Sub Worksheet\_Change(ByVal Target As Range)
Dim Zelle As Range
Set Target = Intersect(Target, Columns(1))
If Target Is Nothing Then Exit Sub
For Each Zelle In Target
 If Zelle.Value "" And Zelle.Value 0 Then
 Zelle.NumberFormat = "0000000000000"
 Zelle.Value = Left(Zelle.Value & String(13, "0"), 13)
 End If
Next Zelle
End Sub

Hi Caro,

mit einer Hilfsspalte wirst Du Dich auf jeden Fall anfreunden müssen.
(Denn wenn’s nur darum geht, Zahlen und Texte zu erfassen und zu drucken, dann nimm Word. Wenn Du aber mit den Zahlen rechnen willst, nimm Excel.
Und in Excel ist das einfach so: eine Zelle enthält den Originalwert - also die Benutzereingabe, die benachbarten Zellen verarbeiten ihn weiter, u.U. in mehreren Stufen.)

Ich habe Dein Problem so verstanden, als wolltest Du in Zelle A1 eine beliebige Zahl eingeben

  • und diese sollte dann durch Hinzufügen von Nullen auf dreizehn Stellen ausgedehnt werden, wobei die Nullen an die Zahl angehängt werden
  • und dies sollte mit jeder beliebigen Zahl A1*POTENZ(10;13-AUFRUNDEN(LOG(A1;10);0))
    Diese Formel in der Hilfsspalte bringt Dir genau die Zahl, die Excel später mit SVERWEIS etc. fehlerfrei bearbeiten kann.

HTH.

Markus
_____________
Und Sterne sammel’ ich noch immer.