VBA: guardar una hoja y eliminar los enlaces

Resuelto
Maud1681 Mensajes publicados 14 Fecha de registro   Estado Miembro Última intervención   -  
Maud1681 Mensajes publicados 14 Fecha de registro   Estado Miembro Última intervención   -
Bonjour,
Estoy utilizando el siguiente código para copiar una hoja de un documento de Excel y guardarla:
1) se hace clic en el botón
2) la hoja se copia/guarda con un nombre y el botón de la macro desaparece
3) el documento fuente se cierra sin guardar
El documento fuente tiene celdas que están vinculadas a otra hoja del libro.

Problema: la hoja copiada conserva los enlaces que me gustaría eliminar... ¿saben cómo modificar mi código?

Private Sub CommandButton4_Click()
'Macro: cuando el archivo está completo, se hace clic en el botón 4, la hoja se copia y el archivo original se cierra y se elimina.
Dim nomfichier As String
Dim FileExtStr As String
Dim FileFormatNum As Long
ThisWorkbook.ActiveSheet.Copy
ActiveSheet.Shapes("CommandButton4").Visible = False
FileExtStr = ".xlsm": FileFormatNum = 52
ActiveSheet.SaveAs Filename:= _
"\\xxxxx\xxxx\xxx\xx\test\" & "test" & ".xls"
ThisWorkbook.Close SaveChanges:=False
End Sub

Agradeciéndoles de antemano.

1 respuesta

  1. f894009 Mensajes publicados 17417 Fecha de registro   Estado Miembro Última intervención   1 717
     
    Hola,

    Al pasar por una hoja intermedia, no un libro (
    ThisWorkbook.ActiveSheet.Copy
    ), no generará porque cierras sin guardar

    Private Sub CommandButton4_Click() 'Macro: cuando el archivo esté completo, hacemos clic en el botón 4, la hoja se copia y el archivo original se borra y se cierra. Dim nomfichier As String Dim FileExtStr As String Dim FileFormatNum As Long With ActiveSheet .Shapes("CommandButton4").Visible = False .Cells.Copy End With Sheets.Add After:=ActiveSheet Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ActiveSheet.SaveAs Filename:="\\xxxxx\xxxx\xxx\xx\test\" & "test" & ".xls", FileFormat:=56 ThisWorkbook.Close SaveChanges:=False End Sub
    0
    1. Maud1681 Mensajes publicados 14 Fecha de registro   Estado Miembro Última intervención  
       
      Hola,
      He aplicado tu método, pero esto copia la hoja eliminando las vinculaciones y me gustaría conservar el formato y los botones de macro que deben estar activos para el siguiente usuario...
      0
      1. f894009 Mensajes publicados 17417 Fecha de registro   Estado Miembro Última intervención   1 717 > Maud1681 Mensajes publicados 14 Fecha de registro   Estado Miembro Última intervención  
         
        Re,

        Ok, estoy mirando

        continuación:

        Quizás el nombre de la hoja copiada a ver

        Private Sub CommandButton4_Click() 'Macro: cuando el archivo está completo, se hace clic en el botón 4, la hoja se copia y el archivo original se borra y se cierra. Dim nomfichier As String Dim FileExtStr As String Dim FileFormatNum As Long With ActiveSheet .Shapes("CommandButton4").Visible = False .Copy After:=ActiveSheet End With With ActiveSheet nom = .Name .Select .UsedRange.Copy .Range("A1").Select End With Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False 'ActiveWorkbook.SaveAs Filename:="d:\_acsv\" & "essai_test_lien" & ".xls", FileFormat:=56 ActiveSheet.SaveAs Filename:="\\xxxxx\xxxx\xxx\xx\test\" & "test" & ".xls", FileFormat:=56 Sheets(nom).Copy ThisWorkbook.Close SaveChanges:=False End Sub
        0
    2. Maud1681 Mensajes publicados 14 Fecha de registro   Estado Miembro Última intervención  
       
      Te reviso y te digo... gracias.
      0
    3. Maud1681 Mensajes publicados 14 Fecha de registro   Estado Miembro Última intervención  
       
      Finalmente fui como una bárbara haciendo un copiar/pegar especial de las celdas que tenían vínculos:

      Range("A35:C35").Select
      Selection.Copy
      Range("A35").Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False

      Muchas gracias por tu ayuda.
      0