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

Vraag van collega i.v.m. 4/5

Status
Niet open voor verdere reacties.
en je vriend die dit aanbeveelt heeft geen antwoord op je vragen?
 
Begin eens met naar je declaraties te kijken, want die zijn op zijn minst onlogisch. Dit is namelijk wat je doet:
Code:
Dim RngIntersect
Dim RngIntersectMaanden
Dim Rngjanurai
Dim Rngfebruari
Dim Rngmaart
Dim Rngapril
Dim Rngmei
Dim Rngjuni
Dim Rngjuli
Dim Rngaugustus
Dim Rngseptember
Dim Rngoktober
Dim Rngnovember
Dim Rngdecember As Range
Dim RngIntersectWeekenden
Dim RngjanuariWeekend
Dim RngfebruariWeekend
Dim RngmaartWeekend
Dim RngaprilWeekend
Dim RngmeiWeekend
Dim RngjuniWeekend
Dim RngjuliWeekend
Dim RngaugustusWeekend
Dim RngseptemberWeekend
Dim RngoktoberWeekend
Dim RngnovemberWeekend
Dim RngdecemberWeekend As Range

Alleen de laatste variabelen in de eerste twee regels worden als Range gedefinieerd, de rest als Variant. Heb je daar een reden voor?
 
In vb.net zet je alles op één rij zetten en achteraan het type en alles is van dit type. En heb dit weekend ook geleerd hoe je de locale variable kunt zien.
Ze moeten allemaal van rang zijn
 
maar in Office gebruiken we VBA, dat is niet 1 op 1 hetzelfde...
 
Je bedoelt te zeggen "omdat dat daar niet snel genoeg reactie kwam" Geduld is een schone zaak. Veelal iedere helper heeft overdag iets te doen buiten Helpmij.
 
Laatst bewerkt:
Ga geen namen noem maar iemand beweert dat ik de code niet heb gemaakt is totaal eigen code met hulp van hier.
En die persoon zei da dat mijn code nodeloos ingewikkeld is.
Maar programmeren is voor mij louter een hobby ZEKER niet MIJN dagtaak
Dus ken ik ook niet alle bestaande functies zoals Evaluate. Dan doe ik misschien het op een langer manier maar werkt ook.
 
zeg die lokale variabele kun je die enkel zien als je de code runt.
 
@hsv denk niet dat je het juist snapt wat ik bedoel.
een vriend heeft ontdekt dat de meeste variabele in een bepaalde module van het type variant zijn en niet van het type range zoals het zou moeten zijn.
Mijn vraag was eigenlijk kan ik enkel de lokale variabele zien als ik de code debug. of ook als ik de code maak
 
Dan moet je het beter formuleren in het vervolg.

Je moet op voorhand weten welke declaratie je moet maken.
Je kan de waarde en het type allen zien bij debuggen.
Aan het einde van de code is je venster weer leeg.
 
Een Variant krijgt z'n werkelijke datatype op het moment dat er voor het eerst een waarde aan toe wordt gekend.
Dus: Dim Var As Variant (Of laat As Variant gewoon weg)

De variabele Var is daarmee een Variant.
Als hij daarna eerst een regel of een woord tekst krijgt is het een String.
Krijgt hij eerst een getal is het afhankelijk van dat getal, dus een Byte, Integer, Long of Double.

Heeft een Variant eenmaal een datatype gekregen dan kan die daarna niet meer wijzigen.
Het verkregen type kan je in Debug mode opvragen met: ?Typename(Var)

Uiteraard zijn er meer datatypes die door een Variant aangenomen kan worden.
Ze mogen allemaal, maar het zal nooit een String van een vaste lengte zijn en een User Defined Type is ook niet toegestaan.

Laat je bij Dim het datatype weg dan declareer je altijd een Variant en dat is de duurste qua geheugen gebruik.
Dim A, B, C As String, maakt A en B een Variant en C een String.
 
Laatst bewerkt:
thx voor de uitleg edmoor.
Bij vb.net zet je meerdere variabele en dan bij het laatste het type dan krijgt alles het zelfde type
Dus daar ik een beetje vb.Net dacht ik is ook microsft en dacht dat het gelijkaardig werkte wat dus niet het geval is.

Maar weet iemand hoe ik de post #20 zou kunnen vereenvoudigen
Zou ik een array kunnen gebruiken?
Maar hoe dan verder
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan