namen voor variabelen die overal gebruikt kunnen worden

Status
Niet open voor verdere reacties.

tvkijker

Gebruiker
Lid geworden
3 mrt 2006
Berichten
125
In veel codes zie ik dat variabelen een eenvoudige naam krijgen en dan in de code steeds gebruikt kunnen worden (bv een langefilenaam= BESTAND en dan steeds BESTAND gebruiken. Ongeveer hetzelfde in Excel. Bepaalde reeksen of arrays krijgen een naam, die in de sheet gewoon in een formule is te gebruiken.
Nu heb ik een administratie programma gemaakt dat nu in concept redelijk werkt. Ik werk daarbij met meerdere werkbladen en sheets. Ik wil nu het geheel stroomlijnen en zoveel mogelijk dezelfde namen gebruiken. Dan kan ik een code later(over een half jaar bijv.) als ik iets wil veranderen ook sneller begrijpen. Hoe moet ik dit opzetten ?
Groeten,
Dirk
 
Je vraag is niet overdreven duidelijk; wat wil je precies en in welk programma? Variabelen declareer je binnen procedures en gebruik je binnen functies en procedures. Voor zover ik weet kun je in Excel geen variabelen in formules gebruiken. Wel kun je een functie maken waarin je variabelen gebruikt. Maar of je dat bedoelt? In Access heb je het object TempVars, en dat is een variabele die je in queries etc. kunt gebruiken. Of je dat bedoelt? Geen idee...
 
Wat je zou kunnen doen:
Declareer in een macromodule een public array variabele.
Al je gegevens kun je daarin zetten en overal gebruiken: in de codemodule van het werkboek, de codemodule van een werkblad, de codemodule van een userform en in andere macromodules.

Code:
Public sn
Sub eerst()
  sn=split("bestand1|folder12|jouw naam","|")
end sub
 
Beste mensen,
Sorry dat ik niet duidelijker ben . Het betreft in ieder geval Excel. Verder dacht ik dat bv. de variabele in A3 de naam NAAM geef ik in een andere cel bij de notatie =NAAM de waarde A3 krijg. Dat is wat ik bedoelde en ik als formule zag. Tot zover mijn verduidelijking.
Als ik snb begrijp geeft hij een voorbeeld en mag ik tussen Sub eerst() en en end Sub alle variabelen mag benoemen. Of moet ik voor elke variabele een macromodule aanmaken ?
Gr. Dirk
 
Tja, daar zijn nogal wat mogelijkheden voor - die dan ook nog afhankelijk van Excel versie handig of minder handig zijn.
Wil je de variabelen in een module hebben? Of in een sheet? Worden ze aangepast door de gebruiker? Of zijn ze altijd hetzelfde?
Als je ze bijvoorbeeld in een module wilt hebben die alleen door jou wordt gewijzigd, zou je ze ook in een functie kunnen plaatsen:
Code:
Public Function GetMyVar(VarName As String)
    Select Case UCase(VarName)
        Case "BESTAND"
            GetMyVar = "FileName.txt"
        Case "PRINTER"
            GetMyVar = "PDFCreator"
        Case Else
            GetMyVar = "Unknown variable"
    End Select
End Function

Je kunt dan in de Excel sheet gewoon de functie aanroepen met
Code:
=GetMyVar("Bestand")
 
Ik begrijp nu uit je vraag dat je met Namen(reeksen) wilt werken. Wat is nu dan je vraag? Zo te zien kun je namen aanmaken, en ook al gebruiken in formules. En verder?
 
Beste,

De Namen die ik wil gebruiken zijn de namen voor objecten in speciaal die gaan over files en bestanden. Omdat die niet op alle PC's gelijk ingedeeeld zijn. En voor de rest lijkt het mij ook overzichtelijk. De opzet van Rene lijkt mij een handige en begrijp ik het goed kan ik de code =GetMyVar("Bestand") en voor alle andere gewoon onder knoppen zetten, zodat ik op 1 sheet de controle heb over de naam van deze objecten ?

Vergeef mij dat ik misschien niet consistent ben in mijn lnomenclatuur maar ik doe mijn best om zo begrijpelijk en consistent mogelijk over te komen. Juliie commentaar maakt mij daar scherper op en ik hoop dat dat blijkt. Objecten heb ik nu uit de literatuur opgeduikeld.

Gr,
Dirk
 
Dirk,
In 'mijn' oplossing staan alle variabelen in een module, dat lijkt me niet handig voor je gezien je opmerking dat 'zodat ik op 1 sheet de controle heb over de naam van deze objecten'. Dan kun je beter bijvoorbeeld VLOOKUP (Verticaal Zoeken) gebruiken. Ik vind dat zelf nogal een lompe functie. In plaats van GetMyVar("Bestand") zou dat dan iets worden als VLOOKUP("Bestand";table,2) en die moet dan weer alfabetisch gesorteerd zijn, waardoor het niet zo handig is om variabelen toe te voegen.
Je zou ook zelf een functie kunnen schrijven die de VLOOKUP doet, maar dan zonder de genoemde restricties.
 
Beste Rene,
Heel erg bedankt voor je reactie. Ik heb er snel in gekeken, maar hier moet ik echt rustig voor gaan zitten. Dit is best moeilijk voor mij. Graag een paar dagen geduld (Pinksterklus?)
Groeten,
Dirk
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan