Variabel aantal variabele definieren

Status
Niet open voor verdere reacties.

Joete

Gebruiker
Lid geworden
19 sep 2008
Berichten
87
Hmmzzzz, leuke titel al...maar ik kom er niet uit...

Ik ben bezig met een macro voor een planning voor op het werk. Ik heb het bestand thuis, dus moet het even uit mijn hoofd doen.

Het probleem waar ik tegen aan loop is dat in kolom A de medewerkers staan, ik kolom D staan de projecten die bij de desbetreffende medewerker horen. Nu wil ik de gebruiker van de planning bij het verplaatsen van een project van de "Komt nog binnen lijst" naar een medewerker een keuze laten maken uit de medewerkers. Probleem is dat er medewerkers bij kunnen komen en kunnen vertrekken (aantal), maar ook de projecten zorgen er voor dat medewerkers op wisselende rijen staan (locatie).
Die locatie ga ik denk ik nog wel een keer uitkomen, maar het aantal loop ik nu eerst even tegenaan. Op het blad heb ik een aantal waarden staat, waaronder een getal met het aantal medewerkers in de planning (cel C9).
Op dit moment zijn het 8 medewerkers, dus dan zou ik normaal gesproken het volgende gebruiken:
Code:
Dim Medewerkers (1 To 8) As String
Maar het probleem is nu dat die waarde 8, dus eigenlijk uit cel C9 moet komen (een telling via een formule mag ook, misschien slimmer wanneer C9 "illegaal" aangepast zou worden, bekijk ik later wel). Dit zou het dus eigenlijk moeten zijn:
Code:
Dim MW As Integer
MW = CInt(Range("C9").Value)
Dim Medewerkers (1 To MW) As String
Maar hoe doe ik dat? Volgens mij kan ik geen andere variabele in een Dim gooien, tenminste, dat krijg ik niet aan de praat...

Wie kan mij helpen?
Alvast bedankt!
 
Maak van de Dim eens Redim

Code:
ReDim Medewerkers(1 To MW)
 
Vergeet dat variabelengedoe:

Code:
sn=sheet1.range("C9").currentregion
 
Waarbij sn een variabele is ;)
 
Bedankt alvast!

ReDim kende ik niet, ga ik thuis als ik weer verder ga met het bestand eens proberen.

@snb: Wat doet die CurrentRegion dan dat dit beter/anders werkt? Als ik dat zo bekijk pakt die ook de omliggende cellen? Dat moet dan weer net niet, want daar staan ook weer andere waardes in die niet gebruikt moeten worden... In C9 staat alleen het aantal medewerkers, de medewerkers zelf staan her en der in kolom A. Ben benieuwd waarvoor je deze dus gebruikt en of ik mijn code beter aan kan passen...probeer te leren zeg maar...
 
Gebruik Redim Preserve als je wilt dat de huidige waarden van de array intact blijven.
 
Als je gegevens van alle medewerkers uit een Excel werkblad in een VBA array wil schrijven kun je ze het beste in het werkblad bij elkaar zetten.
Als dat niet het geval is kun je waarschijnlijk beter de struktuur van je werkblad optimaliseren dan VBA capriolen uithalen.('structuring precedes coding')
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan