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

Opgelost LEN formules

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

kattenbe

Gebruiker
Lid geworden
12 jan 2016
Berichten
45
Besturingssysteem
Windows
Office versie
365
Goede middag,
Op You Tube heb ik (ik noem ze LEN) macro’s gevonden die bij het invoeren van data in textboxen ook direct de volgende textBoxen 0nline berekend en vult.
Zie daarvoor ook mijn Userform.
Nu krijg ik de relatieve makkelijke formules hiervoor wel verwerkt maar worden die wat moeilijker dan krijg ik dat niet meer voor elkaar.
Mijn vraag is: kunnen mijn formules (zie Blad 1) op de zelfde wijze via een macro werken en zo ja kan iemand mij dan die macro's leveren?
Bij voorbaat dank.
kattenbe
 

Bijlagen

  • Helpmij LenMacro Sept10.xlsm
    34,2 KB · Weergaven: 14
Ik kan er morgen of zo eens naar kijken maar je codes zijn een zootje.
Je roept geen codes aan in je userform via Call macro' in een module (mits een paar uitzonderingen), je plaatst die rechtstreeks in je userform programma code.
Maar met je beperkte uitleg,graag wat meer.
 
Beste djutoch,

De macro-gegevens heb ik zoals gezegd van You Tube gehaald. zie eventueel daarvoor: Automatically add the result to a textbox without pressing a button | SUM of two or more Textboxes.
Ik heb geprobeerd om dit in "mijn" userform te verwerken.

En met een aantal textBoxen gaat het goed alleen kan ik de wat uitgebreide formules niet verwerken.

Bvd Kattenbe
 
En met een aantal textBoxen gaat het goed alleen kan ik de wat uitgebreide formules niet verwerken.
Je haalt wat dingen door elkaar vba code is/zijn geen formules .

Maak je vraag wat duidelijker desnoods met een ingevulde schermafdruk met de gewenste resultaten in je userform.
 
Het lijkt mij stug dat het goed gaat, je hebt een aantal oneindige loops ingebouwd.
Voorbeeld:
Toets een waarde in TxbATmM
Dan wordt Calculation uitgevoerd
Calculation wijzigt TxbATmM
Dan wordt Calculation uitgevoerd
Calculation wijzigt TxbATmM
Dan wordt Calculation uitgevoerd
etc.

Bovendien krijg je niet eens de gelegenheid om meer dan 1 karakter in te voeren, je kunt daarom dan ook beter de AfterUpdate event gebruiken, die wordt geactiveerd op het moment dat je op Enter drukt of de textbox op andere wijze verlaat.
De oneindige loops kun je voorkomen door in de Calculation subroutines de events tijdelijk uit te schakelen, bijvoorbeeld:
Code:
Sub Calculation()
    Application.EnableEvents = False
    Dim X As Double
    
    If TxbATmC <> vbNullString Then X = X + TxbATmC.Value
    If TxbBrtn <> vbNullString Then X = X / TxbBrtn.Value
    TxbATmM = X
    Application.EnableEvents = True
End Sub
Bovenstaande sub heb ik verplaatst van Module1 naar de code van het formulier, véél handiger.
Als er in Sub Calculation een fout optreedt blijft Application.Enableevents False, dus gebeurt er niets meer, je zult daarom error handling moeten toevoegen.
 
Toch maar even de broncode gereorganiseerd, geeft dit de resultaten die je voor ogen had?
 

Bijlagen

  • Helpmij LenMacro Okt10.xlsm
    42,8 KB · Weergaven: 3
Dit lijkt me eerder een topic om in het excel forum te behandelen als bij de databases.
 
Goede middag AHulpje, bedankt voor je inzet.

Wanneer ik het userform invoer dan blijven de textboxen, TxbABelg, TxbBBelg, TxbANed en TxbBNed toch leeg.
Mijn wens is juist dat alle textboxen (zowel handmatig als d.m.v. formules) gevuld zijn/worden.

Kattenbe
 
TxbABelg = 10 * (Val(TxbAGmC) / Val(TxbATmC))
Dus moet TxbATmC een waarde <> 0 hebben.
Voor TxbBBelg geldt eenzelfde redenering.
En TxbANed en TxbBNed zijn daarvan afhankelijk, dus kunnen dan ook niet berekend worden.
En je wordt daar ook niet op gewezen.
Als je
Code:
Sub CalculationE()
    On Error Resume Next
    TxbABelg = 10 * (Val(TxbAGmC) / Val(TxbATmC))
    TxbBBelg = 10 * (Val(TxbBGmC) / Val(TxbBTmC))
End Sub
wijzigt in
Code:
Sub CalculationE()
    If Val(TxbATmC) = 0 Then
        MsgBox "TxbATmC=0, TxbABelg kan niet berekend worden."
        Exit Sub
    End If
    TxbABelg = 10 * (Val(TxbAGmC) / Val(TxbATmC))
    If Val(TxbBTmC) = 0 Then
        MsgBox "TxbBTmC=0, TxbBBelg kan niet berekend worden."
        Exit Sub
    End If
    TxbBBelg = 10 * (Val(TxbBGmC) / Val(TxbBTmC))
End Sub
krijg je een duidelijke waarschuwing.
 
Beste AHulpje,

Ik denk dat ik het niet juist heb uitgelegd.

Allereerst alleen de textboxen TxbATmC en TxbAGmC voor de A speler en TxbBTmC en TxbBGmC voor de B speler worden handmatig ingevoerd.
De andere textboxen worden dan beveiligd tegen invoer.

TxbATmC krijgt als eerste een waarde ingevoerd dat betekend dat TxbATmM door Calculation ook een waarde krijgt.
Dat geldt ook voor TxbAGmC en TxbAGmM.

En met de waardes uit TxbAGmC en TxbAGmM kun je met de formule 10 * (Val(TxbAGmC) / Val(TxbATmC)) TxbABelg uitrekenen en direct plaatsen in die textbox.

En met de waardes in TxbABelg zou je txbANed kunnen bepalen.

Zowel voor de A als voor de B speler.

Ik dank je bijvoorbaat.

Groet
Kattenbe
 
@NoellaG: Een druk op "Attendeer moderator" doet dan wonderen. Inmiddels topic verplaatst naar Excel.
 
Als ik het goed begrijp wordt alleen in de textboxen TxbATmC, TxbAGmC, TxbBTmC en TxbBGmC iets ingevoerd waarna alle andere textboxen daarmee worden berekend?

 
Kijk dan hier eens naar:
 

Bijlagen

  • Helpmij Macro Okt11.xlsm
    44,4 KB · Weergaven: 16
Goede avond AHulpje. Ja dit is het inderdaad. Heel hartelijk dank.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan