• 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.

Geheel getal opsplitsen in cijfers en vervolgens deze optellen

Status
Niet open voor verdere reacties.

StefanMartens

Nieuwe gebruiker
Lid geworden
29 sep 2014
Berichten
3
Hallo iedereen

Ik hoop dat iemand mij kan helpen zit al uren te zoeken naar de oplossing voor een opdracht in VBA
een geheel getal wordt de parameter en dit getal moet opgesplitst worden in cijfers en vervolgens moeten deze opgeteld worden
een voorbeeld: 51235 moet worden 5+1+2+3+5 als tip hadden we gekregen dat we deze functie konden gebruiken
Function aantalCijfers(getal As Long) As Integer
**Dim tekst As String
**tekst = getal
**aantalCijfers = Len(tekst)
End Function

Kan iemand mij aub helpen, ik word echt wel lichtjes gek :(

alvats bedankt
 
Ik had hem al weer verwijderd omdat er iets niet goed ging. Ik kijk nog even :)

Probeer deze maar eens:
Code:
Function aantalCijfers(getal As Long) As Integer
    Dim i As Integer
    
    For i = 1 To Len(Trim(Str(getal)))
        aantalCijfers = aantalCijfers + Mid(getal, i, 1)
    Next i
End Function

Daarnaast zou ik de functie niet aantalCijfers noemen maar bijvoorbeeld somGetal.
 
Laatst bewerkt:
Deze is al eens voorbij gekomen.
Liefst 4 oplossingen.
 

Bijlagen

  • herleiden.xls
    34,5 KB · Weergaven: 153
Jah het werkt!
heel fel bedankt Edmoor
en die herleiden oefening gaat me ook nog wat kunnen helpen

zou u misschien ook even de de denkwijze kunnen vertellen, uiteindelijk zal ik het toch zelf moeten kunnen :)
misschien in verschillende stappen zodat
* eerst het geheel getal kan geinterpreteerd worden als aparte cijfertjes

dat gebeurde denk ik met deze functie (tip van de prof deze functie gebruiken):

Function aantalCijfers(getal As Long) As Integer
**Dim tekst As String
**tekst = getal
**aantalCijfers = Len(tekst)
End Function

* En vervolgens dat die cijfertjes apart gebruikt kunnen worden om ermee te rekenen

In ieder geval al hartelijk bedankt, ik apprecieer het echt enorm
 
Er zijn geen andere variabelen nodig dan alleen de i die als teller fungeert.
De parameter met de naam getal wordt door Excel gevuld en is in je voorbeeld het getal 51235.
Str(getal) converteert de inhoud van numeriek naar string.
Trim haalt een eventuele voorloop spatie weg.
Len bepaalt de lengte van de string, in dit geval is dat 5.
Mid haalt in dit geval per positie 1 cijfer uit het getal en telt die op bij de vorige.
 
Laatst bewerkt:
Om het nog maar niet eens te hebben over:

Code:
Function F_snb(c00)
   F_snb = Evaluate(Format(c00, Replace(space(Len(c00)), " ", "+@")))
End Function
 
Laatst bewerkt:
Keurig. Maar ik heb het gevoel dat die zelfs voor de prof van Stefan te hoog gegrepen is ;) :p

Die van mij kan ook iets eenvoudiger door de parameter als string in te nemen in plaats van een long.
Dat doet Evaluate tenslotte ook:

Code:
Function SomGetal(getal As String) As Integer
    Dim i As Integer
    
    For i = 1 To Len(getal)
        SomGetal = SomGetal + Mid(getal, i, 1)
    Next i
End Function
 
Laatst bewerkt:
@edmoor

Je hebt gelijk, hij kon nog iets eenvoudiger.
 
{=sum(--mid(a3;row(offset(a1;;;len(a3)));1))}
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan