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

kopiëren van ene naar andere openstaande excelsheet

Status
Niet open voor verdere reacties.

gvanwijk

Gebruiker
Lid geworden
3 mei 2018
Berichten
182
Er staan 2 excelsheets open en ik wil data kopieren van de ene naar de andere sheet. Daar heb ik deze code voor, "probleem" alleen is dat daarin de naam (zie rood) van het te kopieren bestand moet kloppen. Welke naam/code moet ik gebruiken om van het andere openstaande bestand naar "ThisWorkbook" (groen) te kopieren, dus ongeacht de naam?

Code:
Sub Kopie()
Workbooks("[COLOR="#FF0000"]Hoofdbestand.xlsm[/COLOR]").Sheets("Blad1").Range("A1:B" & Range("A1").End(xlDown).Row).Copy Destination:= _
[COLOR="#00FF00"]ThisWorkbook[/COLOR].Sheets("Blad1").Range("A1:B" & Range("A" & Rows.Count).End(xlUp).Row + 1)

End Sub
 
Je zal ergens moeten opgeven van welk document je gegevens wilt kopiëren.
Waar wordt Workbooks("Hoofdbestand.xlsm") geopend?
 
Laatst bewerkt:
In principe staan beide bestanden gewoon geopend naast elkaar (als enige twee). Het zijn dus de enige 2 geopende workbooks. Ik had gehoopt dat ik - net als het groene "ThisWorkbook" van hierboven - een algemene verwijzing kan gebruiken om het andere geopende workbook aan te duiden; zoiets al "OtherOpenedWorkbook" of zo :rolleyes:, het werkboek van waaruit gekopieerd moet worden.
 
Daarom stelde ik dus de vraag, waar wordt Workbooks("Hoofdbestand.xlsm") geopend?
Dat heb je geen antwoord op gegeven.
 
Als die rode het actieve bestand is kan het met 'Activeworkbook'
 
@HSV

Dan zou het dus moeten worden (en dat werkt niet):
Code:
Sub Kopie()
Activeworkbook.Sheets("Blad1").Range("A1:B" & Range("A1").End(xlDown).Row).Copy Destination:= _
ThisWorkbook.Sheets("Blad1").Range("A1:B" & Range("A" & Rows.Count).End(xlUp).Row + 1)

End Sub
 
Laatst bewerkt:
Omdat het afhankelijk is van de vraag je nog geen antwoord op hebt gegeven.
 
@EdMoor Ik meende daar wel op geantwoord te hebben, maar dan heb ik je vraag kennelijk niet goed begrepen, kan gebeuren :o
 
Tuurlijk.
Maar de vraag is dus nog steeds waar dat Workbooks("Hoofdbestand.xlsm") document wordt geopend.
 
Wellicht doel je hierop: beide bestanden bevinden zich op mijn PC in dezelfde map op het bureaublad
 
Nee.
Je opent je document waar die VBA code in staat.
Op welk moment en door welke actie wordt dan dat andere document geopend.
 
ik open document Moeder, ik open document Dochter (met de VBA code) - dus staan er op dat moment 2 documenten open - en geef vanuit de Dochter met de VBA code de opdracht de data uit de Moeder te halen.
 
Als Thisworkbook als eerste is geopend en je wilt de gegevens van het bestand wat als tweede geopend is (diens naam dus iedere keer anders kan zijn).
Code:
workbooks(2)
 
Die volgorde is dus inderdaad belangrijk.
Maar zo zijn er nog meer mogelijkheden afhankelijk van hoe e.e.a. wordt gedaan.
Vandaar de vragen.
 
Uiteraard en inderdaad Ed,
 
Oke dank beiden weer. Onderstaande code werkt iig. Ik begrijp dus dat dit alleen werkt als eerst de dochter (waarnaar gekopieerd moet worden) als eerste van de 2 geopend wordt.

Code:
Sub Kopie()
Workbooks(2).Sheets("Blad1").Range("A1:B" & Range("A1").End(xlDown).Row).Copy Destination:= _
ThisWorkbook.Sheets("Blad1").Range("A1:B" & Range("A" & Rows.Count).End(xlUp).Row + 1)

End Sub
 
Inderdaad. Zo is het te gebruiken nummer dus afhankelijk van de volgorde van openen.
Maar je kan ook dochter openen en dan in de ThisWorkbook_Open de moeder openen bij het maken van een object ervan.
Dan is de naam van dat object overal in je VBA project voorhanden terwijl deze dan staat voor het juiste werkboek.

Tevens hoef je dan zelf maar 1 document te openen.
 
@edmoor

Tja, dat zou inderdaad helemaal mooi zijn, dat voorkomt eventuele vergissingen. Maar hoe wordt de code dan als je via de dochter de verkenner opent om de moeder te openen: "en dan in de ThisWorkbook_Open de moeder openen bij het maken van een object ervan. ?
 
Laatst bewerkt:
Zorg ervoor dat beide document in dezelfde map staan:
Bekijk bijlage Dochter.xlsm
Bekijk bijlage Moeder.xlsx

Open het document Dochter.
Druk op de knop en zie dat A1 van Moeder wordt gekopieerd naar A1 van Dochter.
Kijk in het document Dochter in de secties Module1, ThisWorkbook en Blad1 voor de gebruikte code.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan