Vba cel splitsen

Status
Niet open voor verdere reacties.

joskjos

Gebruiker
Lid geworden
9 sep 2013
Berichten
94
Hallo,


Ik heb een cel die ik middels een macro wil splitsen.
Nu werkt de onderstaande code prima alleen nu zou ik graag willen dat alleen de laatste . wordt gevonden en deze de waarde splitst voor en na de "."

Code:
Sub splitsen_cel()
   Dim objSheet As Worksheet
   Dim objRange As Range
   Dim txtWaarde As String
 
   Set objSheet = Worksheets("Blad1")
   
   For i = 2 To 10

   Set objRange = objSheet.Cells(i, 1)
   txtWaarde = objRange
   Dim teller As Integer
   teller = 2
   plaatsSpatie = InStr(txtWaarde, ".")
   While plaatsSpatie > 1
        Cells(i, teller).Value = Left(txtWaarde, plaatsSpatie - 1)
        txtWaarde = Right(txtWaarde, Len(txtWaarde) - plaatsSpatie - 0)
        txtWaarde = LTrim(txtWaarde)
        plaatsSpatie = InStr(txtWaarde, ".")
        teller = teller + 1
   Wend
   Cells(i, teller) = txtWaarde
   Next i
   Application.ScreenUpdating = False
   
End Sub

Ik heb een voorbeeld bestandje bijgevoegd.

Jos
 

Bijlagen

ALs je één regel vervangt, vindt je gelijk de laatste punt.
Code:
    plaatsSpatie = InStrRev(txtWaarde, ".")
Ik denk dat je hiermee je code wel kunt aanpassen :)
 
Of kijk eens of dit is wat je wil:
Code:
Private Sub CommandButton1_Click()
    Dim Waarde() As String
    
    For i = 2 To 10
        If Cells(i, 1) <> "" Then
            Waarde = Split(Cells(i, 1), ".")
            Cells(i, 2) = Waarde(UBound(Waarde) - 1)
            Cells(i, 3) = Waarde(UBound(Waarde))
        End If
    Next i
End Sub
 
En dan krijg je dit:
Code:
   Set objSheet = Worksheets("Blad1")
    For i = 2 To 10
        Set objRange = objSheet.Cells(i, 1)
        txtWaarde = objRange
        plaatsSpatie = InStrRev(txtWaarde, ".")
        Cells(i, 2).Value = Mid(txtWaarde, plaatsSpatie - 1, 1)
        Cells(i, 3).Value = Mid(txtWaarde, plaatsSpatie + 1, 1)
   Next i
 
@OctaFish, jouw laatste code geeft wel een juiste uitkomst, maar alleen krijg ik foutcode 5!?

@edmoor, jouw code werkt en is inderdaad zoals ik ook bedoel. Is het ook mogelijk dat er gekeken wordt met "." of "-" in de te splitsen cel?
Nu wordt de cel alleen gesplitst met de "."
Kan er ook na 2x een "." of "-" in de cel zich bevinden geplitst worden? In mijn voorbeeld zou de uitkomst dan zijn cel B2: 2, C2: 3, D2: 4

Iedergeval bedankt voor de snelle reactie en hopelijk weet een van jullie met bovenstaande nog iets te doen!?
 
@edmoor, jouw code werkt en is inderdaad zoals ik ook bedoel. Is het ook mogelijk dat er gekeken wordt met "." of "-" in de te splitsen cel? Nu wordt de cel alleen gesplitst met de "."

En dat is wat je vroeg.
Wees dus duidelijker in de varianten die er kunnen zijn.
Daarnaast kan je in die code eenvoudig zien waar die punt wordt gebruikt.
 
Laatst bewerkt:
Klopt helemaal dat is zeker wat ik vroeg. Ik had in het voorbeeld bestandje niet ook de gegevens staan met bijv. 1-2.3.4. Mijn excuus daarvoor. Maar het "-" kan ook zo staan: 1.2-3.4.
 
Misschien.
Code:
Split(Replace(Cells(i, 1), "-", "."), ".")
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan