• 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.

Newbie - Twee bestanden combineren

Status
Niet open voor verdere reacties.

marciemarc

Gebruiker
Lid geworden
29 nov 2006
Berichten
13
Ik heb elke dag een nieuw bestand met enkel een dealercode, en wil graag de bijbehorende gegevens automatisch laten toevoegen. Die kunnen uit een ander bestand worden gelezen.

Hierbij de twee bestanden, sales.xls is wat ik elke dag krijg en Dealerlijst is de lijst met de gegevens waarvandaan gekopieerd moet worden.

Iedereen die me hiermee wilt helpen, superbedankt...ik wil met een paar voorbeelden in de toekomst ook zelf leren dit soort dingen te doen.

Greetz,
Marciemarc
 
Laatst bewerkt:
open beide bestanden in een apart venster. Laten we ze even "map1" en "map2" noemen. Stel dat je in map1 gegevens uit map2 wilt opnemen.

Ga in bestand map1 op het gewenste blad in de doelcel staan. Type "=" alsof je wilt beginnen met een formule. Maak deze echter niet af, en activeer met je muis het venster van bestand map2. Klijk vervolgens met je muis gewoon de cel waaruit de de data wilt hebben en druk nu op ENTER
.... klaar...

Er wordt vanzelf weer overgeschakeld naar bestand A en je zal zien dat de formule is ingevuld als iets dat lijkt op =[Map2.xls]Blad1!$A$1 In gewoon Nederlands: haal de waarde op uit het bestand "map2", uit blad1, cel A1

Let wel goed op dat je deze beide bestanden niet zonder meer kan verplaatsen of hernoemen. De verwijzingen zijn absoluut, wat betekent dat het echt een harde verwijzing is naar een specifieke locatie.
 
Laatst bewerkt:
Marciemarc, ik begrijp 'm niet helemaal. Welke cellen uit de ene tabel corresponderen / moeten gekoppeld worden aan cellen uit dat andere bestand?
 
Sorry als mijn vraag niet duidelijk was. Ik krijg elke dag een mail met enkele dealercodes en moet dan iets versturen naar deze dealers. Nu wil ik graag dat die dealercodes automatisch veranderd worden in de juiste dealergegevens met adres enz.

Dus moet ik een macro hebben die de code uit kolom B van Sales.xls gaat zoeken in het bestand Dealerlijst, en dan de gegevens hieruit kopieert naar het bestandje Sales.xls.

Hopelijk snappen jullie nu mijn bedoeling.

Greetz,
Marciemarc
 
Ja, ik denk dat ik het nu wel begrijp en even los van de vraag of ik die macro kan maken, (wil het overigens wel proberen) begrijp ik alleen de match tussen die 2 tabellen nog niet. Ik heb een willekeurige steekproef gedaan met enkele cijfers uit kolom B van het Sales 2006 werkblad in het werkblad Ford remark, maar er is totaal geen enkele match tussen die cijfers..........?

Daarnaast nog mogelijk de vraag: waarom zou je bij een match de gegevens uit het Ford bestand naar dat andere bestand willen kopieren? Dat andere bestand is een kaal uit 2 kolommen bestaand werkblaadje en ALS de match er eenmaal is, dan heb je in het Ford remark werkblad de gezochte gegevens toch al mooi bij elkaar staan?
 
Sales.xls is de file die ik elke dag krijg, in de plaats van de x-jes (kolom A) staan normaal chassisnummer van de voertuigen die verkocht zijn, en ik wil dus dat de dealercodes in kolom B gaan matchen met de dealercodes in de Dealerlijst.xls (sheet 2).

Dus je ziet 10500 in B2, dat is in de dealerlijst A1 t/m F1 - BVBA Van den Bossche

Ik hoop dat je nu begrijpt wat de bedoeling is.
Elke dag moet ik de dealergegevens opzoeken in die dealerlijst en kopieren en plakken in dit sales bestandje. De sales bestandjes zijn elke dag anders uiteraard.

Greetz,
Marciemarc
 
misschien kan je het ook eens zelf proberen. Een macro maken is lang niet zo moeilijk als het lijkt. Gebruik gewoon de macrorecorder.
Als je weet wat je wilt en hoe, kan je de actie(s) gewoon laten "opnemen" door de macrorecorder.

Maar nog even over die twee bestanden.... bedenk wel goed of dat echt is wat je wilt. Macro's en meerdere bestanden is doorgaans vragen om problemen. Bovendien moeten de bestandsnamen echt statisch zijn, en de layout van de bestanden mag ook niet veranderen. Als dat wel zo is, werkt je macro niet meer.

Als je elke week een nieuw bestand krijgt gaan al de bestanden mogelijk problemen geven. Je moet dan dus zorgen dat je de bestanden steeds onder exact dezelfde naam opslaat, of je moet ze consequent in dezelfde folder opslaan met logische bestandsnamen. Misschien kan je die op een of andere manier voorzien van een volgnummer (bijvoorbeeld week1 2006.xls t/m week52 2006.xls) ofzo. Dan zou je daar in je macro alvast in kunnen voorzien door een serie bestandsnamen op te nemen voor bijvoorbeeld een heel jaar. (maar de macro wordt daar uiteraard niet eenvoudiger van)
 
Sorry, ik heb kennelijk mijn dag niet. Ik zie nog geen verband tussen die B2 en die A1 t/m F1. Kolom F = trouwens verborgen en in kolom A en D zijn formules verwerkt (respectievelijk samenvoeginformatie en een tieformule)

Nogmaals, ik wil best proberen iets in elkaar te frutselen, maar ik "zie" het nog steeds niet.

Kun je niet simpelweg even de beide tabellen met wat namaakcijfers vullen, zodat ik in ieder geval gewoon kan "zien" wat er dan matched en hoe dat onoverzichtelijk wordt aangeleverd?
 
Ok, ik probeer het nog eens uit te leggen.

Ik heb het eenvoudiger gemaakt.

1 bestand
2 werkbladen

werkblad: "sales"

Hierop staan normaal alleen in kolom A de voertuigen en de dealercodes in kolom B.

Nu wil ik dat hij automatisch in het werkblad "dealerlijst" gaat zoeken naar de bijbehorende dealergegevens

Ik heb in het voorbeeld nu zelf alvast enkele dealers opgezocht en hun gegevens erachter geplakt.

Het werkblad "sales" verandert uiteraard elke dag. Het werkblad "dealerlijst" is altijd hetzelfde.

Nu hoop ik toch echt dat ik duidelijk ben geweest.

Greetz,
Marciemarc

PS: Ik krijg geen bijlage meer toegevoegd...hier downloaden: Voorbeeld1
 
Laatst bewerkt:
Ik ben zelf nog maar eens een beetje aan het zoeken geweest.

Voorbeeld2
Ik vind dit geen schoonheidsprijs, maar het werkt ongeveer zoals ik graag zou willen.

Had het echter liever in een macro-scriptje.

Please, wie helpt me hier nog een keer mee aub.

Greetz,
Marciemarc
 
Ik heb de macro zelf opgenomen, dit is het resultaat:

Code:
Sub Dealergegevens()
    Range("C1").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],dealerlijst!R1C1:R88C5,2)"
    Selection.AutoFill Destination:=Range("C1:C100"), Type:=xlFillDefault
    Range("C1:C100").Select
    Range("D1").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-2],dealerlijst!R1C1:R88C5,3)"
    Selection.AutoFill Destination:=Range("D1:D100"), Type:=xlFillDefault
    Range("D1:D100").Select
    Range("E1").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-3],dealerlijst!R1C1:R88C5,4)"
    Selection.AutoFill Destination:=Range("E1:E100"), Type:=xlFillDefault
    Range("E1:E100").Select
    Range("F1").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-4],dealerlijst!R1C1:R88C5,5)"
    Selection.AutoFill Destination:=Range("F1:F100"), Type:=xlFillDefault
    Range("F1:F100").Select

End Sub

Ik ben er tevreden mee, probleem opgelost...ahum, zelf maar wat verder gezocht dan mijn neus lang was.

Bedankt iedereen, en wie het mooier en begrijpelijker kan, graag!

Marciemarc
 
Dit is beter:

Code:
Sub Dealergegevens()
    Dim opzoektabel As Range, zoekcel As Range, c As Range
    Set zoekcel = Range("B1")
    Set opzoektabel = Sheets("dealerlijst").Range("A1:E88")
    
    For Each c In Range("C1:F1")
        c.Formula = "=VLOOKUP(" & zoekcel.AddressLocal(False, False) & "," & opzoektabel.AddressLocal(external:=True) & "," & c.Column - 1 & ")"
    Next
    Range("C1").Resize(, 4).AutoFill Destination:=Range("C1").Resize(100, 4), Type:=xlFillDefault
End Sub

en makkelijker uitbreidbaar naar soortgelijke situaties.

Probeer de code eens door te nemen en evt. vragen stellen over onduidelijkheden.

Wigi
 
Fijn ! Veel beter en begrijpelijker, die laatste code.

Kun je nu nog iets verzinnen dat hij stopt na de laatste dealercode die hij vindt? Ik krijg nu een hele rij met #N/B omdat ie 100 rijen afzoekt en er soms maar 10 of 15 rijtjes gezocht moeten worden.

Makkelijker met uitprinten steeds!

Greetz,
Marciemarc
 
Fijn ! Veel beter en begrijpelijker, die laatste code.

Kun je nu nog iets verzinnen dat hij stopt na de laatste dealercode die hij vindt? Ik krijg nu een hele rij met #N/B omdat ie 100 rijen afzoekt en er soms maar 10 of 15 rijtjes gezocht moeten worden.

Zoiets? De wijziging staat aan het einde van de code.

Code:
Sub Dealergegevens()
    Dim opzoektabel As Range, zoekcel As Range, c As Range
    Set zoekcel = Range("B1")
    Set opzoektabel = Sheets("dealerlijst").Range("A1:E88")
    
    For Each c In Range("C1:F1")
        c.Formula = "=VLOOKUP(" & zoekcel.AddressLocal(False, False) & "," & opzoektabel.AddressLocal(external:=True) & "," & c.Column - 1 & ")"
    Next
    With Range("C1")
         .Resize(, 4).AutoFill Destination:=.Resize(100, 4), Type:=xlFillDefault
         .Resize(100, 4).SpecialCells(xlCellTypeFormulas, 16).Clear
   End With
End Sub

Wigi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan