lezen vanuit een ander bestand

Status
Niet open voor verdere reacties.

markwat

Gebruiker
Lid geworden
11 mrt 2011
Berichten
301
graag wil ik dat deze combobox leest vanuit een ander bestand namelijk
 
Verwijder de Listfillrange in de eigenschap van de combo,


In thisworkbook.
Code:
Private Sub Workbook_Open()
With GetObject("C:\Dropbox\documenten\Excel opmerkingen.xls")
  Sheets("Blad1").ComboBox1.List = .Sheets("Blad2").Range("c2:f202").Value
    .Close
  End With
End Sub
 
hartelijk dank!!!
perfect.
als dit geld voor 20 boxen op 1 volgend kan dat in 1 formule?
en als laatste, als ik iets in de ComboBox schrijft wat nog niet in de lijsten is opgenomen, kan dat dan daar automatisch in komen te staan?
 
Alle 20 dezelfde gegevens?
Code:
Private Sub Workbook_Open()
dim i as long
With GetObject("C:\Dropbox\documenten\Excel opmerkingen.xls")
for i = 1 to 20
  Sheets("Blad1").oleobjects("ComboBox"& i).object.List = .Sheets("Blad2").Range("c2:f202").Value
next i
    .Close
  End With
End Sub
 
heel hartelijk dank!
het werkt perfect!
ik ga deze dan ook afsluiten.
 
nog even een vraagje over deze macro

Wat heb ik nu verkeerd gedaan?
ik ben zelf verder gegaan met wat u mij gestuurd heeft.
(deze code staat natuurlijk in een ander bestand).

Code:
Private Sub Workbook_Open()
Dim c As Long
Dim i As Long
Dim j As Long
Dim k As Long

With GetObject("C:\Dropbox\documenten\Excel omschrijving.xls")
    For c = 1 To 21 'c is een groep comboboxen die het zelfde moeten doen'
    
    Sheets("InvoerSheet").OLEObjects("ComboBox" & c).Object.List = .Sheets("Blad2").Range("a2:a202").Value
Next c
    
    For i = 21 To 50  'i en j zijn twee groepen comboboxen die het zelfde moeten doen'
    For j = 52 To 91
    Sheets("InvoerSheet").OLEObjects("ComboBox" & i, j).Object.List = .Sheets("Blad2").Range("c2:f202").Value
Next i, j

    
    For a = 51   'k is een enkele combobox die uit k zijn gegeven moeten halen'
    Sheets("InvoerSheet").OLEObjects("ComboBox" & a).Object.List = .Sheets("Blad2").Range("k2:k20").Value
Next k
    
    .Close
    End With
End Sub
 
Laatst bewerkt:
Code:
With GetObject("C:\Dropbox\documenten\Excel omschrijving.xlsm")
    For c = 1 To 21 'c is een groep comboboxen die het zelfde moeten doen'
      Sheets("InvoerSheet").OLEObjects("ComboBox" & c).Object.List = .Sheets("Blad2").Range("a2:a202").Value
    Next c
    
    For i = 21 To 50  'i en j zijn twee groepen comboboxen die het zelfde moeten doen'
       Sheets("InvoerSheet").OLEObjects("ComboBox" & i).Object.List = .Sheets("Blad2").Range("c2:f202").Value
    Next i


    Sheets("InvoerSheet").combobox51.List = .Sheets("Blad2").Range("k2:k20").Value
    
    For j = 52 To 91
     Sheets("InvoerSheet").OLEObjects("ComboBox" & j).Object.List = .Sheets("Blad2").Range("c2:f202").Value
    Next j
    
    .Close
  End With

Je mag overigens ook steeds dezelfde variabele (i) gebruiken.
 
Het zal zo ook nog wel werken.
Combobox51 wordt nu overschreven.

Code:
With GetObject("C:\Dropbox\documenten\Excel omschrijving.xlsm")
  For i = 1 To [COLOR=#0000ff]20 [/COLOR]'c is een groep comboboxen die het zelfde moeten doen'
     Sheets("InvoerSheet").OLEObjects("ComboBox" & c).Object.List = .Sheets("Blad2").Range("a2:a202").Value
  Next i
    
  For i =[COLOR=#0000ff] 21 To 91[/COLOR]  'i en j zijn twee groepen comboboxen die het zelfde moeten doen'
    Sheets("InvoerSheet").OLEObjects("ComboBox" & i).Object.List = .Sheets("Blad2").Range("c2:f202").Value
  Next i


    Sheets("InvoerSheet").combobox51.List = .Sheets("Blad2").Range("k2:k20").Value
    
  
    
    .Close
  End With
 
nu als laatste ( ik wil het ook wel in een nieuwe vraag stellen) wil ik dat wanneer ik nieuwe tekst invoer dat het ook weer (evt met een knop) automatisch dat weer aanvult in de lijst op excel omschrijving.xls
en wat er al stond of overschrijven of anders niets doen.

ComboBox 51 is O12

ComboBox 1 tot 20 O15 tot O34
ComboBox 21 tot 50 en 52 tot 91 zijn O41 tot O110 met het exl. btw bedrag in H41 tot H110

Alleen als er geen bedrag in gevuld staat, staat er #N/B in. ( bv deze code ) =VERT.ZOEKEN(B110;'C:\Dropbox\documenten\[Excel omschrijving.xlsm]Blad2'!C$1:D$65536;2;0)
 
Ik ken het ander bestand niet.
Test hier eens wat mee.
Om iets toe te voegen aan de combobox; eerst iets typen in de combo, dan dubbelklikken in de combo.
 

Bijlagen

Beste Harry,

Wat in de ComboBox staat komt ook in Cell O te staan, dus als alle O cellen gekopieerd worden naar het Excel omschrijving.xlsm bestand gaan is dit goed.
Het grote probleem is als ik een nieuw artikel in vult met ex btw bedrag dan zie je in de andere cellen in H #N/B staan wat niet weg kan.
ik hoop dat ik duidelijk ben
 
Test maar eens wat Mark.

Code:
Private Sub ComboBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If MsgBox("U wilt deze gegevens toevoegen?", vbCritical + vbYesNo) = vbYes Then
Application.ScreenUpdating = False
  If ComboBox1.ListIndex = -1 Then
    With Workbooks.Open([COLOR=#3E3E3E]"C:\Dropbox\documenten\Excel omschrijving.xlsm")[/COLOR].Sheets("blad2")
     .Cells(Rows.Count, 15).End(xlUp).Offset(1) = ComboBox1.Value
     ComboBox1.List = .range("O2:O" & .cells(rows.count,15).end(xlup).row).Value
     .Parent.Close -1
    End With
  End If
End If
End Sub
 
Beste Harry,

Dit werkt goed!
Dan moet dus ComboBox 1 tot 20 verwijzen naar A280 tot A300.
en de overige ComboBox 21 tot 91 ( tekst) samen met H41 tot H110 (Ex BTW bedrag). laat deze maar naar de C280 tot C350 (Tekst) en D280 tot D350 ( Ex BTW bedrag) verwijzen. (ik heb de comboboxen op nummer gemaakt zodat alles in 1 formule kan)
de macro alles sorteren gaat toch daarna gedraaid worden.
 
Laatst bewerkt:
Beste Harry,

Moet ik deze voor elke box apart maken of is dit in een enkele regel te formuleren?
 
Helaas moet dit voor elke box apart.
Elke box heeft nl. een Doubleclick.

Het valt ook niet te programmeren in een klassenmodule daar elke combobox uit verschillende kolommen de waarden haalt.
 
Ik probeer de cel te wijzigen naar A maar hij blijft in O alles opslaan.
Ik ben blond :o
 
Ik ben zwart met in het midden mijn huid. :d

Zoek het verschil.

Kolom O:
Code:
.Cells(Rows.Count, 15).End(xlUp).Offset(1) = ComboBox1.Value
     ComboBox1.List = .range("O2:O" & .cells(rows.count,15).end(xlup).row).Value

Kolom A:
Code:
.Cells(Rows.Count, 1).End(xlUp).Offset(1) = ComboBox1.Value
     ComboBox1.List = .range("A2:A" & .cells(rows.count,1).end(xlup).row).Value
 
oooooo dat had ik gewijzigd maar moet dan a leeg zijn? want die staan vol met regels.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan