[VBA]cijfers uit string halen

Pagina: 1
Acties:
  • 1.608 views sinds 30-01-2008
  • Reageer

  • Sanity11
  • Registratie: Januari 2004
  • Niet online
Ik ben benieuwd of er een manier is om alleen de cijfers uit een string te halen.
Dus de string ziet er zo uit "ditendat4355" en het resultaat is dan 4355

Is daar een mogelijkheid voor?

Ik heb het al zo geprobeerd:
code:
1
2
3
For x = 1 To Len(StrCell) - 2
            strDeel = CStr("N" & Mid(StrCell, x, 3))
Next x


Maar dat werkt alleen als de laatste letters een vast aantal cijfers zijn.
En dat is helaas niet het geval!

Bedankt voor de reacties! :)

www.diovisuals.co,


  • PhysicsRules
  • Registratie: Februari 2002
  • Laatst online: 22-12-2025

PhysicsRules

Dux: Linux voor Eenden

IsNumeric is je vriend.

Visual Basic:
1
2
3
4
For x =1 To Len(strCell)
      letter = Mid(strCell,1,1)
     If Isnumeric(letter) Then strdeel = strdeel & letter
Next x

[ Voor 17% gewijzigd door PhysicsRules op 13-12-2006 15:29 ]


  • Sanity11
  • Registratie: Januari 2004
  • Niet online
Ik zal even wat meer code laten zien.
Ik heb je voorbeeld proberen te gebruiken maar strDeel blijft zo gewoon leeg.

De waarde strCell is nu bijvoorbeeld: ='Softplay Vloerplaat'!L500

Daar wil ik alleen het stukje 500 uit halen en daarvoor een N

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Do Until strPart = strGeselecteerd
        i = i + 1
        strBlad = Worksheets("Niet ingevuld").Range("B" & i)
        StrCell = CStr(Worksheets("Niet ingevuld").Range("A" & i).Formula)
        strPart = Worksheets("Niet ingevuld").Range("A" & i)
        If strPart = strGeselecteerd Then
        For x = 1 To Len(StrCell)
        letter = "N"
        If IsNumeric(StrCell) Then strDeel = letter & StrCell
        Next x
        Worksheets(strBlad).Select
        Range(strDeel).Offset(0, -2).Select
        End If
    Loop

www.diovisuals.co,


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 08-07 22:58

TeeDee

CQB 241

Ik heb even gegoogled, en het is me nu niet 100% zeker of je nu wel of geen Regular Expressions in VBA kan gebruiken.

Mocht dit wel zo zijn, dan heb je imo je probleem vrij vlot opgelost.

Heart..pumps blood.Has nothing to do with emotion! Bored


  • PhysicsRules
  • Registratie: Februari 2002
  • Laatst online: 22-12-2025

PhysicsRules

Dux: Linux voor Eenden

Je checkt steeds of strCell numeric is. Je wil x checken. ;)

Maareh, wat probeer je eigenlijk. Het kan waarschijnlijk simpeler...

Als je trouwens [code=VB] gebruikt wordt je code gehighlight.

[ Voor 19% gewijzigd door PhysicsRules op 13-12-2006 15:52 ]


  • hufkes
  • Registratie: Maart 2000
  • Laatst online: 08-07 01:00

hufkes

nee, daar staat niet hufter!

Wanneer je de letter="N" uit de loop haalt zal het wel goed gaan, nu krijg ja alleen een N met daar achter het laatste cijfertje

[edit] bij nader kijken is hiermee het probleem ook nog niet helemaal eruit nee :) Maar met stom hierboven en alléén de juiste dingen in de loop zetten moet je er wel kunnen komen.

[ Voor 41% gewijzigd door hufkes op 13-12-2006 15:54 ]

Onderstaande signature is al >20jr oud ***hoe dan***
---
Het internet is een veelbelovend medium
....dat maar heel weinig van zijn beloftes nakomt.
Wat weg is... raak je nooit meer kwijt :P


  • Sanity11
  • Registratie: Januari 2004
  • Niet online
TeeDee schreef op woensdag 13 december 2006 @ 15:50:
Ik heb even gegoogled, en het is me nu niet 100% zeker of je nu wel of geen Regular Expressions in VBA kan gebruiken.

Mocht dit wel zo zijn, dan heb je imo je probleem vrij vlot opgelost.
Hmm, ik ben nog redelijk nieuw in vba.
Ik heb ook proberen te googelen maar ik weet niet zo goed welke zoektermen ik moet gebruiken hiervoor.

www.diovisuals.co,


  • PhysicsRules
  • Registratie: Februari 2002
  • Laatst online: 22-12-2025

PhysicsRules

Dux: Linux voor Eenden

Ik ben regular expressions nog nooit in VBA tegengekomen. Misschien via een 3-party component, maar dat is niet de oplossing.

  • PhysicsRules
  • Registratie: Februari 2002
  • Laatst online: 22-12-2025

PhysicsRules

Dux: Linux voor Eenden

Begrijp ik goed dat je een cell zoekt met een bepaalde waarde, dan de onderliggende formule wilt, en op basis daavan een cell wilt selecteren in een ander tabblad een paar kolommen-2 verderop :?

Verwijderd

nofi, maar je bent ongelooflijk aan het aanrommelen. zeg eens eerst wat de bedoeling is.

[cristalballmode]cellen die door de gebruiker onterecht nog niet ingevuld zijn selecteren?[/cristalballmode]

als je de code van PhysicsRules correct integreert moet het wel functioneren, maar je zit rond een ander probleem te draaien.

  • Sanity11
  • Registratie: Januari 2004
  • Niet online
Hmmm. . ik zal in het kort proberen uit te leggen wat ik wil.

Er is een blad met cellen die een formule bevatten waardoor er een tekst weer word gegeven afkomstig van een ander blad.

Door die formule te gebruiken kan ik naar de juiste cel op het andere blad springen.

Waarom dit allemaal nodig is is een lang verhaal.
Maar geloof me, het is nodig ;)

Het zal vast wel beter kunnen maar ik ben nog maar net met VBA begonnen.

Daarom snap ik het nu ook nogsteeds niet:
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
o Until strPart = strGeselecteerd
        i = i + 1
        strBlad = Worksheets("Niet ingevuld").Range("B" & i)
        StrCell = CStr(Worksheets("Niet ingevuld").Range("A" & i).Formula)
        strPart = Worksheets("Niet ingevuld").Range("A" & i)
        If strPart = strGeselecteerd Then
        For x = 0 To Len(StrCell)
        If IsNumeric(x) Then strDeel = letter & x
        Next x
        Worksheets(strBlad).Select
        Range(strDeel).Offset(0, -2).Select
        End If
    Loop


Nu heb ik dit.
Maar word strDeel "N27", dat komt natuurlijk omdat x die waarde heeft gekregen.
Maar dan begrijp ik niet wat je bedoelt.

www.diovisuals.co,


  • Sanity11
  • Registratie: Januari 2004
  • Niet online
PhysicsRules schreef op woensdag 13 december 2006 @ 16:06:
Begrijp ik goed dat je een cell zoekt met een bepaalde waarde, dan de onderliggende formule wilt, en op basis daavan een cell wilt selecteren in een ander tabblad een paar kolommen-2 verderop :?
idd

www.diovisuals.co,


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

offtopic:
Sanity11, je start nu vlak na elkaar een aantal topcis die allemaal aan hetzelfde manco leiden: te weinig informatie in je startpost waardoor mensen telkens aanvullende vragen moeten stellen. Let er ajb op dat je startpost zo volledig mogelijk is en zo is opgesteld dat anderen een duidelijk beeld krijgen van wat je aan het aanrommelendoen bent. ;)


Lees nog eens het belang van een goede openingspost.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • PhysicsRules
  • Registratie: Februari 2002
  • Laatst online: 22-12-2025

PhysicsRules

Dux: Linux voor Eenden

Lees nog eens goed wat ik in mijn allereerste post heb geschreven. Je hebt het niet goed overgenomen. ;)

Daarnaast kan je aanpak simpeler.
Visual Basic:
1
2
3
4
5
6
7
8
9
10
Dim Kolom as Range
Set Kolom =Worksheets("bla").column("A") 

Dim EenCell as Range
Set EenCell = Kolom.Find(strGeselecteerd, xlValue)

Dim BronCell as Range
Set BronCell = new Range(Mid(EenCell.Formula,1))

DOorzoek nu de tekst.



"Worksheets("bla").Find(...) kun je op value zoeken naar de cell die je nodig hebt.

  • Sanity11
  • Registratie: Januari 2004
  • Niet online
Nu heb ik het!

Ik kreeg het gewoon niet voor elkaar terwijl het gewoon een stomme fout blijkt te zijn.

www.diovisuals.co,


  • Sanity11
  • Registratie: Januari 2004
  • Niet online
PhysicsRules schreef op woensdag 13 december 2006 @ 16:31:
Lees nog eens goed wat ik in mijn allereerste post heb geschreven. Je hebt het niet goed overgenomen. ;)

Daarnaast kan je aanpak simpeler.
Visual Basic:
1
2
3
4
5
6
7
8
9
10
Dim Kolom as Range
Set Kolom =Worksheets("bla").column("A") 

Dim EenCell as Range
Set EenCell = Kolom.Find(strGeselecteerd, xlValue)

Dim BronCell as Range
Set BronCell = new Range(Mid(EenCell.Formula,1))

DOorzoek nu de tekst.



"Worksheets("bla").Find(...) kun je op value zoeken naar de cell die je nodig hebt.
Ook daarvoor bedankt,
ga ik ook proberen! :)

www.diovisuals.co,

Pagina: 1