Data cel uit excel weergeven in VBA

Status
Niet open voor verdere reacties.

Dfrings

Gebruiker
Lid geworden
2 apr 2012
Berichten
6
Hallo allemaal, mijn probleem:

Ik heb een paar cellen in excel zitten die ik in VBA wil laten zien. dit is de code die ik ervoor gebruik:

Code:
Private Sub Hoofdmenu_Initialize()
Me.TextBox1.Text = CStr(ThisWorkbook.Sheets("blad1").Range("B26").Value)
End Sub

Bij een enkele Textbox werkt dit prima, maar zodra ik er meerdere wil doen gaat het fout. De Textboxen blijven leeg ans ik VBA opstart.

wat ik nu dus heb is:
Code:
Private Sub Hoofdmenu_Initialize()
Me.TextBox1.Text = CStr(ThisWorkbook.Sheets("blad1").Range("B26").Value)
Me.TextBox2.Text = CStr(ThisWorkbook.Sheets("blad1").Range("C32").Value)
Me.TextBox12.Text = CStr(ThisWorkbook.Sheets("blad1").Range("B31").Value)
Me.TextBox13.Text = CStr(ThisWorkbook.Sheets("blad1").Range("B30").Value)
Me.TextBox14.Text = CStr(ThisWorkbook.Sheets("blad1").Range("B29").Value)
Me.TextBox15.Text = CStr(ThisWorkbook.Sheets("blad1").Range("B28").Value)
Me.TextBox16.Text = CStr(ThisWorkbook.Sheets("blad1").Range("B27").Value)
Me.TextBox3.Text = CStr(ThisWorkbook.Sheets("blad1").Range("C31").Value)
Me.TextBox4.Text = CStr(ThisWorkbook.Sheets("blad1").Range("C30").Value)
Me.TextBox5.Text = CStr(ThisWorkbook.Sheets("blad1").Range("C29").Value)
Me.TextBox6.Text = CStr(ThisWorkbook.Sheets("blad1").Range("C28").Value)
Me.TextBox7.Text = CStr(ThisWorkbook.Sheets("blad1").Range("C27").Value)
Me.TextBox8.Text = CStr(ThisWorkbook.Sheets("blad1").Range("C26").Value)
End Sub

omdat als ik het in allemaal losse private subs zet er wordt gezegd dat er dubbele informatie is. maar op deze manier komt er helemaal niks te staan.

Hoe moet ik dit oplossen?

Bij voorbaat dank,
Dennis
 
Laatst bewerkt:
Kun je dit niet beter in activate zetten dan initialise? Er is geen garantie dat initialise wordt aangeroepen na de eerste keer openen van het workbook.
 
Dus je bedoelt alles hetzelfde laten, maar dan
Code:
Private Sub Hoofdmenu_Activate()
?
dan gebeurt er helaas nog steeds niks.........

En ik ben nogal een 'noob' ivm VBA, ik zit in VWO6 en doe dit voor een schoolopdracht. mijn leraren hebben ook niet zo veel verstand van VBA.
 
Plaats je bestand dan eens hier: een stuk eenvoudiger voor eenieder.

Code:
Private Sub Userform_Initialize()
  sn=Thisworkbook.sheets("Blad1").range("B26:C32")
  for j=1 to 16
    me("Textbox" & j).text=sn(j\8+1,j mod 8 +1)
  next
End Sub
 
Laatst bewerkt:
He, die heb ik alleen op school en ik ben nu thuis.... Ik zal het morgen zsm hierop zetten!
 
Dit is de naam van de Initialize procedure: Private Sub Userform_Initialize()

Die moet je nooit veranderen.
 
Wauw, dom van mij zeg, ik dacht dat je daar de naam van de Userform moest invullen -_- bedankt!

Ik heb nu alleen nog een ander probleem, als ik mijn VBA open laat staan en ik verander de informatie in de cells in Excel, dan wordt dit niet geupdate in mijn VBA. Enig idee hoe dit op te lossen valt?
Ik dacht dat dat ging met
Code:
Application.ScreenUpdating = True
maar dat werkt niet. enig idee?

BTW dit is mijn bestand: http://www.mediafire.com/?81f2p3u7ny4yoqm
 
Laatst bewerkt door een moderator:
Plaats je bestand svp hier, niet elders.
 
Dat probeerde ik, maar er stond dat het bestand te groot was :/
 
Laatst bewerkt door een moderator:
En dus.... ?
Het bestand verkleinen of zippen en plaatsen.
 
Zet op je formulier in de linkerkolom Textbox1 tem 6 en in de rechterkolom Textbox7 tot 13.
Dan kan je met onderstaande al even verder.
Code:
Private Sub Userform_Initialize()
Application.ScreenUpdating = False
For j = 1 To 6
    Me("TextBox" & j).Text = CStr(ThisWorkbook.Sheets("blad1").Range("B" & j + 25).Value)
Next
For j = 7 To 13
    Me("TextBox" & j).Text = "€ " & CStr(ThisWorkbook.Sheets("blad1").Range("C" & j + 19).Value)
Next
Application.ScreenUpdating = True
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan