2009
09.04.13,07:51
Dobrý deň

Potrebovala by som doplniť v reťazci pred bodkou a za bodkou dva číselné znaky.

Príklad :



XA1.1

rovná sa

XA01.01





XA1.10

rovná sa

XA01.10





XA2.3.1

rovná sa

XA02.03.01






Ďakujem:)
2009
09.04.13,06:14
Zabudla som dodať, že vždy sa dopĺňa dopredu 0 pokiaľ je tam iba jedno číslo.
PaloPa
09.04.13,06:55
Napr. takto:


Sub PridajNulu()
'
Dim xRng As Range, uu, x, a, i, c As Range
uu = "XA" 'prefix, ktory treba oddelit

Set xRng = Selection
For Each c In xRng
x = c.Value
x = Mid(x, Len(uu) + 1)
a = Split(x, ".")

For i = LBound(a) To UBound(a)
If Len(a(i)) = 1 Then
a(i) = "0" & a(i)
End If
Next i

c.Value = uu & Join(a, ".")
Next c

End Sub

P.
2009
09.04.13,07:25
Napr. takto:


Sub PridajNulu()
'
Dim xRng As Range, uu, x, a, i, c As Range
uu = "XA" 'prefix, ktory treba oddelit

Set xRng = Selection
For Each c In xRng
x = c.Value
x = Mid(x, Len(uu) + 1)
a = Split(x, ".")

For i = LBound(a) To UBound(a)
If Len(a(i)) = 1 Then
a(i) = "0" & a(i)
End If
Next i

c.Value = uu & Join(a, ".")
Next c

End Sub

P.

:confused: teraz vidím zadala som otázku zle. Reťazec sa nezačína rovnako. Môže tam byť jeden až viac Alfa znakov. Príklad:


A4.1
A04.01


A8.1.1.1
A08.01.01.01


XC1.3.01
XC01.03.01


Základ je vždy pred bodkou a za bodkou dva numerické znaky. Pokiaľ je tam iba jeden doplň ako prvú 0
PaloPa
09.04.13,07:37
Ej veru, nedávaš ty ľahké zadania :)



Sub PridajNulu()
'
Dim xRng As Range, uu, x, a, i, c As Range, j, u

Set xRng = Selection
For Each c In xRng
x = c.Value

uu = "" 'prefix, ktory treba oddelit
For j = 1 To Len(x)
u = Mid(x, j, 1)
If (IsNumeric(u)) Or (u = ".") Then
Exit For
Else
uu = uu & u
End If
Next j

x = Mid(x, Len(uu) + 1)
a = Split(x, ".")

For i = LBound(a) To UBound(a)
If Len(a(i)) = 1 Then
a(i) = "0" & a(i)
End If
Next i

c.Value = uu & Join(a, ".")
Next c

End Sub
2009
09.04.13,08:02
Ej veru, nedávaš ty ľahké zadania :)



Sub PridajNulu()
'
Dim xRng As Range, uu, x, a, i, c As Range, j, u

Set xRng = Selection
For Each c In xRng
x = c.Value

uu = "" 'prefix, ktory treba oddelit
For j = 1 To Len(x)
u = Mid(x, j, 1)
If (IsNumeric(u)) Or (u = ".") Then
Exit For
Else
uu = uu & u
End If
Next j

x = Mid(x, Len(uu) + 1)
a = Split(x, ".")

For i = LBound(a) To UBound(a)
If Len(a(i)) = 1 Then
a(i) = "0" & a(i)
End If
Next i

c.Value = uu & Join(a, ".")
Next c

End Sub



:):) Ánóóóó.. Presne toto potrebujem. Vieš každý kvartál spracovávam určité dávky. Majú okolo 18 tisíc riadkov a k dispozícii mám iba Excel. Doteraz som to robila tak, že som delila text na stĺpce podľa bodiek a dopĺňala nulu. Ako za čias Márie Terézie fňuk :mee:.
Máš u mňa čokoládku. Evika
PaloPa
09.04.13,08:05
... pošli faxom :-)