Registriert seit: 11.04.2014
Version(en): 365
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
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
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)
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
@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)
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
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)
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Ich nicht, bin am Phone, deshalb auch nur die Light-Version 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)
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
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
Registriert seit: 11.04.2014
Version(en): 365
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
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
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
Registriert seit: 29.09.2015
Version(en): 2030,5
Diede Code reicht: Code: Sub M_snb() [A1:A200] = [if(A1:A200="","",mid(A1:A200,13,3)&mid(A1:A200,5,8))] End Sub
Registriert seit: 11.04.2014
Version(en): 365
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 | A | B | C | 20 | 132600003004000000 | 1760000300 | 3004 | 21 | 132600003004011000 | 1E+60000300 | 1100003004 | 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
|