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

Gebruik Naam in VBA

Status
Niet open voor verdere reacties.

Stone52

Gebruiker
Lid geworden
11 dec 2004
Berichten
320
Forummers,

Is het mogelijk om de in Excel gedefinieerde naam/range (Invoegen - Naam - Definieren) in een VBA-macro te gebruiken ? Zo ja: hoe ?
Vb: als ik cel A1 definieer als Afstand hoe kan ik hieraan, binnen een macro, refereren ?
 
Je maakt een knop aan.

Dan zeg je macro opnemen ( namen geven... - Opnemen)

Dan klik je op cel a1 ga je naar (Invoegen - Naam - Definieren)

Je typt je naam en je zegt Toevoegen OK ( STOP de macro)

Klaar is kees :thumb:

Hetzelfde kan door een knop te maken maar dan de naam te verwijderen

Greetz ;)


Edit: Vraag verkeerd begrepen
 
Laatst bewerkt:
Je maakt een knop aan.

Dan zeg je macro opnemen ( namen geven... - Opnemen)

Dan klik je op cel a1 ga je naar (Invoegen - Naam - Definieren)

Je typt je naam en je zegt Toevoegen OK ( STOP de macro)

Klaar is kees :thumb:

Hetzelfde kan door een knop te maken maar dan de naam te verwijderen

Greetz ;)

Dit is geen antwoord op de vraag volgens mij. Wel bv.:

Code:
Range("Afstand").Font.Bold = True

Wigi
 
Wigi,


Je slaat de spijker op z'n kop. Waar het mij om gaat is hoe ik de op het werkblad gedefinieerde celnaam (= Afstand) in een macro kan benaderen. Jouw voorbeeld werkt helaas niet.
 
Laatst bewerkt:
Op één van de werkbladen definieer ik een cel met een waarde/celnaam (="B5"). Deze cel noem ik StartCel en is in feite een verwijzing.
In een macro (die wordt aangeroepen als een ander werkblad wordt geopend) wil ik de waarde van StartCel gebruiken.

Natuurlijk zijn er alternatieven door in het te openen werkblad een cel met een verwijzing naar StartCel op te nemen en daaraan te refereren. Vooralsnog wil ik die oplossing nog niet gebruiken.
 
Maak je het dan niet ingewikkelder dan nodig is?

Code:
Dim StartCel as Range

StartCel = Range("B5").Value

Dan kan je StartCel verder in je macro gebruiken
 
Dit kan je bv doen:

Code:
Private Sub Worksheet_Activate()
Range("A1") = Sheets("Sheet1").Range("StartCel") + 2
End Sub

Het telt 2 bij StartCel en zet dit in A1 van het tweede werkblad. Deze code komt achter het tweede werkblad.

Wigi
 
Wigi,

Dit is het nog niet. De waarde uit StartCel (= bv "B5") wil ik gebruiken om op een ander blad de cursor te positioneren. In een macro wil ik die waarde uitvragen en de cursor op de cel -zoals aangegeven in StartCel- plaatsen.
 
Code:
Private Sub Worksheet_Activate()
Range(Sheets("Sheet1").Range("StartCel").Address).Select
End Sub
 
Wigi, met iets soortgelijks had ik ook al eea geprobeerd. VBA vindt dit niet lekker (door de toepassing of door object gedefinieerde fout). Ik blijf nog even knutselen. Jij nog een idee ?
 
Waar heb je de code geplakt? Want bij mij werkt het wel.
 
Ik heb de code in principe overgenomen ("sheet1" vervangen door een numerieke waarde).
StartCel als naam (zoals gedefinieerd in Excel) wordt NIET geaccepteerd.
Als ik, zoals in onderstaand voorbeeld, de waarde/cel-adres eerst ophaal uit cel AA1 van
het werkblad dat is ge-"activate" dan wordt de waarde wel geaccepteerd, en werkt de macro.

In onderstaand voorbeeld kies ik -met jouw code als voorbeeld- voor sheet10.
Als ik in detail naar de uitvoering kijk zie ik niet wat het effect van de
range(sheets(n). is, dwz via de tab van het werkblad kies ik voor
(bv) sheet12, terwijl de code sheet10 aangeeft en toch lijkt de macro te werken;
ik ben daar nog niet uit. Heb je daar een verklaring voor ?

Feit blijft dat onderstaande code alleen werkt als ik de StartCel eerst met een waarde vul.

Onderstaande code wordt aangeroepen bij een activate van verschillende werkbladen.

Code:
Sub PositioneerCursorMaand()
'
'   bij openen maand-werkblad wordt de cursor gepositioneerd
'
    StartCel = Range("AA1")
    Range(Sheets(10).Range(StartCel).Address).Select

End Sub

ik werk met Excel 2002.
 
Laatst bewerkt:
Stone, hang toch maar eens je bestandje bij, anders gaat dit nog uren duren denk ik. ;)
 
Wigi,

Hierbij de oplossing:
Code:
Sub PositioneerMaand()
'
'   bij openen maand-werkblad wordt de cursor gepositioneerd
'
    Range(Sheets(1).Range("StartCel").[B]Value[/B]).Select

End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan