Hoe cellen kopieren naar ander excel bestand met vba?

Status
Niet open voor verdere reacties.

dreheist

Gebruiker
Lid geworden
15 aug 2013
Berichten
5
Hallo,

Ik wil van een excel werkblad via een button op dat blad telkens de waarden in cellen kopieren naar de eerstvolgende vrije cel in een database van een ander bestand.
Het lukt mij wel dit te kopieren naar een ander blad binnen hetzelfde bestand maar niet naar een ander bestand.

Ik wens de cellen A2, C7 en E3 van map1 tet kopieren naar A2, B2 en C2 van map2, telkens de eerstvolgende vrije regel.
Hartelijk dank voor de hulp.


Code:
Sub macro1()


' Macro1 Macro

  Application.ScreenUpdating = False

  Sheets("sheet1").Range("a2").Copy
  Sheets("sheet6").Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlValues
  
  Sheets("sheet1").Range("c7").Copy
  Sheets("sheet6").Range("B" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlValues
  
  Sheets("sheet1").Range("e3").Copy
  Sheets("sheet6").Range("C" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlValues
  
    
  Sheets("sheet1").Select
  Range("a2").Select
   
End Sub
 
Laatst bewerkt door een moderator:
Ik ga er van uit dat beide workbooks samen open zijn, right?
Wanneer dat niet zo is, zal dat niet gaan :(
Tenzij je code het doelbestand zelf opent en dan terug sluit natuurlijk.

Heb je al eens geprobeerd via de recorder die acties op te nemen?
Dat zou je al aardig op weg moeten helpen...
 
Laatst bewerkt:
Hallo,

Deze zou het moeten doen (zonder knippen en plakken).


Code:
Sub macro1()
Application.ScreenUpdating = False
Dim i As Long
i = Workbooks("Map3").Sheets("sheet6").Range("A" & Rows.Count).End(xlUp).Row

Workbooks("Map3").Sheets("sheet6").Cells(i + 1, 1) = Sheets("sheet1").Range("a2").Value
Workbooks("Map3").Sheets("sheet6").Cells(i + 1, 2) = Sheets("sheet1").Range("c7").Value
Workbooks("Map3").Sheets("sheet6").Cells(i + 1, 3) = Sheets("sheet1").Range("e3").Value

Application.ScreenUpdating = True
End Sub

Als je de screenupdating op false zet in het begin van je macro, moet je deze ook op het einde terug op true zetten.

Joske
 
Laatst bewerkt:
Bedankt, het werkt perfect.

Nog een bijkomende vraagje. Indien map 3 niet is geopend krijg je een foutmelding.
Is het mogelijk deze voorwaarde in te bouwen zodat bij indrukken van de button map3 automatisch opent indien deze niet is geopend?
 
... ... Indien map 3 niet is geopend krijg je een foutmelding.
Is het mogelijk deze voorwaarde in te bouwen zodat bij indrukken van de button map3 automatisch opent indien deze niet is geopend?

Deze niet gelezen zeker :eek:
Ik ga er van uit dat beide workbooks samen open zijn, right?
Wanneer dat niet zo is, zal dat niet gaan :(
Tenzij je code het doelbestand zelf opent en dan terug sluit natuurlijk.
Heb je al eens geprobeerd via de recorder die acties op te nemen?
Dat zou je al aardig op weg moeten helpen...
 
Code:
Sub macro1()
Dim i As Long
Dim wb As Workbook

Application.ScreenUpdating = False

    On Error Resume Next
    Set wb = Workbooks("map3.xlsx")
    On Error GoTo 0
    
    If wb Is Nothing Then
        Set wb = Workbooks.Open("C:\Documents\map3.xlsx")
    Else
    End If
Workbooks("map2").Sheets("sheet1").Activate
i = Workbooks("Map3").Sheets("sheet6").Range("A" & Rows.Count).End(xlUp).Row

Workbooks("Map3").Sheets("sheet6").Cells(i + 1, 1) = Sheets("sheet1").Range("a2").Value
Workbooks("Map3").Sheets("sheet6").Cells(i + 1, 2) = Sheets("sheet1").Range("c7").Value
Workbooks("Map3").Sheets("sheet6").Cells(i + 1, 3) = Sheets("sheet1").Range("e3").Value

Application.ScreenUpdating = True
End Sub

Joske
 
Heb dit zeker gelezen maar stelde de vraag dat indien de map niet geopend is deze toch zou openen. De map hoeft niet gesloten te worden.
 
Bedankt Joske. het werkt perfect.
Bedankt om dit op een zondagmiddag zo maar op te lossen :)
 
Graag gedaan,

Zet je de vraag nog op "opgelost".

Bedankt,

Joske
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan