Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zahl umwandeln
#1
Hallo,

ich habe eine Tabelle, in der Zahlen in einer Spalte in folgendem Aufbau vorhanden sind.
149700000455011000
in einer Spalte daneben wandle ich diese Zahl mit folgender Formel um
=(TEIL(A1;13;3)&TEIL(A1;5;8))*1
Ergebnis: 1100000455

Geht das mit VBA ohne zusätzliche Spalte, sodass die vorhandene Zahl mit der umgewandelten überschrieben wird?
LG Herbert
Windows 10
Office 365
Antworten Top
#2
Hi Herbert,

das geht nicht ohne VBA.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#3
@Günther:
Er wollte ja auch mit ...
@TE:
Kopiere doch einfach die Formelspalte und füge sie als Wert in die Ausgngsspalte ein.

Mit VBA:
Schleife über alle Zellen, vorher Check der Stringläge (du hast KEINE Zahlen!) und Übrstz der Befehle in VBA.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#4
Hi Ralf,


Zitat:@Günther:

Er wollte ja auch mit ...

ich bin heute wohl eindeutig zu lange vor dem PC gesessen.  :16:
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#5
Ich nicht, bin am Phone, deshalb auch nur die Light-Version Wink

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#6
Hallo Herbert,
Sub aaa()
 Dim lngZ As Long
 Dim varZ As Variant
 varZ = Cells(1).CurrentRegion.Columns(1).Value
 For lngZ = 1 To UBound(varZ)
   If Len(varZ(lngZ, 1)) > 11 Then
     varZ(lngZ, 1) = Mid(varZ(lngZ, 1), 13, 3) & Mid(varZ(lngZ, 1), 5, 8)
   End If
 Next lngZ
 Cells(1).Resize(UBound(varZ)).Value = varZ
End Sub
Gruß Uwe
Antworten Top
#7
Hallo Uwe,

danke für deinen Code.

Kannst du mir bitte den Code genauer erklären, damit ich in an meine Gegebenheiten anpassen kann?
Ich habe glaube ich zuwenig Informationen gegeben.
Die betroffenen "Zahlen" sind nicht in einer ganzen Spalte ab der ersten Zeile.
Ich hätte mir gedacht, dass ich zB die betroffenen Zellen zuvor auswähle und die Änderung über die aktiven, markierten Zellen läuft.
Eine andere Möglichkeit wäre, die betroffenen Zellen aufgrund einer Überschrift zu erkennen und alle Zellen unterhalb der Überschrift bis zur letzten verwendeten Zeile in dieser Spalte zu bearbeiten.

Danke für deine Hilfe.
LG Herbert
Windows 10
Office 365
Antworten Top
#8
Hallo Herbert,

kommentiere das, was Du nicht verwenden möchtest, einfach aus:
Sub aaa()
Dim lngZ As Long
Dim rngB As Range
Dim varZ As Variant

'markierte Zellen
Set rngB = Selection

'abhängig von Überschrift in Zeile 1
Set rngB = Application.Intersect(ActiveSheet.UsedRange, Rows(1).Find("DerSuchwert").EntireColumn)
Set rngB = rngB.Resize(rngB.Rows.Count - 1).Offset(1)

varZ = rngB.Value
For lngZ = 1 To UBound(varZ)
  If Len(varZ(lngZ, 1)) > 11 Then
    varZ(lngZ, 1) = Mid(varZ(lngZ, 1), 13, 3) & Mid(varZ(lngZ, 1), 5, 8)
  End If
Next lngZ
rngB.Value = varZ
End Sub
Gruß Uwe
Antworten Top
#9
Diede Code reicht:

Code:
Sub M_snb()
  [A1:A200] = [if(A1:A200="","",mid(A1:A200,13,3)&mid(A1:A200,5,8))]
End Sub
Antworten Top
#10
Hallo,

@Uwe
Danke, der Bereich wird richtig erkannt, aber die Berechnung funktioniert nicht.
Spalte A Ausgangswert, Spalte B Ergebnis deines Codes, Spalte C Sollergebnis
Tabelle1

ABC
2013260000300400000017600003003004
211326000030040110001E+600003001100003004

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

@snb
Deine Berechnung stimmt, aber ich bräuchte den Bereich Variabel, wie oben beschrieben, ich kenne mich aber mit den Klammerausdrücken überhaupt nicht aus
LG Herbert
Windows 10
Office 365
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste