importeren gegevens uit ander excel bestand

Status
Niet open voor verdere reacties.

Toby1982

Gebruiker
Lid geworden
16 mrt 2019
Berichten
37
Goedenavond,

Ik ben op zoek naar een code die gegevens uit een andere cel in een bestand naar een ander bestand in een cel kan importeren.
Het bestand waarvan het moet worden geïmporteerd, wijzigt de bestandsnaam elke week, maar dit verandert alleen het weeknummer zodat de rest van de bestandsnaam hetzelfde blijft.
Dus ik wil de tekst van cellen D16 tot D38 (afbeelding beneden) en het getal van cellen G16 tot G38 (afbeelding beneden) en de tijd van cellen J16 tot J38 (afbeelding beneden) om te importeren in cellen J45 tot en met J50 (foto boven ) maar als de tijd tussen 6:00 en 13:00 ligt, moet dit in cel J45 zijn en van 14:00 tot 21:00 in cel J48.
Is het ook mogelijk dat de tekst in J45 komt, het nummer in J46 en de tijd in J47 (afbeelding boven)

Concept1.jpg

Concept2.jpg
 

Bijlagen

  • Concept2.jpg
    Concept2.jpg
    309,2 KB · Weergaven: 55
Laatst bewerkt:
Da's mooi Toby,

En waar blijft de reactie op dit stukje van de tekst die je tot je genomen hebt:

Illustreer uw vraag met een voorbeeldbestand
 
Hierbij 2 voorbeeld bestanden.

In het geel gemarkeerde voorbeeld bestand1 moeten dus de gegevens geimporteerd worden vanuit het geel gemarkeerde cellen uit voorbeeld bestand2
 

Bijlagen

  • voorbeeld bestand 1.xlsx
    12,4 KB · Weergaven: 41
  • voorbeeld bestand 2.xls
    48 KB · Weergaven: 26
voorbeeld bestand2 daarvan veranderd elke week het weeknummer in de bestandsnaam IJ_Lossing 12 2019 en volgende week dus IJ_Lossing 13 2019
 
Misschien handig dat je even met de ogen van een helper kijkt en dan tot inzicht komt dat het niet echt begrijpelijk is. Waarom wil je het op zo'n chaotische manier samenvoegen? Als je even de zoekfunctie gebruikt dan zal je tig voorbeelden vinden om data uit verschillende bestanden samen te voegen. Met een macro-opname kom je vaak ook al een heel eind.
 
Misschien heb ik het wat lastig uitgelegd.
Ik zal proberen het simpel uit te leggen.
wat ik zoek is een macro die bepaalde cellen exporteert uit een werkmap in een andere werkmap importeert.
het betreft twee lijsten die allebei op datums werken, de ene is een losplanning en de andere een personeelsplanning.
Dus in de losplanning staat op maandag 18-03 bepaalde gegevens die ik wil exporteren naar de personeelsplanning op dezelfde datum.
Nu is het alleen zo dat de losplanning elke week een ander weeknr krijgt in de bestandsnaam.
Hoop dat het zo duidelijk is en iemand mij kan helpen.
 
Beide bestanden in dezelfde map plaatsen.

Ik heb het bestand met dit weeknummer benoemd (het is immers nog week 11).
Waarom het ene bestand een .xls extensie heeft ontgaat me.
De code is er naar geschreven.

Code Sub hsv() uitvoeren.

PS. Als je vbMonday veranderd in VbSunday in de code moet je er 12 van maken.
 

Bijlagen

  • voorbeeld bestand 1.xlsb
    27,1 KB · Weergaven: 51
  • ij_lossing 11 2019.xls
    48 KB · Weergaven: 36
Laatst bewerkt:
Goedemiddag Harry
Super bedankt voor de code alleen geeft deze een foutmelding:
Fout 432
Kan een bestandsnaam of klassennaam niet vinden tijdens een automatieseringsbewerking.

Hij verwijst dan naar het stukje:
With GetObject(ThisWorkbook.Path & "\ij_lossing " & DatePart("ww", Date, vbMonday, vbFirstFourDays) & " 2019.xls")

Heb de bestanden in dezelfde map gezet zoals je zei.

Code:
Sub hsv()
Dim sv, r, i As Long, arr(8, 6), n As Long, j As Long, k As Long, Wb As Worksheet
Set Wb = ThisWorkbook.Sheets("blad1")
With GetObject(ThisWorkbook.Path & "\ij_lossing " & DatePart("ww", Date, vbMonday, vbFirstFourDays) & " 2019.xls")
sv = .Sheets("loslijst ijmuiden").Range("a16:j38")
 For i = 1 To UBound(sv)
   r = Application.Match(CLng(sv(i, 2)), Wb.Rows(2), 0)
   If IsNumeric(r) Then
     If k = 0 Then k = r
     arr(n, j) = sv(i, 4)
     arr(n + 1, j) = sv(i, 7)
     arr(n + 2, j) = sv(i, 10)
     n = n + 3
        If n > 8 Then
          n = 0
          j = j + 1
        End If
   End If
 Next i
Wb.Cells(45, k).Resize(9, 7) = arr
End With
End Sub
 
Laatst bewerkt:
Goedemiddag Toby.
Het is nu week 12.

Bestandsnaam aanpassen.
Code:
ij_lossing 12 2019.xls
 
Stom van mij, hij doet het nu.
Top!!!
Kunnen de bestanden ook in verschillende mappen staan?
 
Vervang dan ThisWorkbook.Path door het gewenste pad.
 
Uiteraard.
Bv.
Code:
With GetObject([COLOR=#ff0000]"C:\MAP1\[/COLOR]ij_lossing " & DatePart("ww", Date, vbMonday, vbFirstFourDays) & " 2019.xls")
 
Ok dat werkt ook.
Nu kan ik alleen de loslijst niet openen als ik het geïmporteerd heb, in VBA staat die open maar zie het werkblad niet na het importeren.
En hoe kan ik volgende week bijvoorbeeld importeren? Wat moet ik dan veranderen in de code? Heb al +1 gedaan maar dat werkt niet.
 
Veranderen in.
Code:
With GetObject("C:\Map1\ij_lossing " & Application.InputBox("typ het weeknummer + spatie + jaartal", "openen", "bv. 12 2019",,,,,2) & ".xls")

Het zichtbaar maken: Menu Beeld → Zichtbaar maken.

Je kan ook close toevoegen om het te sluiten

Code:
 .Close
End With
 
Laatst bewerkt:
OK met:
.Close
End With

werkt het.

Nu wil ik bijvoorbeeld week 13 importeren via een andere button:
Moet ik dan wat aanpassen in de code?
 
Nee, in de inputbox typen: 13 2019
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan