• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Postcode maximaal 4 cijfers - 2 letters

Status
Niet open voor verdere reacties.

loek010

Gebruiker
Lid geworden
1 jul 2016
Berichten
364
Beste hulpverleners,

ik heb nu deze code onder een macro geplaatst

Code:
Sub ChangePostcode()
        Dim i As Long
        Dim startRow As Long
        Dim lastRow As Long
        Dim rng As Range
        startRow = 3
        lastRow = ActiveSheet.Cells(10000, 1).End(xlUp).Row
        For i = startRow To lastRow
            Set rng = Range("E" & i)
                rng = Left(rng.value, Len(rng.value) - 2)
        Next i
End Sub

Die werkt naar behoren mits je het maar eenmalig uitvoert kom ik tot de ontdekking
want bij de volgende keer haalt hij weer 2 karakters weg dat is uiteraard niet de bedoeling

Dus hoe zorg ik er nou voor dat hij er maar maximaal 2 karakters van afhaalt
 
Doe het bestand er eens bij. Om een postcode van 4 cijfers en 2 letters over te houden is er vast wat beters te verzinnen.
 
@VenA

sorry dat ik misschien de vraag niet goed heb geformuleerd ik importeer nu data van uit een ander workbook maar daar staan de postcodes
zoals ze horen te zijn dus 4 cijfers en 2 letters maar ik kan de 2 letters niet gebruiken dus met deze code haal ik inderdaad de 2 letters weg
bij de volgende import haalt van de nieuwe postcodes de letters weg maar ook van de reeds ingevoerde postcodes dus hou ik nog maar 2 cijfers over
vandaar
 
Doe iets met Len() of Not Isnumeric()
 
@HSV

Bedankt Harry voor de hint if not is Isnumeric doet de truc

Code:
Sub ChangePostcode()
        Dim i As Long
        Dim startRow As Long
        Dim lastRow As Long
        Dim rng As Range
        startRow = 3
        lastRow = ActiveSheet.Cells(10000, 1).End(xlUp).Row
        For i = startRow To lastRow
            Set rng = Range("E" & i)
         If Not IsNumeric(rng) Then rng = Left(rng.value, Len(rng.value) - 2)
        Next i
End Sub
 
Dan gaat het zo waarschijnlijk ook wel goed.

Code:
Sub VenA()
  Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row).Name = "Temp"
  [temp] = [=left(temp,4)]
End Sub
 
Ik denk zo beter.
Code:
Sub VenA_hsv()
  Range("e3:e" & Cells(Rows.Count, 1).End(xlUp).Row).Name = "Temp"
  [temp] = [if(row(temp),left(temp,4))]
End Sub

Of alle cellen in E3:E1000 zoals maximaal is aangegeven onafhankelijk van kolom A.
Code:
Sub hsv()
 [e3:e10000] = [if(row(e3:e10000),left(e3:e10000,4))]
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan