[VBA \ Excel] Keuzelijst koppelen aan gegevens.

Pagina: 1
Acties:
  • 962 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

  • Koudijs
  • Registratie: Augustus 2002
  • Laatst online: 26-03 11:44
Hallo allemaal,

Ik ben weer bezig om mezelf met Excel in de problemen te helpen :)
Het zit zo:

Ik moet een keuzelijst maken die verwijst naar een ander werkblad, en die, als de keuze is gemaakt, meerdere gegevens meeneemt. Beetje fout uitgelegt, maar ik kan er ff niet veel meer van maken. Een keuzelijst die verwijst naar een ander werkblad is geen probleem, de rest wordt ff moeilijker aangezien ik geen held ben met VBA.

Google en office 2000 help, helpen me niet verder en ook met de GoT-search krijg ik niet wat ik zoek.

Voorbeeld:
Op het eerste werkblad heb ik een tabel gemaakt die nog leeg is, maar mbv. een keuzelijst gevult moet worden. De keuzelijst bestaat uit een lijst van nummers van 1 tot 20. Aan elk nummer zitten gegevens van een persoon vast.
Wat ik nou wil hebben is het volgende:
Als ik in de keuzelijst 2 aanklik zou ik graag zien dat daarachter de voor en achternaam komt te staan van de persoon die aan nummer 2 hangt.

Ff heel simpel gezegt (correct me if i'm wrong):
- keuzelijst staat in cel A9, is de eerste van 5, en zet zijn waarde in A10.
- persoon nummer 2 heet Jan Jansen (werkblad 2, cel B2= Jan, cel C2= Jansen)
dus:
ALS A10=2
dan kopieer werkblad2.B2 naar werkblad1.B10
en kopieer werkblad2.C2 naar werkblad1.C10

Zoiets moet het eigenlijk worden. Het is misschien een beetje onduidelijk, maar als er vragen zijn, hoor ik het graag...

[ Voor 4% gewijzigd door Koudijs op 29-04-2003 08:48 ]


Acties:
  • 0 Henk 'm!

  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 13:55
Iets als:
PHP:
1
2
3
 tempvar = werkblad1.Range("A10").value
werkblad1.Range("B10").value = werkblad2.Cells(tempvar,2).value
werkblad1.Range("C10").value = werkblad2.Cells(tempvar,3).value


Zou kunnen werken.

Een formule kan het hem ook wel doen:
B10=INDIRECT(CONCATENATE("Werkblad2!B";A10);TRUE)
C10=INDIRECT(CONCATENATE("Werkblad2!C";A10);TRUE)
(Concatenate = Samenvoegen oid. in meer nederlandse excels, zie functies-tekst)

Als je het niet al te heftig maakt is de laatste waarschijnlijk practischer.

Acties:
  • 0 Henk 'm!

Anoniem: 26997

code:
1
2
3
4
5
6
    dim temp as string

    If Worksheets(1).Range("A10").Value = temp then
           Worksheets(1).Range("B10").Value = Worksheets(2).Cells(temp,2).Value
           Worksheets(1).Range("C10").Value = Worksheets(2).Cells(temp,3).Value
    End If


Dat zou moeten werken.

Succes.