Aansturing TextBoxen

Status
Niet open voor verdere reacties.

DutchOirs

Gebruiker
Lid geworden
30 sep 2009
Berichten
891
Goedemiddag allen,

Zit met een vraagje.

Wil vanuit een werkblad vanaf een excel bestand een ander file openen. - werkt
Vervolgens vanuit dit werkblad gegevens van dat andere file ophalen en op een Userform (op huidig file) neerzetten.
Gebruik TextBoxen. Deze TextBoxen hebben als naam: Omschr01 t/m Omschr30
Om nu niet alle 30 regels neer te zetten gebruik ik met de aansturing van deze TexBoxen het volgede:

Code:
  Dim WB1 As UserForm, WB2 As Workbook, e As Integer
  
  Set WB1 = UserForm1
  Set WB2 = Workbooks.Open(Filename:=ActiveWorkbook.Worksheets("Control").Range("M3") & ActiveWorkbook.Worksheets("Control").Range("M7") & ".xls")
    
   Dim Left1 As String, strContr As String, BoxNm As Control
    For e = 1 To 30                               ' zet gegevens Omsch naar boxen
       If e < 10 Then Left1 = Left("WB1.Omschr01", 11)  ' Omschr0
       If e > 9 Then Left1 = Left("WB1.Omschr01", 10)   ' Omschr
       strContr = Left1 & e   ' & CStr(e)

   
[COLOR="#FF0000"]      Set BoxNm = Me.Controls(strContr)
  '    Set BoxNm = WB1.Me.Controls(strContr)
  '    Set BoxNm = UserForm1.Me.Controls(strContr)[/COLOR]
            
       BoxNm = WB2.Sheets("DBase").Range("B" & e + 4).Value
      Exit For
   next e

Gaat dus fout bij:
Code:
Set BoxNm = WB1.Me.Controls(strContr)
Geeft fout code 438
Deze eigenschap of methode wordt niet ondersteund door dit object.

Begrijp, probeer deze textboxen aan te sturen terwijl het UserForm (nog) niet geopend is.
Is hier evt. een oplossing voor?

Vr. Gr.

Dutch
 
Laatst bewerkt:
Doe dit in de Userform_initialize procedure.

Lees de gegevens van het tweede bestand in met:

Code:
With getobject('tweede.xls")
   sn=.sheets(1).usedrange
   .close 0
End With
 
Thanks snb,

Probleem net opgelost :-)

Moest dus vanaf het werkblad aangestuurd worden.

Volgende als oplossing:

Code:
  Dim e As Integer, Left1 As String, strContr As String, BoxNm As Control

  For e = 1 To 15                             ' maakt alle getallen boxen weer leeg
    If e < 10 Then Left1 = Left("TextBox01", 8)    ' TextBox0
    If e > 9 Then Left1 = Left("TextBox01", 7)      ' TextBox
    strContr = Left1 & e                                      ' leest TextBox naam in
    Set BoxNm = UserForm1.Controls(strContr)    ' geeft BoxNm tijdelijke naam
    BoxNm = ""                                                  ' maakt TextBox (met tijdelijke naam leeg
  Next e
  UserForm1.Show

Had de naam van het UserForm1. vergeten :-(

Thanks nogmaals en fijne dag.
 
Het is onnodig tekstvakken in een userform 'leeg' te maken, voordat het userform geopend wordt, als ze in het ontwerp geen waarde meekrijgen.

Je code staat nog steeds op de verkeerde plaats: niet in de Userform_initialize gebeurtenis.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan