• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Tellerindex in combinatie met het ophalen via een macro

Status
Niet open voor verdere reacties.

oeldere

Terugkerende gebruiker
Lid geworden
26 dec 2008
Berichten
2.741
ik maak uit een keuzelijst een keuze.

deze wordt via tellerindex op een andere plaats neergezet.

graag zou ik de keuze via een macro (of formule) willen ophalen.

waarschijnlijk niet duidelijk uitgelegd, dus zie het voorbeeld.

ik wil de blauwe cel (cola) dus in de lijst zoeken en op een ander plaats neerzetten (op de plaats van water).

wie wil me helpen?

kom maar op met jullie vragen.
 

Bijlagen

Bedoel je zoiets Oeldere.
Heb er een listbox van gemaakt.
 
Laatst bewerkt:
Bedankt Harry voor je reactie.

de bedoeling is:

een macro haalt in een ander werkblad gegevens op.

een van de opgehaalde cellen is cola (blauwe cel) in mijn geval.

Nu wordt door de tellerindex de waarde cola opgehaald (door hierop te klikken).

deze waarde wordt vervolgens op een ander werkblad (blad 2) geplaatst.

de bedoeling was dus eigenlijk dat de waarde cola in de (oorspronkelijke) lijst wordt gevonden (b.v. via een macro) en vervolgens wordt geaktiveerd.

Is het niet duidelijk, gewoon laten weten. (uitleggen is ook een kunst :().
 
Helaas heb je het niet erg gemakkelijk uitgelegd, maar het kan ook aan mij liggen. :(
Ik doe gewoon nog een poging.
 

Bijlagen

sorry voor de onduidelijke uitleg. :o

ik kom in de loop van vandaag even met een uitgebreider voorbeeldje.

hierin zal ik de inleesmacro ook even plaatsen.

alsvast bedankt voor je reactie.
 
uitleggen blijft moeilijk :confused:

toch nog een nieuwe poging (zie bijlage)

Ik probeer uit een ander bestand gegevens op te halen voor het maken van een factuur.
In het factuurprogramma (in Excel) haal ik via een (opgenomen) macro de gegevens op uit een ander Excel bestand.
1 van de opgehaalde items is de opdrachtgever.
De opdrachtgever staat in de keuzelijst met opdrachtgevers.
In mijn voorbeeld is de opdrachtgever nummer 34 uit de keuzelijst.
In dit geval weet ik het nummer van de opdrachtgever.
Maar ik zou graag zien dat via de macro, de keuze 34 in de keuzelijst automatisch wordt gemaakt.

Onderstaand de (gescreende) werkende macro.

het gaat om de oranje code

Aanvullingen / verbeteringen zijn altijd welkom.

Met vriendelijke groeten,
Oeldere

Code:
Sub opdrachtgever_ophalen()
'   [COLOR="darkorange"] Range("C51").Select
    ActiveCell.FormulaR1C1 = "34"           'vaste selectie nl van opdrachtgever[/COLOR] 
    Range("B51").Select
    ActiveCell.FormulaR1C1 = "23"           'vaste faktuurtekst (idem als gegeven van opdrachtgever)
    Range("D51").Select
    ActiveCell.FormulaR1C1 = "24"           'vaste faktuurtest
    
    Range("B3").Select
    ActiveCell.FormulaR1C1 = "=TODAY()"     'faktuurdatum wordt bepaald op vandaag
   
    Windows( _
        "bestandsnaam.xls" _
        ).Activate
    Range("B5").Select
    ActiveCell.FormulaR1C1 = "1"            'aantal (in b5)
    Range("B6").Select                      'bedrag wordt opgehaald
    ActiveCell.FormulaR1C1 = _
        "='[bestandsnaam]uitvoer'!R7C15"
    
    Range("B7").Select
    ActiveCell.FormulaR1C1 = "t"            'btw percentage wordt ingevuld
   
    Range("B8").Select
    ActiveCell.FormulaR1C1 = "14"           'betalingstermijn wordt ingevuld
    
    Range("B4").Select                      'als tekst komt week en de waarde in cel B2
    ActiveCell.FormulaR1C1 = _
        "=""week"" &"" ""& '[bestandsnaam.xls]uitvoer'!R2C2"
    Range("B4").Select
    Selection.Copy
    Range("D4").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=+RC[-2]"
    Range("D5").Select
    ActiveCell.FormulaR1C1 = "1"
    Range("D6").Select
    ActiveCell.FormulaR1C1 = _
        "=+'[bestandsnaam.xls]uitvoer'!R7C16"
    Range("D7").Select
    ActiveCell.FormulaR1C1 = "h"
    With ActiveCell.Characters(Start:=1, Length:=1).Font
        .Name = "Arial"
        .FontStyle = "Standaard"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .ThemeFont = xlThemeFontNone
    End With
    Range("D8").Select
End Sub
 

Bijlagen

Laatst bewerkt:
Hierbij doe ik een tegenzet Oeldere. :d
Alleen weet ik niet hoeveel nummers je hebt.
 

Bijlagen

Werk je met een keuzelijst uit de Werkset Besturingselementen of uit de lijst formulieren ? Wat is het adres v/h bereik waaruit de lijst is opgebouwd ? Ik stel je deze vragen omdat ik het zou oplossen door de naam te zoeken in het bereik waarin de namen staan en adhv het rijnummer het indexnummer in de keuzelijst bepalen.
 
@Harry,

bedankt dit is wat ik bedoel (dus schaakmat)

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
ListBox1.ListIndex = Right([B25].Value, 2)
[B16].Value = ListBox1.ListIndex
End Sub

Vraag 1) Value, 2 => de 2 staat voor de 2e kolom?

Vraag 2) in de office 2007 versie krijg ik een foutmelding op rij 2 (listbox).
kan deze code niet gebruikt worden voor de office 2007 versie, of is dit foutmelding op mijn PC (tevens gaf ie vor het openen aan: teweinig stack-geheugen??)

Vraag 3) graag zou ik de keuzelijst ook handmatig willen blijven gebruiken.

van opdrachtgever 34 zijn externe bestanden beschikbaar.
van overige opdrachtgevers zijn géén externe bestanden beschikbaar en zal ik met de keuzelijk moeten werken.

Is hier ook nog een oplossing voor te bedenken?
 
@warm bakkertje

1) het is lijst formulieren

2) blad2!a1:a50 (deze is benoemd met een naam opdrachtgever)



Opmerking: graag zou ik de keuzelijst ook handmatig willen blijven gebruiken.


Heb je aanvullende vragen, laat het gewoon even weten.
 
Hoi Oeldere,

Nee, =Rechts(b25,2) die 2 staat voor aantal tekens vanaf rechts.

Het is wel een listbox uit de actieveX besturingselementen gebleven.
Ik heb het op de manier die Rudi voorstelde gemaakt.
Ook is het mogelijk de lijst te gebruiken.
 

Bijlagen

hoi Harry (en warm bakkertje),

bedankt voor de oplossing.

ik ga deze verwerken in het orginele bestand.

ik laat in ieder geval nog even weten of het gelukt is.

dit zal waarschijnlijk wel in het weekend worden.
(en Harry, je weet een dag kan bij mij soms heel lang duren, dus ik hou het maar vast op in het weekend :D)
 
nou heren en dames,

mijn bestand had dus een formulier uit de lijst formulieren (en dus geen listbox).

nu heb ik geprobeerd om dit ook werkend te krijgen met dezelfde code.

maar dat is mij niet gelukt.

kan dit niet met het formulier uit de lijst formulieren?
(anders dien ik de lijsten aan te passen)

en als dit wel kan, welke code dient ik dan te gebruiken?

wie geeft nog even een flinke duw (in de goede richting)?
 
Ik krijg de vraag van de bewakingshond :p of de vraag is opgelost.

ik had echter nog onderstaande vraag openstaan:



kan dit niet met het formulier uit de lijst formulieren?
(anders dien ik de lijsten aan te passen)

en als dit wel kan, welke code dient ik dan te gebruiken?

wie geeft nog even een flinke duw (in de goede richting)?
 
formulier uit de lijst formulieren?
Deze begrijp ik niet goed. Is het een keuzelijst(listbox) uit de set Formulieren of een keuzelijst met invoervak(combobox) uit de set Formulieren ?
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B25]) Is Nothing Then
    Sheets("invulblad").Shapes("Test").ControlFormat = _
            Application.WorksheetFunction.Match([B25], Sheets("drank").Range("A2:A50"), 0)
End If
End Sub
Getest met een ListBox uit formulieren. Wijzig Test in de naam van je object.
 
Laatst bewerkt:
@ warm bakkertje,

ik ga deze vanavond zeker proberen.

je hoort nog van me.
 
@warm bakkertje

Code:
wijzig test in de naam van je object.

waar vind ik dit terug.

jouw code in modele 1 gezet.
(dit dient op werkblad invoerveld te staan; maar omdat ik niet weet welke code ik aan moet passen, heb ik de code van HSV in dit tabblad laten staan).

Dit is het bestandje dat gelijk is aan mijn eigen bestand.

@HSV

ook met jouw code in mijn oorspronkelijke bestand kom ik niet tot de gewenste oplossing.


Wat doe ik verkeerd?
 

Bijlagen

@warm bakkertje
waar vind ik dit terug.

Oeldere,

Als je het object selecteert, staat de Objectnaam in de naamvak.

Haal de code uit de module, en plaats het in de werkbladmodule.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B20]) Is Nothing Then
    Sheets("invulblad").Shapes("Keuzelijst 43").ControlFormat = _
            Application.WorksheetFunction.Match([B20], Sheets("namen").Range("A1:A50"), 0)
End If
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan