Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: VBA probleem  (gelezen 5597 keer)

0 leden en 1 gast bekijken dit topic.

Offline Adreline

  • Lid
  • *
  • Berichten: 25
  • Oplossing.be
VBA probleem
« Gepost op: 15 maart 2005, 10:07:25 »
Ik ben aan het experimenteren met VBA in excel naar aanleiding van een gekregen opdracht.

Ik kan reeds de gegevens die in een Userform worden ingegeven overbrengen naar de cellen in Excell maar ik zou nu eigenlijk de ingevoerde gegevens in excell terug willen
kunnen lezen in een andere userform.

Hoe haal ik gegevens uit een tabel en zet die in een tekstvak of een combox in een Userform?

Dank u bij voorbaat.
Myall2 Acer, Genuine Intel(R) CPU           T2300  @ 1.66GHz, 1662 MHz, GeForce Go 7300, Realtek High Definition Audio,
Windows XP, Prof, SP2, NLD, HDD:117 GB, C:\, FAT32, 1024 MB RAM
AVG Free - ZoneAlarm

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.191
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re:VBA probleem
« Reactie #1 Gepost op: 15 maart 2005, 10:34:13 »
Ik dacht dat je de eigenschappen van de Combobox opvraagt, dat je dan de Range kan opgeven.

Ontwerpmodus inschakelen, combobox selecteren en rechtsklikken, eigenschappen, en in ListFillRange de Range bvb B2:B8 invullen.

LinkedCell is ook nog een belangrijke: Gaat de geselecteerde cel in het bereik van de box in de gelinkte cel zetten

zie voorbeeld:


SoftAid
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline Adreline

  • Lid
  • *
  • Berichten: 25
  • Oplossing.be
Re:VBA probleem
« Reactie #2 Gepost op: 15 maart 2005, 14:17:37 »
Dat is een mogelijkheid maar daarmee bereik ik eigenlijk niet wat ik wil bereiken.

Ik ben bezig met het maken van een ledenlijst in VBA en ik geef dus al mijn leden in via een formulier met comboboxen en tekstvakken etc

ik zou nu ook de leden die in de database opgeslagen zijn terug knn opvragen maar met behulp van een ander formulier.  

Ik moet dus eigenlijk een combox krijgen met alle groepen die in mijn vereniging zitten en nadat ik een keuze gemaakt heb bv   de kleuters,  dan zou ik alle namen van de kleuters in een andere combobox moeten krijgen.  

De manier waarop jij het zegt, wilt het zeggen dat je reeds weet in welke cellen de gegevens zitten maar dat weet ik dus niet.  Dus ik zou in de VBA code het zelf moeten definiëren.  ik kan dus niet zeggen dat van B2 tot B7 in de combobox moet zitten want het kan eigenlijk ook een gans andere Range zijn.
Myall2 Acer, Genuine Intel(R) CPU           T2300  @ 1.66GHz, 1662 MHz, GeForce Go 7300, Realtek High Definition Audio,
Windows XP, Prof, SP2, NLD, HDD:117 GB, C:\, FAT32, 1024 MB RAM
AVG Free - ZoneAlarm

Offline buks

  • Ervaren lid
  • ***
  • Berichten: 313
  • Oplossing.be
Re:VBA probleem
« Reactie #3 Gepost op: 15 maart 2005, 14:51:02 »
Hallo,

Op volgende wijze kan je bepalen wat de laatste rij of kolom is, daarna kan je de gegevens inlezen tot en met deze rij/kolom en naargelang welke "afdeling" tonen in een combobox of niet:

     ActiveCell.SpecialCells(xlLastCell).Row
     ActiveCell.SpecialCells(xlLastCell).Column


Op deze wijze kan je eenvoudig de laatste cel bepalen die gebruikt werd (nu geeft hij wel de laatste kolom en de laatste rij terug) :

     ActiveCell.SpecialCells(xlLastCell).Address

Als je de functie msgbox ervoor plaatst kan je goed zien welk resultaat er word ingelezen.

Ik vermoed wel dat je zal weten in welke kolom (of rij) er welke gegevens instaan, dan moet je enkel nog iedere rij (of kolom) overlopen en nagaan als kolom "afdeling" "kleuter" is dan moet je ze in je combobox toevoegen (via combobox.additem).

Hopelijk geraak je hiermee iets verder
groetjes
Win 7 Home - Intel Core i3 CPU 550 @ 3.20GHz - Basicnet XL - IE 9 - MS Office 2010 - Norton Internet Security 2012

Offline Adreline

  • Lid
  • *
  • Berichten: 25
  • Oplossing.be
Re:VBA probleem
« Reactie #4 Gepost op: 15 maart 2005, 15:03:09 »
Ey,

Ik geraak er al iets verder mee :-)

Reeds hartelijk bedankt, 'k ga nog wat voortknoeien ondertussen.

Myall2 Acer, Genuine Intel(R) CPU           T2300  @ 1.66GHz, 1662 MHz, GeForce Go 7300, Realtek High Definition Audio,
Windows XP, Prof, SP2, NLD, HDD:117 GB, C:\, FAT32, 1024 MB RAM
AVG Free - ZoneAlarm

Offline buks

  • Ervaren lid
  • ***
  • Berichten: 313
  • Oplossing.be
Re:VBA probleem
« Reactie #5 Gepost op: 15 maart 2005, 15:42:16 »
Adreline,

Ik heb een kleine uitwerking van je probleem :

in een werkmap heb je kolom A waarin je de afdeling plaatst bv. kleuter, lager en hoger ; in kolom B de namen van de betreffende personen.

Ik zou een knop maken in je werkmap die een userform opstart.

Op het userform maak je 2 comboboxen aan:

Als het userform opgestart wordt moet je ze eerst en vooral initialiseren :

Private Sub UserForm_Initialize()
Range("A1").Select
ComboBox1.AddItem "Kleuter"
ComboBox1.AddItem "Lager"
ComboBox1.AddItem "Hoger"
End Sub

Bij het wijzigen van combobox1 moet je nagaan wat er gevraagd word en de gegevens in combobox2 plaatsen :

Private Sub ComboBox1_Change()
Dim AantalRijen As Integer
AantalRijen = Selection.End(xlDown).Row
ComboBox2.Clear
If ComboBox1.Value = "Kleuter" Then
    For i = 0 To AantalRijen
        If ActiveCell.Offset(i, 0).Value = "kleuter" Then
            ComboBox2.AddItem ActiveCell.Offset(i, 1).Value
        End If
    Next
End If
End Sub

Dan wel nog bijkomende If stucturen aanleggen met lager en hoger.

Ik vermoed dat je probleempje zo zou moeten opgelost zijn natuurlijk zal je dit moeten omzetten naargelang jouw bestaande layout.

Indien je iets niet snapt moet je het maar vragen

groetjes
Win 7 Home - Intel Core i3 CPU 550 @ 3.20GHz - Basicnet XL - IE 9 - MS Office 2010 - Norton Internet Security 2012

Offline Adreline

  • Lid
  • *
  • Berichten: 25
  • Oplossing.be
Re:VBA probleem
« Reactie #6 Gepost op: 15 maart 2005, 15:52:13 »
De max, ik ga het eens uitproberen straks, laat wel nog een reactie weten.

Dank u wel :)  
Myall2 Acer, Genuine Intel(R) CPU           T2300  @ 1.66GHz, 1662 MHz, GeForce Go 7300, Realtek High Definition Audio,
Windows XP, Prof, SP2, NLD, HDD:117 GB, C:\, FAT32, 1024 MB RAM
AVG Free - ZoneAlarm

 


www.combell.com