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

Werkblad Excel kopiëren naar een ander bestaand bestand

Status
Niet open voor verdere reacties.

samallo

Gebruiker
Lid geworden
2 apr 2019
Berichten
12
Goedemiddag,

Ik heb een werkbestand "A" waarin ik in het werkblad "bezoekverslag" aanpassingen doe. Na de aanpassingen wil ik dat dit werkblad gekopieerd word naar bestand "B" met als naam NAAM + DATUM (terug te vinden in C2 en C3) bv. PIET 2-4-2019 .Eigenlijk wil ik van de actie niets merken, dus bestand "B" opent, kopiëren en sluit weer.

Ik wil deze actie steeds opnieuw kunnen doen, met een andere datum

Bestand "B" word door het jaar heen dus opgevuld met werkbladen, steeds met de naam 'PIET + (nieuwe)DATUM

Ik kom er maar niet uit, met opnemen van Macro's niet en vergelijkbare vragen op dit forum.

wie zou me op weg kunnen helpen?
 
Beide bestanden in dezelfde map plaatsen.

Code:
Sub hsv()
Dim Wb As Workbook, cl As String
With ThisWorkbook.Sheets("bezoekverslag")
cl = .Range("c2") & " " & .Range("c3")  'of "Piet " & .range("c3") of "Piet " & format(date,"dd-mm-yyyy")
Set Wb = GetObject(ThisWorkbook.Path & "\B.xlsx")
    If IsError(Evaluate("'[" & Wb.Name & "]" & cl & "'!A1")) Then
         Wb.Activate
         Wb.Sheets.Add(, Sheets(Wb.Sheets.Count)).Name = cl
         .Cells.Copy
         Wb.Sheets(cl).Paste
      Else
     MsgBox "Blad """ & cl & """ bestaat al in bestand " & Wb.Name
    End If
 Wb.Close -1
 Application.CutCopyMode = False
End With
End Sub

Of:
Code:
Sub hsv()
Dim Wb As Workbook, cl As String
With ThisWorkbook.Sheets("bezoekverslag")
cl = .Range("c2") & " " & .Range("c3")  'of "Piet " & .range("c3") of "Piet " & format(date,"dd-mm-yyyy")
Set Wb = Workbooks.Open(ThisWorkbook.Path & "\B.xlsx")
    If IsError(Evaluate("'" & cl & "'!A1")) Then
         Wb.Sheets.Add(, Sheets(Wb.Sheets.Count)).Name = cl
         .Cells.Copy
         Wb.Sheets(cl).Paste
         Application.CutCopyMode = False
      Else
     MsgBox "Blad """ & cl & """ bestaat al in bestand " & Wb.Name
    End If
 Wb.Close -1
End With
End Sub
 
Laatst bewerkt:
Heel erg bedankt voor de snelle reactie. so far so good! waarvoor dank. Ik zit met één probleem wat ik vergat te melden:
Het bestand "B" heet in werkelijkheid PIET , maar als ik een verslag over HENK maak moet het naar het bestand HENK

dus vba moet variable worden.

kreeg dat gister nog niet voor elkaar
 
Aanpassen naar.
Code:
Thisworkbook.path & "\" & .range("c2") & ".xlsx"
 
Laatst bewerkt:
bedankt!

Daar loopt hij helaas op vast;

Private Sub CommandButton1_Click()
Dim Wb As Workbook, cl As String
With ThisWorkbook.Sheets("bezoekverslag")
cl = .Range("c4") & " " & .Range("c7") 'of "Piet " & .range("c3") of "Piet " & format(date,"dd-mm-yyyy")
Set Wb = GetObject(ThisWorkbook.Path & .Range("c4") & ".xlsx")
If IsError(Evaluate("'[" & Wb.Name & "]" & cl & "'!A1")) Then
Wb.Activate
Wb.Sheets.Add(, Sheets(Wb.Sheets.Count)).Name = cl
.Cells.Copy
Wb.Sheets(cl).Paste
Else
MsgBox "Blad """ & cl & """ bestaat al in bestand " & Wb.Name
End If
Wb.Close -1
Application.CutCopyMode = False
End With
End Sub
 
Als ik vervolgens Bestand Piet open is deze grijs.... geen werkbladen zichtbaar
 
Je bent iets vergeten over te nemen uit mijn vorig schrijven
 
Excuses mijn fout.... mijn laatste reactie kunt u vergeten
 
U heeft me heel erg geholpen waarvoor dank!!

Hij heeft het de eerste keer gedaan, nu blijft bestand "Piet" Grijs .....geen werkbladen te zien

vreemd, u nog een idee?
 
Menu Beeld - Zichtbaar maken.
 
Ja dat heb ik gedaan inderdaad..... Alleen moet ik dit dan steeds doen? we zeggen hier toch niks over in de code?

probleem is dat het bestand wordt gelezen door verschillende mensen ook mensen die net aan begrijpen hoe excel werkt
 
Met de tweede code die ik plaatste heb je daar geen last van. ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan