bij opslaan tabblad kopieeren naar een ander bestand en naam wijzigen

Status
Niet open voor verdere reacties.

arienlans

Gebruiker
Lid geworden
15 aug 2008
Berichten
172
is het mogelijk om een tabblad te kopieeren naar een ander werkblad als het bestand wordt afgesloten en de naam van het tabblad wijzigen naar de naam die in een cel staat?
 
Dat is de handmatige manier

Ik wil dat het automatisch gebeurt met VBA
 
hij kopieer niet de gegevens naar het andere bestand, maar naar het geopende bestand.

ik heb nu deze code
Code:
Public Sub CopySheetFromOtherWorkbook()
    Dim vFilename
    Dim SourceBook As Workbook
    Dim TargetBook As Workbook
    Dim sSheet1 As String
    Dim sSheet2 As String
    
    'geef aan wat het originele werkboek is
    '(het werkboek waarin we gaan werken)
    Set TargetBook = Application.ActiveWorkbook
    
    'kijk of het standaard werkboek bestaat
    If FileExists("pad +bestand.xlsx") Then
        'het standaardbestand bestaat dus open die
        vFilename = "pad+bestand.xlsx"
    Else
        'het standaardbestand bestaat niet, dus vraag de gebruiker
        'om een bestand te selecteren
        vFilename = Application.GetOpenFilename("Excel bestanden (*.xlsx), *.xlsx")
    End If
    
    'kijk of er een bestand is geselecteerd
    If vFilename <> False Then
        'een bestand is geselecteerd dus open die
        Set SourceBook = Workbooks.Open(vFilename)
        
        'kopieer sheet "A" van het geopende werkboek
        SourceBook.Sheets("Blad1").Select
        'plak de gekopieerde sheet achter de eerste sheet v/h originele werkboek
        SourceBook.Sheets("Blad1").Move After:=TargetBook.Sheets(1)
        
        'geef melding dat de sheet is gekopieerd
        sSheet1 = "Blad1"
        sSheet2 = TargetBook.Sheets(1).Name
        MsgBox "Sheet " & sSheet1 & " is gekopieerd in werkboek " & TargetBook.Name & " achter sheet " & sSheet2, _
               vbInformation + vbOKOnly, _
               "Sheet gekopieerd!"
        
        'sluit het geopende werkboek
        SourceBook.Close False
        
        'geef de nieuwe sheet in het originele werkboek de focus
        TargetBook.Sheets("Blad1").Select
    End If
    
End Sub

Private Function FileExists(fname) As Boolean
'Geeft TRUE terug als een bestand bestaat
    Dim x As String
    
    x = Dir(fname)
    FileExists = IIf(x <> "", True, False)
    
End Function

en mijn tweede vraag is kan je de sheet ook de naam uit cel A1 geven.

Ariën
 
hij kopieer niet de gegevens naar het andere bestand, maar naar het geopende bestand.

ik heb nu deze code
Code:
Public Sub CopySheetFromOtherWorkbook()
    Dim vFilename
    Dim SourceBook As Workbook
    Dim TargetBook As Workbook
    Dim sSheet1 As String
    Dim sSheet2 As String
    
    'geef aan wat het originele werkboek is
    '(het werkboek waarin we gaan werken)
    Set TargetBook = Application.ActiveWorkbook
    
    'kijk of het standaard werkboek bestaat
    If FileExists("pad +bestand.xlsx") Then
        'het standaardbestand bestaat dus open die
        vFilename = "pad+bestand.xlsx"
    Else
        'het standaardbestand bestaat niet, dus vraag de gebruiker
        'om een bestand te selecteren
        vFilename = Application.GetOpenFilename("Excel bestanden (*.xlsx), *.xlsx")
    End If
    
    'kijk of er een bestand is geselecteerd
    If vFilename <> False Then
        'een bestand is geselecteerd dus open die
        Set SourceBook = Workbooks.Open(vFilename)
        
        'kopieer sheet "A" van het geopende werkboek
        SourceBook.Sheets("Blad1").Select
        'plak de gekopieerde sheet achter de eerste sheet v/h originele werkboek
        SourceBook.Sheets("Blad1").Move After:=TargetBook.Sheets(1)
        
        'geef melding dat de sheet is gekopieerd
        sSheet1 = "Blad1"
        sSheet2 = TargetBook.Sheets(1).Name
        MsgBox "Sheet " & sSheet1 & " is gekopieerd in werkboek " & TargetBook.Name & " achter sheet " & sSheet2, _
               vbInformation + vbOKOnly, _
               "Sheet gekopieerd!"
        
        'sluit het geopende werkboek
        SourceBook.Close False
        
        'geef de nieuwe sheet in het originele werkboek de focus
        TargetBook.Sheets("Blad1").Select
    End If
    
End Sub

Private Function FileExists(fname) As Boolean
'Geeft TRUE terug als een bestand bestaat
    Dim x As String
    
    x = Dir(fname)
    FileExists = IIf(x <> "", True, False)
    
End Function

en mijn tweede vraag is kan je de sheet ook de naam uit cel A1 geven.

Ariën
 
Daar weet ik geen antwoord op te vinden. Misschien dat iemand anders je hierin kan helpen. Sorry. :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan