Excel - Duplicar hoja excel sin fórmulas

   
Vista:

Duplicar hoja excel sin fórmulas

Publicado por Pedro (9 intervenciones) el 19/03/2017 11:21:59
Con este código (gracias a la ayuda de este foro) a través de una macro duplico una hoja excel con el nombre que selecciono previamente, pero me arrastra las fórmulas a la nueva hoja.
Quisiera que esta duplicación se hiciera solo con los valores de las celdas, que no arrastre las fórmulas
Lo he intentado de mil maneras y no lo consigo

1
2
3
4
5
6
7
8
9
10
11
12
Sub DuplicarPlantillaLV()
Dim nombre$, obj As Shape
nombre = VBA.InputBox("Ingrese nombre de la hoja nueva", , "")
If VBA.Trim(nombre) = "" Then Exit Sub
Application.ScreenUpdating = False
Sheets("PlantillaLV").Copy After:=Sheets(ActiveWorkbook.Sheets.Count)
ActiveSheet.Name = nombre
For Each obj In ActiveSheet.Shapes
    obj.Delete
Next
Application.ScreenUpdating = True
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Duplicar hoja excel sin fórmulas

Publicado por JuanC (1226 intervenciones) el 19/03/2017 12:32:09
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Option Explicit
 
'//By JuanC - Mar. 2017
 
Sub formulas_a_valor()
Dim rng As Range, cell As Range
On Error Resume Next
With Application
     .ScreenUpdating = False
     .Calculation = xlCalculationManual
     .EnableEvents = False
End With
Set rng = Hoja1.UsedRange
Err.Clear
Set rng = rng.SpecialCells(xlCellTypeFormulas)
If Err.Number <> 0 Then GoTo fin
 
For Each cell In rng
    With cell
         .Value = Application.Evaluate(.Value)
    End With
Next
 
fin:
With Application
     .ScreenUpdating = True
     .Calculation = xlCalculationAutomatic
     .EnableEvents = True
End With
 
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duplicar hoja excel sin fórmulas

Publicado por Pedro (9 intervenciones) el 19/03/2017 12:47:15
Este código en qué linea del código anterior lo incluyó?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duplicar hoja excel sin fórmulas

Publicado por Pedro (9 intervenciones) el 19/03/2017 16:06:24
No se como activar este código, ni donde incluirlo dentro de mi código anterior
Lo siento

1
2
3
4
5
6
7
8
9
10
11
12
Sub DuplicarPlantillaLV()
Dim nombre$, obj As Shape
nombre = VBA.InputBox("Ingrese nombre de la hoja nueva", , "")
If VBA.Trim(nombre) = "" Then Exit Sub
Application.ScreenUpdating = False
Sheets("PlantillaLV").Copy After:=Sheets(ActiveWorkbook.Sheets.Count)
ActiveSheet.Name = nombre
For Each obj In ActiveSheet.Shapes
obj.Delete
Next
Application.ScreenUpdating = True
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duplicar hoja excel sin fórmulas

Publicado por Pedro (9 intervenciones) el 19/03/2017 16:33:52
Lo he solucionado así. Espero que esté correcto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub DuplicarPlantillaLV()
Dim nombre$, obj As Shape
nombre = VBA.InputBox("Ingrese nombre de la hoja nueva", , "")
If VBA.Trim(nombre) = "" Then Exit Sub
Application.ScreenUpdating = False
Sheets("PlantillaLV").Copy After:=Sheets(ActiveWorkbook.Sheets.Count)
ActiveSheet.Name = nombre
For Each rngcell In Range("A1:L35")
'añadimos el control que detecta si la celda tiene Fórmula
If rngcell.HasFormula And rngcell.Value <> 0 Then
'cuando la tenga asignamos a la celda el valor que tenga....
rngcell.Value = rngcell.Value
End If
Next rngcell
For Each obj In ActiveSheet.Shapes
    obj.Delete
Next
Application.ScreenUpdating = True
End Sub

Millón gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JoaoM

Duplicar hoja excel sin fórmulas

Publicado por JoaoM (210 intervenciones) el 19/03/2017 19:51:38
Hola Pedro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar