[EXCEL] Cel is onderdeel van Named Range

Pagina: 1
Acties:

  • bluesbrother
  • Registratie: Februari 2002
  • Laatst online: 26-01-2025

bluesbrother

Blues Rocks!!!

Topicstarter
Ik heb een named Range "DagenVanDeWeek" en ik wil een functie maken die start als het
Worksheet_Change event getriggerd wordt en dan kijkt of een bepaalde cel lid is van deze named range en dan iets doet. Dat iets daar kom ik dan wel uit.

Maar ik kom niet verder dan de actieve cell :
code:
1
Application.ActiveCell.Address

vergelijken met de totale range.
code:
1
ActiveWorkbook.Names.Item("DagenVanDeWeek")


Dat gaat dus niet werken.

Ik heb wel het e.a. gedaan met VBA voor Access maar ik moet nu in excel wat doen.
Maar ik kom er niet uit. Ik heb wat video lessen gekeken, en op internet gezocht maar heb nog niet gevonden wat ik nodig heb.

Ik vond wel dit:
http://www.ozgrid.com/VBA/run-macros-change.htm

Het kwam nog het dichtste bij.

Maar ik zit vast. 8)

Wil je je pizza in 4 of 8 stukken? .......Doe maar in 4, 8 krijg ik niet op.


  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 15:49
Kijk eens naar de functie intersect, die gebruik je bijvoorbeeld zo:
Visual Basic:
1
2
3
4
5
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not (Intersect(Target, Application.Names("naam").RefersToRange) Is Nothing) Then
    MsgBox "Bingo"
End If
End Sub

  • bluesbrother
  • Registratie: Februari 2002
  • Laatst online: 26-01-2025

bluesbrother

Blues Rocks!!!

Topicstarter
Vandaag weer de hele dag zitten klooien maar ik kom er maar niet uit.
Voorbeelden bekeken en ik heb het werkend gekregen door er gewoon 2 range namen in te zetten:

code:
1
2
3
4
5
6
7
8
9
10
11
12
Dim InterS As Range
    
    Worksheets("Blad1").Activate
            
    Set InterS = Intersect(Range("RangeNaam1"), Range("RangeNaam2"))

    If InterS Is Nothing Then

    MsgBox "ze hebben niks met elkaar te maken"
    Else
    InterS.Select
    End If

Bovenstaande werkt dus gewon.

Onderstaande dus niet.
Ik heb een range met de naam "RangeNaam", Set de Rnge1 als de actieveCell en vergelijk die dan met de RangeNaam. Zit ie er in doe dan wat, ziet ie er niet in doe dan wat anders.
Maar de waarde van de actieve cel is bijvoorbeeld A1 en dat wordt vegeleken met een hele range.
Gaat daar dan iets fout?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    Dim Rnge1  As Range
    Dim InterS As Range
    
    Worksheets("Blad1").Activate
    
    Set Rnge1 = Application.ActiveCell.Address
    
    Set InterS = Intersect(Range("RangeNaam"), Range(Rnge1))

    If InterS Is Nothing Then

    MsgBox "ze hebben niks met elkaar te maken"
    Else
    InterS.Select
End If

Wil je je pizza in 4 of 8 stukken? .......Doe maar in 4, 8 krijg ik niet op.


Verwijderd

Set Rnge1 = Application.ActiveCell
Set InterS = Intersect(Range("RangeNaam"), Rnge1)
je definieert rnge1 als een bereik(=object), bijgevolg moet je het ook zo blijven behandelen in verdere statements. ook oppassen met onvolledig gekwalificeerde paden, als je niet in het juiste werkblad of werkmap zit kan dit ook problemen opleveren.

  • bluesbrother
  • Registratie: Februari 2002
  • Laatst online: 26-01-2025

bluesbrother

Blues Rocks!!!

Topicstarter
Super het werkt, bedankt.
weet je nu nóg niet dat topics níet op slot gaan als de vraag is beantwoord?

[ Voor 51% gewijzigd door Lustucru op 27-09-2006 09:45 ]

Wil je je pizza in 4 of 8 stukken? .......Doe maar in 4, 8 krijg ik niet op.