Ik zit dus met dit werkblad : Printscreen
De bedoeling ervan is dus dat je a.d.h.v. een dropdown list een item en een productielijn kun kiezen en door het invullen van de externe factors M & T worden de hoeveelheid en de kostprijs van de parts berekend. Eenmaal alles ingevuld is wil ik dat de gebruiker via de knop de eindwaardes kan toevoegen in de tabel eronder.
Hiervoor moet ik dus met macro's werken, maar tot voor deze ochtend heb ik eens 1 uurtje in VBA geprutst dus had ik geen idee hoe of wat. na een voormiddag te zitten googlen begrijp ik al de basis van hoe dit werkt en ben ik op dit uitgekomen
Dit werkt op zich, maar doordat ik de waardes als string defineer worden de getalwaardes als textformat in de tabel gezet. Ik probeer deze wel nog te veranderen met .Numberformat= "#" maar dit werkt dus niet.
Een volgende stap die ik wil is dat de gegevens op de volgende rij in de tabel worden geplakt als deze niet leeg is. En als alle rijen vol zijn dan via msgbox een foutmelding geven.
Edit:
Ondertussen mijn probleem met de format opgelost. als integer gegevens defineren ging niet, maar is blijkbaar omdat de waardes te hoog waren. Dus zo opgelost
Ook al werkt dit zoals het moet. Ik heb zo een vermoeden dat dit niet de properste manier van werken is
De bedoeling ervan is dus dat je a.d.h.v. een dropdown list een item en een productielijn kun kiezen en door het invullen van de externe factors M & T worden de hoeveelheid en de kostprijs van de parts berekend. Eenmaal alles ingevuld is wil ik dat de gebruiker via de knop de eindwaardes kan toevoegen in de tabel eronder.
Hiervoor moet ik dus met macro's werken, maar tot voor deze ochtend heb ik eens 1 uurtje in VBA geprutst dus had ik geen idee hoe of wat. na een voormiddag te zitten googlen begrijp ik al de basis van hoe dit werkt en ben ik op dit uitgekomen
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| Sub klikken()
Dim Gegevens(1 To 9) As String
Gegevens(1) = Range("B3").Value
Gegevens(2) = Range("C6").Value
Gegevens(3) = Range("G4").Value
Gegevens(4) = Range("G5").Value
Gegevens(5) = Range("G6").Value
Gegevens(6) = Range("G7").Value
Gegevens(7) = Range("G8").Value
Gegevens(8) = Range("G9").Value
Gegevens(9) = Range("G10").Value
Range("B19:J19") = Gegevens()
Range("C19:J19").NumberFormat = "#"
Range("L19").Value = "=M12"
Range("M19").Value = "=M4"
Range("N19").Value = "=M7"
End Sub |
Dit werkt op zich, maar doordat ik de waardes als string defineer worden de getalwaardes als textformat in de tabel gezet. Ik probeer deze wel nog te veranderen met .Numberformat= "#" maar dit werkt dus niet.
Een volgende stap die ik wil is dat de gegevens op de volgende rij in de tabel worden geplakt als deze niet leeg is. En als alle rijen vol zijn dan via msgbox een foutmelding geven.
Edit:
Ondertussen mijn probleem met de format opgelost. als integer gegevens defineren ging niet, maar is blijkbaar omdat de waardes te hoog waren. Dus zo opgelost
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| Sub klikken()
Dim Gegevens(1 To 7) As Long
Gegevens(1) = Range("G4").Value
Gegevens(2) = Range("G5").Value
Gegevens(3) = Range("G6").Value
Gegevens(4) = Range("G7").Value
Gegevens(5) = Range("G8").Value
Gegevens(6) = Range("G9").Value
Gegevens(7) = Range("G10").Value
Range("B19").Value = "B3"
Range("C19").Value = "C6"
Range("D19:J19") = Gegevens()
Range("L19").Value = "=M12"
Range("M19").Value = "=M4"
Range("N19").Value = "=M7"
End Sub |
Ook al werkt dit zoals het moet. Ik heb zo een vermoeden dat dit niet de properste manier van werken is
[ Voor 19% gewijzigd door Stampertjen op 24-02-2015 15:44 ]