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

Hulp bij userform

Status
Niet open voor verdere reacties.

spaarie

Terugkerende gebruiker
Lid geworden
11 jul 2011
Berichten
1.784
Beste helpers,

Wie o wie kan mij een handje helpen met het volgende.

Op een externe locatie staan 5 elektratellers met daarop standen. Deze standen moeten door de gebruiker worden ingevoerd en bijgehouden worden. Nu heb ik een userform gemaakt (zie bijlage) waarin je deze standen kan typen. Deze wil ik dan via de knop "invoeren" weggeschrijven naar de desbetreffende maand in het tabblad van dat jaar van de opgegeven datum in de userform.

Ik ben al bezig geweest met voorbeeldbestandjes enz. want mijn kennis van VBA schort een beetje, maar deze zijn te uitgebreid en zie ik door de bomen het bos niet meer.
Hints of tips naar (kleinere/simpelere) bestanden mag ook...
 

Bijlagen

  • 12204.xls
    51,5 KB · Weergaven: 49
als je opbouw zo blijft.

Code:
Private Sub CommandButton1_Click()
For i = 1 To 5
Sheets(Trim(Year(TextBox6.Value))).Cells(Month(TextBox6.Value) + 3, i + 1).Value = Controls("textbox" & i).Value
Next
End Sub

Niels
 
Laatst bewerkt:
Niels,

Bedankt voor je reactie.
Ik had een paar knoppen anders genoemd dus moest ff wat aanpassen, maar hij werkt wel.

Alleen aangezien je de eerste 5 textboxen gegroepeerd hebt als "i" hoe kan ik alleen de hoofdteller vermenigvuldigen met 300 en hoe sluit ik hem af zodra er op "invoeren" is geklikt :)?
 
Code:
Private Sub CommandButton1_Click()
For i = 1 To 5
If i = 1 Then n = Controls("textbox" & i).Value * 300 Else n = Controls("textbox" & i).Value
Sheets(Trim(Year(TextBox6.Value))).Cells(Month(TextBox6.Value) + 3, i + 1).Value = n
Next
Unload Me
End Sub

Niels
 
Niels,

Helemaal geweldig! Tot slot 1 vraagje :D sorry. Ik probeer een knop te maken om meerdere standen in te vullen (voor als ze het een keer vergeten zijn). Dus dat userform "invoeren" opnieuw geladen wordt.
Code:
Private Sub meerdere_Click()
Load (invoeren)
End Sub

Misschien te simpel gedacht, maar hij geeft natuurlijk een foutmelding :(
 
zo iets?

Code:
Private Sub meerdere_Click()
unload me
invoeren.show
End Sub


Niels
 
Laatst bewerkt:
Ja toppie! Had zelf ook de invoeren.Show gevonden maar niet de unload me.

Geweldig, je bent een kanjer! Kan een slotje op...
 
Toch nog een vraagje :D

De getallen die ingevoerd gaan worden hebben 2 cijfers achter de komma (bijv. 123456,78). Als ik dit invoer in me textbox met een komma of punt wordt dit niet weergegeven in het tabblad.
 
Ligt dat aan je celeigenschappen?
in je eigen voorbeeld werkt het nl wel.

Niels
 
Uuuuuhm..... als je een getal hebt met 2 decimalen en je doet deze maal een hondergetal kom je altijd op een rond getal uit :D (wiskunde...wie kent het niet)
Had jij dit zo snel door?? Ik nog niet..... dus dit is opgelost

MAAR als ik bij de volgende tellers een getal met komma invoer krijg ik zo'n uitroeptekentje of ik hem naar getal wilt conventeren en me =SOM blijft op ,00 staan...
 
Ik had dat inderdaad meteen in de gaten , maar had niet verwacht dat je het daar over had.:p

Dit komt waarschijnlijk door het gebruik van een verkeerde komma (die van de tekstkant van je toetsenbord maakt er tekst van).
probeer het zo eens.

Code:
Private Sub CommandButton1_Click()
For i = 1 To 5
If i = 1 Then n = Controls("textbox" & i).Value * 300 Else n = replace(Controls("textbox" & i).Value,",",".")
Sheets(Trim(Year(TextBox6.Value))).Cells(Month(TextBox6.Value) + 3, i + 1).Value = n
Next
Unload Me
End Sub
Niels
 
Slimme Niels :cool:

Het zal een keer zo zijn dat het niet werkt.... maar nee hoor. Ook deze werkt weer :thumb:

MAAR wat dacht je van deze... als ik bij datum 15-10-2012 invoer komen de standen in november te staan. Als ik 15-5-2012 doe komt ie wel in mei te staan. Dus het ligt aan die dubbele cijfers van maanden... is dat op te lossen?
 
Bij mij in jouw voorbeeld bestand niet hoor,
Komt netjes in oktober te staan.
Heb je toevallig oktober en november omgedraait?

Niels
 
Ik heb deze aangepast naar + 2 ipv + 3 en nu werkt hij wel:
Code:
Private Sub invoeren_Click()
For i = 1 To 5
If i = 1 Then n = Controls("textbox" & i).Value * 300 Else n = Replace(Controls("textbox" & i).Value, ",", ".")
Sheets(Trim(Year(datum.Value))).Cells(Month(datum.Value) [COLOR="#FF0000"]+ 2[/COLOR], i + 1).Value = n
Next
Unload Me
End Sub

Ik heb er trouwens nog een opmerking over gekregen. Dat zodra er gemeten wordt en ingevoerd dan moet het resultaat in de maand er voor komen van de datum die ingevuld wordt...
Ik ga zelf ook ff proberen...

EDIT: heb nu de rode +2 naar +1 gezet en hij komt in de maand ervoor... :D
 
Laatst bewerkt:
Of te wel je heb een rij verwijdert tov je voorbeeldbestand?

Als je die dan ook nog eens in +1 verandert dan heb je een maand eerder maar dan kun je niet terug naar vorig jaar, als dat wel nodig is dan moeten we daar nog iets voor verzinnen.
Dus wat doe je in januari 2013? Maar waarom laat je ze niet de maan opgeven waarvan de opname is?
ze voeren nu wel een datum in maar daar doe je niks mee?

Niels
 
Laatst bewerkt:
bij deze een maand eerder. in januari dus december van het jaar ervoor.

Code:
Private Sub CommandButton1_Click()
For i = 1 To 5
If i = 1 Then n = Controls("textbox" & i).Value * 300 Else n = Replace(Controls("textbox" & i).Value, ",", ".")
Sheets(Trim(Year(DateAdd("m", -1, TextBox6.Value)))).Cells(Month(DateAdd("m", -1, TextBox6.Value)) + 2, i + 1).Value = n
Next
Unload Me
End Sub

Niels
 
Niels,

In de bijlage wat ik tot nu toe heb. Ik ben ook bezig met scrollarea in "thisworkbook", maar als ik de macro "nieuw_jaar" uitvoer lockt hij niet het nieuwe tabblad en als ik geen datum invul in op me userform krijg ik een foutmelding. Hier zou eigenlijk een prompt moeten komen met "FOEI, dat mag niet" ofzo :D

EDIT: ik zie nu je reacties allemaal, maar ik laat hem nu toch me tabblad invullen aan de hand van de datum? Alleen een maand daarvoor om het zo te zeggen... ow ja... kan ik ook de cellen beveiligen die ingevuld zijn/worden???
 

Bijlagen

  • 12204.xls
    48 KB · Weergaven: 36
Laatst bewerkt:
Niels,

Ik ben lastig ik weet het sorry, maar kan ik ook alle cellen beveiligen, maar dat er nog wel in geschreven kan worden door de userform?
De scrollarea wil niet lukken als ik de macro "nieuw_jaar" uitvoer en ik krijg een foutmelding "13" als hoofdteller niet ingevuld is maar dat is dan zoiets?
Code:
Private Sub invoeren_Click()
For i = 1 To 5
[COLOR="#FF0000"]If i = 0 Then???[/COLOR]
If i = 1 Then n = Controls("textbox" & i).Value * 300 Else n = Replace(Controls("textbox" & i).Value, ",", ".")
Sheets(Trim(Year(DateAdd("m", -1, datum.Value)))).Cells(Month(DateAdd("m", -1, datum.Value)) + 2, i + 1).Value = n
Next
Unload Me
End Sub
 
had de beveiligings vraag gemist, bij deze

Code:
Private Sub invoeren_Click()

For i = 1 To 5
    If i = 1 Then n = Controls("textbox" & i).Value * 300 Else n = Replace(Controls("textbox" & i).Value, ",", ".")
    With Sheets(Trim(Year(DateAdd("m", -1, datum.Value))))
        .Protect Password:="0000", UserInterfaceOnly:=True
        With .Cells(Month(DateAdd("m", -1, datum.Value)) + 2, i + 1)
            .Value = n
            .Locked = True
        End With
    End With
Next
Unload Me
End Sub

Niels
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan