Anhängen von .0 an einen Text wenn Lä

Hallo ihr Lieben,

ich brauche für eine Makroprogrammierung einen Code, der wenn in Spalte A die Textlänge= 5 ist, er mir immer an das Ende dieses Textes den Text hinzufügt: „.0“.

Wenn Textlänge ungleich 5 dann soll er eine Zeile weitergehen.

Kann mir einer weiterhelfen?

Also, das ist ganz einfach. Man kann jede Zelle einer Tabelle adressieren, [Sheets(„name“).]Cells(row,col)
row ist die Zeile, col die Spalte
dim row as long ’ mehr als 32768 Zeilen möglich!
dim col as integer
row =1
col = 1 ’ Spalte A
do while cells(row,col) vbnullstring
if len(cells(row,col)) = 5 then
cells(row,col) = cells(row,col) & „.0“
end if
loop
Aber: .0 anhängen klingt so nach Formatierung von Zahlen, das geht u.U. über die Darstellung mit einer Nachkommastelle leichter.
Viel Erfolg
Rainer

Kurz und Präzise:

Option Explicit

Sub Ergaenze()
Dim I As Double
Dim EndZeile As Double
Dim MyCell As String

EndZeile = 600 'Musst Du selbst wissen!
For I = 1 To EndZeile
 MyCell = Cells(I, 1)
 If Len(MyCell) = 5 Then
 Cells(I, 1) = MyCell & ".0"
 End If
Next I

End Sub

sub programm()
dim intAnfang as integer 'startzeile
dim intEnde as integer 'Endzeile

intEnde = 20 'z.B.

for intAnfang = 1 to intEnde
if len(cells(intAnfang, 1).value) = 5 then
cells(intAnfang,1).value = cells(intAnfang,1).value & „.0“
end if

next intAnfang

end sub

Liebe Grüße
OVM

Hallo Tschejtx,

ich hoffe die Fragestellung richtig interpretiert zu haben und sende Ihnen meinen Vorschlag:

Sub text()
Dim vari As String
Dim i, letzte As Integer
'Es werden Zellen mit Text und Text-Zahlenmischung markiert

'Zähler setzen
i = 1
'letzte verwendete Zeile ermitteln
letzte = Tabelle1.Range(„A65536“).End(xlUp).Row
'Schleife starten
For i = 1 To letzte
'Länge des Inhaltes prüfen ob 5
If Len(Cells(i, 1)) = 5 Then
'an Inhalt der aktuellen Zelle .0 anhängen
Cells(i, 1) = Cells(i, 1) & „.0“
End If
'nächste Zelle aufrufen
Next i
End Sub

Gruß Hugo

Hallo,

dieses lässt sich zwar auch sehr einfach per Zellenformel lösen [Zellenformel =WENN(A1="";"";WENN(UND(NICHT(ISTZAHL(A1));LÄNGE(A1))=5;A1&".0";A1)) zB. in B1 eingeben, anschliessend in die Spalte „B“ oder deinen Tabellenbereich kopieren], aber auch gut per Code…

Nachfolgenden Code in der Modulebene hineinkopieren ggf. anpassen.

Sub textumwandler()
'Statt ‚Anzahl‘ kannst du auch irgendeine Zahl bis 65536 eingeben.
'Sollte deine Tabelle auch Leerzelle in der Spalte A haben, so gib für ‚Anzahl‘ einen Festwert an.

Application.ScreenUpdating = False 'Macht die Ausführung dieses Codes schneller.

Dim i As Long
Dim Anzahl As Long

Anzahl = Application.WorksheetFunction.CountA(Sheets(1).Columns(„A“))

With Sheets(1)
For i = 1 To Anzahl
If Len(.Cells(i, 1)) = 5 And Not IsNumeric(.Cells(i, 1)) Then .Cells(i, 1) = .Cells(i, 1) & „.0“ 'wenn länge =5 und keine Zahl dann…
Next i
End With

Application.ScreenUpdating = True
End Sub

Gruß Andreas

Hallo Tschejtx,

mangels Information gehe ich mal von Excel aus und dass Du einen Knopf drücken willst um die Spalte zu durchsuchen und verändern.

[Für Tabellenblatt würde z. B. folgende Formel funzen: =WENN(LÄNGE(A2)>5;A2 & „.0“;A2)]

Hier mal der VB-Code:

Sub Spaltepruefen()
Dim zeile As Integer

With ActiveWorkbook.Worksheets(„Tabelle1“) 'Hier den Namen der Tabelle ändern
For zeile = 1 To 5 'Hier die Zeilennummern ändern
If Len(.Cells(zeile, „A“)) > 5 Then
.Cells(zeile, „A“) = .Cells(zeile, „A“).Text & „.0“
Else
End If
Next zeile
End With
End Sub

Gruß
Harry

versuche es mal hiermit:

Code:

Variable = Len(Text)

Gruß

Hallo

Sorry das ich erst jetzt antworte. hatte noch keine zeit.
Wennst noch hilfe brauchst, kann dir helfen.
gruß fred

sub zumbsp()
for zaler= 1to 100
text=cells(zaler,1).value
if len(text) =5 then
text= text &".=0"
cells(zaler,1).value=text
next
else
next
end sub:

das muesste in VBA funktionieren ,ciao