Rij overzetten naar ander bestand excel vba

Status
Niet open voor verdere reacties.

Thijsie88

Gebruiker
Lid geworden
2 jan 2016
Berichten
5
Hoi,
Ik heb het zelfde probleem met de gegevens in vba.
Ik wil vanuit het bestaande bestand 1 rij kopieren uit de sheet "export" van A1:EM1.
deze moet geplakt worden in een ander bestaand bestand "Map2", deze moet soms nog geopend worden maar kan ook al geopend zijn.
De gegevens uit het blad "export" moeten geplakt worden in de eerste lege cel op kolom "K".
Nu heb ik al een stuk vba klaar maar krijg het niet voor elkaar om deze goed te krijgen.

Wie kan mij helpen?

Groeten



Code:
Sub Macro2()
'
' Macro2 Macro
'

Dim myOriginalFileName As String
myOriginalFileName = ThisWorkbook.Name

On Error Resume Next
Set wb = Workbooks("Map2.xlsm")
On Error GoTo 0

If wb Is Nothing Then
Set wb = Workbooks.Open("C:\Map2.xlsm")
Else
End If
ThisWorkbook.Sheets("export").Activate
Range("A1:EM1").Select
Selection.Copy
Sheets("overzicht verkoop 2016").Range("K" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlValues

End Sub
Code:
 
Laatst bewerkt:
Voor jou geldt hetzelfde. Maak twee objecten aan - bijvoorbeeld WB en WB2 - die naar de twee werkboeken verwijzen. Eentje heb je al gemaakt en de tweede moet je nog maken. De ene kan bijvoorbeeld verwijzen naar de ActiveWorkbook (waar vandaan je de rijen kopieert) en de tweede naar een werkboek die je opent. Vervolgens kun je via die twee objecten rijen kopiëren en plakken.

Ik zou overigens ook in je code aangeven wat voor soort object WB en WB2 zijn:
Code:
Dim WB As Workbook
Dim WB2 As Workbook

Set WB = ActiveWorkbook 'Waar vandaan je wilt kopiëren
Set WB2 = Workbooks.Open("C:\Map2.xlsm")

WB.Worksheets("export").Range("A1:EM1").Copy

WB2.Worksheets("overzicht verkoop 2016").Range("K" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlValues

Overigens moet de range waarin je de nieuwe gegevens plakt minstens zo groot zijn als die waar vandaan je ze kopieert (A1:EM1). Zo niet dan wordt uiteraard niet alles geplakt in het tweede werkboek.

Succes!
 
Ik heb het geprobeerd.
Als het bestand "Map2" NIET geopend is dan werkt hij wel, maar als hij geopend is dan geeft hij een fout bij de volgende regel in de code:
Set WB2 = Workbooks("Map2.xlsm")

On Error Resume Next

Wat is hier het probleem? ik kom er zelf niet goed uit.

Code:
Sub Macro2()
'
' Macro2 Macro
'
Dim WB As Workbook
Dim WB2 As Workbook

Set WB = ActiveWorkbook 'Waar vandaan je wilt kopiëren
Set WB2 = Workbooks("Map2.xlsm")

 On Error Resume Next
    Set WB2 = Workbooks("Map2.xlsm")
    On Error GoTo 0
    
    If WB2 Is Nothing Then
        Set WB2 = Workbooks.Open("C:\Map2.xlsm")
    Else
    End If
WB.Worksheets("export").Range("A1:EM1").Copy

WB2.Worksheets("overzicht verkoop 2016").Range("K" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlValues


End Sub
 
Laatst bewerkt:
Je stelt nu 2x het object WB2 in: 1x voor de "On Error..." en 1x er na. De eerste regel (dus vóór de "On Error...") moet je weglaten want als het werkboek nog niet geopend is dan krijg je een error die nog niet wordt afgevangen. Pas ná de "On Error..." worden fouten namelijk pas afgevangen.
 
Een andere methode.
Code:
Sub hsv()
Dim c00 As Object
Set c00 = GetObject("c:\Map2.xlsm")
    c00.Parent.Windows(2).Visible = True
    c00.Sheets("overzicht verkoop 2016").Range("K" & Rows.Count).End(xlUp).Offset(1).Resize(, 39) = ThisWorkbook.Sheets("export").Range("A1:EM1").Value
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan