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

VBA en naam definitie

Status
Niet open voor verdere reacties.

Atwist

Terugkerende gebruiker
Lid geworden
24 jan 2006
Berichten
1.076
Besturingssysteem
Wndows 11
Office versie
2016
Hallo

Is het mogelijk om de "naam" definitie te maken in VBA.
Mijn naamlijsten worden telkens door elkaar gegooit en kan er niet achter komen waardoor.
Vandaar dat ik zit te denken om deze indien mogelijk in VBA te zetten
 
Bedoel je dit?:
Code:
ActiveWorkbook.Names.Add Name:="feest", RefersToR1C1:= _
        "=Feestdagen!R1C7:R40C8"
 
zo?

Code:
Sub Macro1()
    ActiveWorkbook.Names.Add Name:="Test", RefersTo:=Range("A1:A27")
End Sub

Niels
 
Ik zat zelf te denken aan de naamlijst in VBA

Zoals
Name="test"
en dan heeft "test"de inhoud:
rood
wit
Blauw
groen
geel

Als dit mogelijk is dan kan er via het werkblad niets meer worden gewijzig en alleen in VBA.

Maar nogmaals ik weet niet of het mogelijk is
 
zo iets?

Code:
Sub Macro2()
 lijst = Array("rood", "blauw", "groen", "geel")
    ActiveWorkbook.Names.Add Name:="test", RefersTo:=lijst
End Sub

Niels
 
Hallo Niels,

Ik denk wel dat dit de oplossing is, heb het in mijn userform gebouwd.
Maar de listbox laat niets zien, volgens mij staat alles goed.
Code:
Private Sub ListBox1_Click()
ListBox1.RowSource = ("=test")
If ListBox1.ListIndex >= 0 Then ListBox2.Enabled = True
End Sub

Sub lijst_test()
 lijst = Array("rood", "blauw", "groen", "geel")
    ActiveWorkbook.Names.Add Name:="test", RefersTo:=lijst
End Sub
 
Het is gebruikelijk om de listbox te vullen bij het openen (dus bij Initialize)

Code:
Private Sub UserForm_Initialize()
Lijst = Array("rood", "blauw", "groen", "geel")
ListBox1.List = Lijst

End Sub

Met vriendelijke groet,


Roncancio
 
Roncancio,

Dank voor je oplossing.

Ik had dit gedaan
Code:
Private Sub UserForm_Initialize()
ListBox1.RowSource = ("=test")
Maar dat werkte niet, zag later dat ik bij ("=test") geen () moest gebruiken.
 
Bij .Rowsource verwacht VBA een cellenbereik.

Met vriendelijke groet,


Roncancio
 
Oke duidelijk

Heb nog een kleine vraag over jou oplossing, deze werkt heel mooi.:thumb:
Maar als ik nu het zelfde wil doen met 2 kolommen.

GZ Gruppenzeichnung

Zoals je het ook kan instellen bij eigenschappen van de listbox
 
Ik dacht dat van het probleem af was dat is ook zo, maar krijg er nu en andere bij.:confused:
Heb namelijk 2 listboxen die weer naar een andere listbox kijken.
Code:
Private Sub ListBox1_Click()
ListBox7.rowsource = ListBox1.Value
ListBox8.rowsource = ListBox1.Value
Maar die werkt nu niet meer, omdat de rowsource functie is weggevallen.

Kan dit ook nog op een andere manier.

Dit heb ik al geprobeerd
Code:
ListBox7.list = ListBox1.Value

Maar dit werkt niet.
 
Laatst bewerkt:
Niet helemaal duidelijk wat de bedoeling is maar met onderstaande code wordt listbox7 gevuld met de lijst van listbox1. Bovendien krijgt listbox7 de waarde van listbox1.

Code:
ListBox7.List = ListBox1.List
ListBox7.Value = ListBox1.Value

Met vriendelijke groet,


Roncancio
 
In mijn tool heeft listbox1 4 land codes "D, NL, ENG, FRA" aan de hand hiervan wordt bepaald in welke taal de teksten moeten komen.
Listbox1 kijkt naar "land" hier staat dus de land codes.
Heb nu 4 naamlijst "D, NL, ENG, FRA" met daarin de betreffende teksten.
Met
Code:
Private Sub ListBox1_Click()
ListBox7.rowsource = ListBox1.Value
ListBox8.rowsource = ListBox1.Value
Werkte dat goed.
Maar nu met
Code:
Private Sub UserForm_Initialize()
Lijst = Array("rood", "blauw", "groen", "geel")
ListBox1.List = Lijst
Niet meer

Zo heb ik het nu
Code:
D = Array("Arbeitszeichnung", "Endgültig", "Endwurf", "Interne Kontrolle", "Vorläufig")
NL = Array("Definitief", "Interne controle", "Ontwerp", "Voorlopig", "Werktekening")

Land = Array("D", "NL", "ENG", "FRA")
ListBox1.List = Land
 
Laatst bewerkt:
Bij het maken van een keuze in Listbox1 verschijnt in Listbox7 de items die bij de keuze van Listbox1 horen.

Code:
ListBox7.List = Range(ListBox1.Value).Value

Met vriendelijke groet,


Roncancio
 
Als ik deze code gebruik krijg ik geen foutmelding, maar listbox 7 & 8 blijven leeg de listboxen reageren wel.



Heb het grote bestand erbij gedaan, zo zou het eruit moeten gaan zien en werken.
 
Laatst bewerkt:
Als ik voor ENG of Fr kies, zie ik wel gegevens in zowel Listbox7 als Listbox8.

Met vriendelijke groet,


Roncancio
 
Volgens mij is dit juist het verkeerde bestand aangezien de bereiken niet benoemd zijn en er in de code niet verwezen wordt naar de bereiken.

Met vriendelijke groet,


Roncancio
 
??????:shocked:

Code:
D = Array("Arbeitszeichnung", "Endgültig", "Endwurf", "Interne Kontrolle", "Vorläufig")
NL = Array("Definitief", "Interne controle", "Ontwerp", "Voorlopig", "Werktekening")

Land = Array("D", "NL", "ENG", "FRA")
ListBox1.List = Land

Hier heb ik deze benoemd in het
Code:
Private Sub UserForm_Initialize()
gedeelte
 
Waar staan de gegevens van D, FR, etc?
In je vorige bestand verwezen ze naar een benoemd cellenbereik.

Met vriendelijke groet,


Roncancio
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan