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...
Het is geen schande om langzaam vooruit te komen, wel om blijvend stil te blijven staan...
als je opbouw zo blijft.
NielsCode: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
Laatst aangepast door Niels28 : 16 mei 2012 om 08:56 Reden: naar juiste sheet
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?
Het is geen schande om langzaam vooruit te komen, wel om blijvend stil te blijven staan...
NielsCode: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,
Helemaal geweldig! Tot slot 1 vraagjesorry. 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.
Misschien te simpel gedacht, maar hij geeft natuurlijk een foutmeldingCode:Private Sub meerdere_Click() Load (invoeren) End Sub![]()
Het is geen schande om langzaam vooruit te komen, wel om blijvend stil te blijven staan...
zo iets?
Code:Private Sub meerdere_Click() unload me invoeren.show End Sub
Niels
Laatst aangepast door Niels28 : 16 mei 2012 om 09:40
Ja toppie! Had zelf ook de invoeren.Show gevonden maar niet de unload me.
Geweldig, je bent een kanjer! Kan een slotje op...
Het is geen schande om langzaam vooruit te komen, wel om blijvend stil te blijven staan...
Toch nog een vraagje
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.
Het is geen schande om langzaam vooruit te komen, wel om blijvend stil te blijven staan...
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(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...
Het is geen schande om langzaam vooruit te komen, wel om blijvend stil te blijven staan...
Ik had dat inderdaad meteen in de gaten , maar had niet verwacht dat je het daar over had.
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.
NielsCode: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
Slimme Niels
Het zal een keer zo zijn dat het niet werkt.... maar nee hoor. Ook deze werkt weer
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?
Het is geen schande om langzaam vooruit te komen, wel om blijvend stil te blijven staan...
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:
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...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) + 2, i + 1).Value = n Next Unload Me End Sub
Ik ga zelf ook ff proberen...
EDIT: heb nu de rode +2 naar +1 gezet en hij komt in de maand ervoor...![]()
Laatst aangepast door spaarie : 16 mei 2012 om 13:58
Het is geen schande om langzaam vooruit te komen, wel om blijvend stil te blijven staan...
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 aangepast door Niels28 : 16 mei 2012 om 14:21
bij deze een maand eerder. in januari dus december van het jaar ervoor.
NielsCode: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,
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
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???
Laatst aangepast door spaarie : 16 mei 2012 om 14:56
Het is geen schande om langzaam vooruit te komen, wel om blijvend stil te blijven staan...
Zie bijlage.
12204(2).xls
Niels
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 If i = 0 Then??? 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
Het is geen schande om langzaam vooruit te komen, wel om blijvend stil te blijven staan...
had de beveiligings vraag gemist, bij deze
NielsCode: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