Clever-Excel-Forum

Normale Version: VBA Zahlenwert um 1 ergänzen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
guten morgen Jungs/Mädels/Diverse ;)

VBA`s sind leider noch immer Neuland für mich.
bräuchte aber wieder einen winzig kleinen Code der mir eine Unmögliche Arbeit ermöglicht.
ich hab diverse Excel Tabellen mit horrenden Zellenanzahlen.
in der Zelle A steht jeweils eine 8 stellige zahl (12345678) die in der Mitte durch ein " " ergänzt werden müsste.
eine Formel kann ich leider nicht benutzen da ich diesen wert für weitere Formelberechnungen benutze und diese dann nicht mehr erkannt wird.

deshalb muss eine VBA her die aus A1-A10000 aus 12345678 eine 1234 5678 macht.
ich weiß.. das ist ein kleines für euch Spezialisten.

schon mal im voraus vielen lieben dank
Hallo

geht es dir da nur um das Aussehen der Zahl?
da würde doch das benutzerdefinierte Zahlenformat

0000 0000

schon den gewünschten Erfolg bringen
beim einfügen eines Leerzeichens wird aus der Zahl ein Text


MfG Tom
das aussehen wäre mir generell egal. mir geht's darum dass aus dem wert "XXXXXXXX" der wert "XXXX XXXX" wird,
damit Excel ihn als solchen erkennt und weiter benutzen kann.
Das ganze muss durch eine VBA bearbeitet werden, da wenn ich den wert durch eine formel (z.b. =ERSETZEN(A1;5;1;) ) anpasse,
er nicht erkannt wird und beispielsweise durch einem =sverweis nicht gefunden werden kann.
hm.....

also im Prinzip so?

Code:
Sub test()
   Dim i As Long
   For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
       Cells(i, 1).Value = Left(Cells(i, 1), 4) & " " & Right(Cells(i, 1), 4)
   Next
End Sub
dabei wird aus der achtstelligen Zahl aber ein Text!
Zitat:eine Formel kann ich leider nicht benutzen da ich diesen wert für weitere Formelberechnungen benutze und diese dann nicht mehr erkannt wird.
Wer behauptet denn sowas? Das stimmt so natürlich nicht.
dann streikt mein Excel..
wenn ich
A1 - 12345678
A2 - =ERSETZEN(A1;5;1;) - angezeigt wird = 1234 5678
A3 - =SVERWEIS(A2;Tabelle!1:104800;2;FALSCH) - angezeigt wird = #NV

wenn ich mich allerdings auf A1 (also  12345678) beziehe funktioniert`s (nachdem ich den zu suchenden wert geändert habe)
folglich muss der Fehler in der Umsetzung der Formel in A2 liegen.
(22.02.2019, 10:23)Crazy Tom schrieb: [ -> ]hm.....

also im Prinzip so?

Code:
Sub test()
   Dim i As Long
   For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
       Cells(i, 1).Value = Left(Cells(i, 1), 4) & " " & Right(Cells(i, 1), 4)
   Next
End Sub
dabei wird aus der achtstelligen Zahl aber ein Text!

wie benenne ich die Zellen auf die sich die VBA bezieht? A1-A1000 sollen verändert werden
Hallo,

Zitat:wenn ich mich allerdings auf A1 (also  12345678) beziehe funktioniert`s (nachdem ich den zu suchenden wert geändert habe)

folglich muss der Fehler in der Umsetzung der Formel in A2 liegen.

das glaube ich weniger. Ich denke, du hast Zahlen und Texte gemischt. Wenn du deine Zahlen (kannst du testen mit =ISTZAHL(A1), wenn deine Zahl in A1 steht) so formatierst, wie es dir Tom geschrieben hat, dann findet der SVERWEIS() sie auch (sofern vorhanden Wink)
Hallo,

versucht hast du den Vorschlag von Crazy Tom mit der benutzerdefinierten Formatierung der Spalte A wohl nicht?

Deine Version kann nicht funktionieren weil du aus der Zahl in Spalte A einen Text machst, dann aber via SVERWEIS mit einer Zahl abgleichst.

Genau das passiert mit dem benutzerdefinierten Zahlenformat eben nicht. Die Zahl in Spalte A bleibt weiterhin z.B. 12345678 wird aber visuell so 1234 5678 dargestellt. Und damit funktioniert auch dein SVERWEIS.



Gruß Werner
in meinem Code werden die Zahlen in Spalte A gleich umgewandelt

aus 12345678 <-- Zahl wird durch das Leerzeichen = 1234 5678 <-- TEXT

wenn du jetzt mit dem SVerweis nach der Zahl 1234 5678 suchst wird da nüscht gefunden

deswegen würde sich mein erster Vorschlag mit dem benutzerdefiniertem Zahlenformat eher eignen
Seiten: 1 2