textbox vullen met waarde uit extern excel sheet

Status
Niet open voor verdere reacties.

Eastw00d

Gebruiker
Lid geworden
3 mrt 2013
Berichten
118
ik loop tegen onderstaand probleem aan:
ik wil de huurcontracten binnen een vereniging gaan automatiseren. nu staan de actuele huurprijzen in een excel tabel. Op het moment dat ik in het userform van word een tuinnummer ingeef, moet hij automatisch de bijbehorende gegevens in het excel sheet invoeren.
ik kom niet verder dan waar ik nu ben. wie kan me verder helpen?
 

Bijlagen

Heb hier een klein voorbeeldje
Je zet dit in Word, deze code opent Excel en je kunt dan gegevens ophalen en zelfs wegschrijven in excel

Code:
Sub Voorbeeld()
  Dim xlApp As Excel.Application, xlBook As Excel.Workbook
  Dim bytN As Byte, strRange As String
  
  Set xlApp = Excel.Application
  Set xlBook = xlApp.Workbooks.Open("Directory\File.xls")
  
  For bytN = 1 To 7
    strRange = "A" & LTrim(Str(bytN))
    Me.ComboBox1.AddItem xlBook.Sheets(1).Range(strRange).Value
  Next bytN
  
  Set xlBook = Nothing
  Set xlApp = Nothing

End Sub
 
waar plaats ik dit? in de code van het userform of in een module?

als ik een comboboc in mijn userform maak, genereerd dit een lege lijst
 
Laatst bewerkt:
Heb de code wat aangepast en een voorbeeldje bijgedaan

Zet beide bestanden in dezelfde directory en open het Word bestand

Code:
Private xlApp As Object
Private xlBook As Object

Private Sub UserForm_Activate()
  Me.ComboBox1.Visible = False
  Voorbeeld
End Sub

Private Sub CommandButton1_Click()
  Dim Teller As Integer
  
  For Teller = 0 To ComboBox1.ListCount - 1
    strRange = "A" & LTrim(Str(Teller + 1))
    xlBook.sheets(1).Range(strRange).Value = ComboBox1.List(Teller)
  Next
  
  If Not xlApp Is Nothing Then xlApp.Quit
  Set xlBook = Nothing
  Set xlApp = Nothing
  Me.Hide
End Sub

Private Sub CommandButton2_Click()
  Me.ComboBox1.AddItem TextBox1.Value
End Sub

Sub Voorbeeld()
  Dim Filenaam As String
  Dim bytN As Byte, strRange As String
  
  Filenaam = "Map1.xlsx"
  Me.Label1.Visible = True
  
  Set xlApp = CreateObject("Excel.Application")
  Set xlBook = xlApp.Workbooks.Open(Application.ActiveDocument.Path & Application.PathSeparator & Filenaam)
  
  For bytN = 1 To 7
    strRange = "A" & LTrim(Str(bytN))
    Me.ComboBox1.AddItem xlBook.sheets(1).Range(strRange).Value
    Me.ComboBox1.ListIndex = 0
  Next bytN
  Me.Label1.Visible = False
  Me.ComboBox1.Visible = True
End Sub
 

Bijlagen

  • Voorbeeld.zip
    Voorbeeld.zip
    26,6 KB · Weergaven: 22
  • voorbeeld.jpg
    voorbeeld.jpg
    20,3 KB · Weergaven: 19
Ik heb nog een kleine aanpassing in subroutine Private Sub CommandButton1_Click()
heb onderstaande code toegevoegd, dan wordt Excel eerst opgeslagen voordat deze wordt afgesloten
onderstaande 2 regels niet uitgeprobeerd, maar moet werken.


Code:
  xlApp.DisplayAlerts = False
  xlBook.SaveAs Filename:=Application.ActiveDocument.Path & Application.PathSeparator & xlBook.Name[CODE]
[/CODE]

hier onder de nieuwe subroutine Private Sub CommandButton1_Click() waar de 2 regels geïmplementeerd zijn

Code:
Private Sub CommandButton1_Click()
  Dim Teller As Integer
  
  For Teller = 0 To ComboBox1.ListCount - 1
    strRange = "A" & LTrim(Str(Teller + 1))
    xlBook.Sheets(1).Range(strRange).Value = ComboBox1.List(Teller)
  Next
  
  xlApp.DisplayAlerts = False
  xlBook.SaveAs Filename:=Application.ActiveDocument.Path & Application.PathSeparator & xlBook.Name

  If Not xlApp Is Nothing Then xlApp.Quit
  Set xlBook = Nothing
  Set xlApp = Nothing
  Me.Hide
End Sub
 
Laatst bewerkt:
Eastw00d, als het voorbeeld aan je vraag voldoet.
Dan mag je de vraag sluiten.
Boven in de blauwe balk "onderwerp opties" - > "vraag als opgelost markeren"
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan