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

Wederom, Werkblad kopie met gegevens uit cel

Status
Niet open voor verdere reacties.

safe

Gebruiker
Lid geworden
15 feb 2013
Berichten
94
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...

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
 
Code:
Sub werkbladkopie()
With ActiveSheet
Dim sh As Worksheet, k As Long
 If .Range("Y14") <> vbNullString Then
        If Not WSExists(.Range("Y14")) Then
              .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
         If Split(.Name)(0) = .Range("Y14") Then
               .Copy , Sheets(Sheets.Count)
         Else
              .Copy , Sheets(Sheets.Count)
    k = 2
     For Each sh In Sheets
      If Split(sh.Name)(0) = .Range("Y14") Then k = k + 1
           Next sh
         Sheets(Sheets.Count).Name = .Range("Y14") & " (" & k & ")"
             End If
            End If
        End If
      End If
    End With
End Sub
 
Laatst bewerkt:
Harry dankjewel voor je code.
Code werkt maar als ik deze code gebruik dan schrijft Excel deze opnieuw weg met een getal erachter.
Mijn wens is om bestaand werkblad te vervangen.
Ik heb graag dat Excel het reeds bestaande blad overschrijft/vervangt indien de gebruiker op "ok" klikt.
Is dat mogelijk?

M.vr.gr.
Safe
 
De code van je vorige vraag kan je dan toch gebruiken?
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan