Hallo,
Ik heb al eerder een soort gelijke vraag gesteld over een vba macro voor het kopieren van een werkblad.Die is gelukkig inmiddels opgelost.
Dit is een soortgelijke vraag, maar is weer voor een ander excel bestandje.
Het geval : De macro werkt indien er nog geen werkblad met de zelfde naam staat opgeslagen. Indien dit wel het geval is moet deze (dmv msgbox na goedkeuring van gebruiker ) overschreven/vervangen worden.
Als ik de macro gebruik en de betreffende msgbox komt met de melding of ik deze wil vervangen, dan klik ik op ja en slaat hij het betreffende werkblad op onder de originele naam van het betreffende werkblad ( ipv de naam uit cel Y14) met daarbij een " (2) " achter de de naam. De naam van het werkblad moet dus uit een cel worden gehaald. (Y14).
Deze code werkt dus net niet...
Wat moet ik nog aanpassen om deze code wel werkend te krijgen?
Alvast bedankt!!
M.vr.gr.
Safe
Ik heb al eerder een soort gelijke vraag gesteld over een vba macro voor het kopieren van een werkblad.Die is gelukkig inmiddels opgelost.
Dit is een soortgelijke vraag, maar is weer voor een ander excel bestandje.
Het geval : De macro werkt indien er nog geen werkblad met de zelfde naam staat opgeslagen. Indien dit wel het geval is moet deze (dmv msgbox na goedkeuring van gebruiker ) overschreven/vervangen worden.
Als ik de macro gebruik en de betreffende msgbox komt met de melding of ik deze wil vervangen, dan klik ik op ja en slaat hij het betreffende werkblad op onder de originele naam van het betreffende werkblad ( ipv de naam uit cel Y14) met daarbij een " (2) " achter de de naam. De naam van het werkblad moet dus uit een cel worden gehaald. (Y14).
Deze code werkt dus net niet...
Code:
Sub werkbladkopie()
With ActiveSheet
For Each cl In .Range("Y14")
If Not WSExists(CStr(cl)) Then
ActiveSheet.Copy , Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = Range("Y14")
Else
If MsgBox("Er bestaat reeds een document onder deze naam. Wilt u dat document vervangen ?", vbOKCancel) = vbOK Then
ActiveSheet.Copy , Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = Range("Y14")
End If
End If
Next
End With
End Sub
Function WSExists(wsName As String) As Boolean
On Error Resume Next
WSExists = Worksheets(wsName).Name = wsName
Application.DisplayAlerts = False
End Function
Wat moet ik nog aanpassen om deze code wel werkend te krijgen?
Alvast bedankt!!
M.vr.gr.
Safe