Opgelost Numeriek scheiden van alfanumeriek

Dit topic is als opgelost gemarkeerd

Robert Smidt

Gebruiker
Lid geworden
26 mei 2009
Berichten
931
Beste Forumleden,

Graag zou ik wat hulp willen bij een vraag hoe ik in een kolom, waar teksten én factuurnummers staan, de factuurnummers te scheiden van de tekst en deze te kopiëren naar de kolom rechts.

In kolom B staan de teksten en de factuurnummers (bestaande uit 8 karakters). Nu is het de bedoeling om de factuurnummers te kopiëren naar kolom C. Hierbij is het van belang dat het systeem uitsluitend factuurnummers bestaande uit 8 karakters mag kopiëren. Alle andere nummers (korter óf langer) moet het systeem niets mee doen.

Ik heb inmiddels een opzetje gemaakt in module 1.

Alvast heel hartelijk dank.

Robert
 

Bijlagen

UDF in kolom C: =F_snb(B2)

Code:
Function F_snb(c00)
   sn=split(c00)
   for each it in sn
      if val(it)>9999999 and val(it)<100000000 then F_snb=trim(F_snb & " " & val(it))
   next
End Function
 
Super bedankt.

Ik ben alleen nog aan het worstelen om de code van snb hieraan toe te voegen.
 
@snb
Wel lekker kort, maar je mist de facturen op rij 9, 10, 17, 21, 51, 52 en 59.

En ik miste de dubbele factuurnummers, in bijgaande versie toegevoegd.
 

Bijlagen

Laatst bewerkt:
De code van AHulpje werkt nog niet volledig. Wanneer in kolom B het factuurnummer als eerste staat, dan neemt het systeem deze niet mee. Wat ik niet had beschreven, maar wel in mijn code staat, mijn verontschuldiging daarvoor, is dat de code alleen bij positieve getallen in kolom D van toepassing is.
 
Sorry, ik las jouw reactie net iets te laat. Het eerste probleem is opgelost. Mocht het niet teveel gevraagd zijn, zou het dan alleen van toepassing gemaakt kunnen worden op positieve bedragen in kolom E. Alvast heel hartelijk dank. Overigens heel mooi dat het systeem nu ook de dubbele nummers meeneemt.
 
Code:
Function F_snb(c00)
  sn=split(replace(replace(replace(c00,"/" " "),":"," "),"."," "))
   for each it in sn
      if val(it)>;9999999 and val(it)<100000000 then F_snb=trim(F_snb & " " & val(it))
   next
End Function
 
Dit kun je vast zelf wel op de juiste plaats invoegen:
Code:
        If Cells(r, 4) >= 0 Then
           ...
           ...
        End If
 
Terug
Bovenaan Onderaan