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

van actieve kolom naar absolute waarde in formule

  • Onderwerp starter Onderwerp starter wiki
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

wiki

Gebruiker
Lid geworden
2 okt 2007
Berichten
576
Ik gebruik vaak de volgende formule voor een lijst naar een gedefinieerde naam:

Code:
=VERSCHUIVING([COLOR="red"]blad[/COLOR]!$K$1;1;;AANTALARG([COLOR="red"]Blad[/COLOR]!$K:$K)-1)

Nu wil ik het aanmaken van de naam met een macro uitvoeren

Code:
Sub Gedefinieerde_naam_kolom_active_cell()
  ActiveWorkbook.Names.Add ActiveCell.Value, RefersToR1C1:= _
   "=OFFSET(Stamblad!RC,1,,COUNTA(Stamblad!C)-1)"
    

End Sub

Ik heb het volgende probleem:
Hoe kan ik de activecell.column omzetten naar een absolute waarde in deze formule in VBA?
 
Code:
ActiveWorkbook.Names.Add "tst", "=OFFSET(Stamblad!$K1,1,,COUNTA(Stamblad!$K:$K)-1)"
 
Beste SNB,

Dit werkt niet.

Ik selecteer een kolomkop in een blad wat inderdaad altijd stamblad heet en start de macro.
ik wil voor die kolom een dynamische gedefinieerde naam aanmaken met als naam de actieve cel.

Als ik
Code:
ActiveWorkbook.Names.Add "tst", "=OFFSET(Stamblad!$K1,1,,COUNTA(Stamblad!$K:$K)-1)"

gebruik wordt ieder naam opgehaald uit kolom K omdat deze absoluut is.

als ik
Code:
"=OFFSET(Stamblad!RC,1,,COUNTA(Stamblad!C)-1)"
gebruik blijft de kolom altijd variabel en is niet bruikbaar

Ik wil dus ergens de huidige kolom declareren (weet niet of dit de juiste naam is) en deze als absolute waarde in de formule zetten.

gr wim
 
Laatst bewerkt:
Om nou zeggen: het is duidelijk wat je bedoelt....

Wellicht dit ?
Code:
ActiveWorkbook.Names.Add selection.value, "=OFFSET(Stamblad!" & selection.address & ",1,,COUNTA(Stamblad!" & Columns(Selection.Column).Address & ")-1)"
 
Mijn uitleg was dus toch duidelijk genoeg;) want dit is exact wat ik zocht.
Kan ik ook nog iets met selection.sheet om de huidige bladnaam in de formule te krijgen ipv stamblad?

gr wim
 
Als je mijn oplossing vergelijkt met jouw beginoplossing kun je ook ontdekken hoe je je laatste vraag moet implementeren.
 
Heren,

Het lukt me niet om de selection.parent.name op de plaats te krijgen van "Stamblad". Ik heb van alles geprobeerd met ", wel of geen ! enz, maar helaas. Graag een suggestie.

gr wim
 
En als je de verwijzing naar een werkblad nu eens weglaat....
 
Code:
ActiveWorkbook.Names.Add Selection.Value,"=OFFSET("Selection.Address & ",1,,COUNTA(" & Columns(Selection.Column).Address & ")-1)"
 '"=OFFSET(R1C16,,,COUNTA(C16),1)"

als ik dit in een formule verwerk lijkt dit te werken en bij het aanpassen van een gedefinieerde naam pakt deze inderdaad het huidige blad als verwijzing, maar in VBA krijg ik de foutmelding "verwacht instructie einde".

gr wim
 
Laatst bewerkt:
Code:
Sub test()
    ActiveWorkbook.Names.Add Selection.Value, "=OFFSET(" & Selection.Address & ",1,,COUNTA(" & Selection.EntireColumn.Address & ")-1)"
End Sub

of

Code:
Sub test()
    With Selection
        ActiveWorkbook.Names.Add .Value, "=OFFSET(" & .Address & ",1,,COUNTA(" & .EntireColumn.Address & ")-1)"
    End With
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan