Excel - Macro Excel - Recoger una celda de una hoja que está en el mismo libro

 
Vista:
sin imagen de perfil

Macro Excel - Recoger una celda de una hoja que está en el mismo libro

Publicado por Jorge (2 intervenciones) el 06/01/2015 22:28:15
Hola,

Estoy intentando hacer una macro en Excel que lo que haga es: Recoger una celda de una hoja que está en el mismo libro, de tal forma que se rellena en la hoja principal (actualiza los datos de la hoja con formulas) y lo voy guardando con el código que he recogido.

El problema lo tengo cuando pego valores para que en las sucesivas hojas no se vean las fórmulas.

Os dejo el código por si me podéis echar una mano.

Si os va mejor os lo dejo en txt

---------------------------
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
Sub CreacionHojasValores()
 
Dim i, a As Long
Dim cliente As Long
Dim TotalD As Integer
 
Dim ArchivoEntrada As String
Dim wb As Workbook
Application.DisplayAlerts = False
i = 1
'Contamos el numero de clientes
'Sheets("Total clientes").Select
TotalD = Sheets("Total Clientes").Range("A" & Rows.Count).End(xlUp).Row
'TotalD = Application.WorksheetFunction.CountA("A1:A9999")
'Sheets("Hoja Cliente").Select
 
'Ruta del archivo cerrado - fuente
 '   ArchivoEntrada = ActiveWorkbook.Path & "\Datos.xlsx"
 
'Abrir el libro fuente a través del objeto wb.  Sólo lectura
    ' Set wb = Workbooks.Open(ActiveWorkbook.Path & "\Datos.xlsx")
'cambiamos el cliente          
   Range("E3").Value = Worksheets("Total clientes").Cells(i, 1)
 
   'pegamos como valores
Range("A1:Z999").Copy
Range("A1").PasteSpecial xlPasteValues
Application.CutCopyMode = False
 
 
'eliminamos la hoja de datos
'Application.DisplayAlerts = False
Sheets("Total clientes").Select
ActiveWindow.SelectedSheets.Delete
'Application.DisplayAlerts = True
 
 
 
 
'grabamos
cadena = "\\servidor\Hoja de pedido\" & Range("E3") & ".xls"
ActiveWorkbook.SaveAs cadena, FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
'ActiveWorkbook.Close
'cerramos la hoja
'ActiveWorkbook.Close
'Workbooks.Open (ActiveWorkbook.Path & "\Macro.xlsm")
'Workbooks("Macro.xlsm").Activate
 
'a = Cells(3, 5) & ".xls"
'Workbooks(cadena).Close
 
For i = 2 To TotalD
 
     Set wb = Workbooks.Open(ActiveWorkbook.Path & "\Macro.xlsm")
Workbooks("Macro.xlsm").Activate
Workbooks(cadena).Close
 
'     ActiveWorkbook.Close
'Cambias el valor de la celda de cliente
 
'Copiar del libro cerrado el rango A1:A5 de la hoja 1 y
'pegarlo en el libro abierto en la hoja 1, en el rango "A1"
 
 '   wb.Worksheets("Total clientes").Cells(i, 1).Copy ThisWorkbook.Worksheets("Hoja Cliente").Range("E3")
 
 
Range("E3").Value = Worksheets("Total clientes").Cells(i, 1)
 
'pegamos como valores
Range("A1:Z999").Copy
Range("A1").PasteSpecial xlPasteValues
Application.CutCopyMode = False
 
'Quitamos la hoja de datos
'Application.DisplayAlerts = False
Sheets("Total clientes").Select
ActiveWindow.SelectedSheets.Delete
'Application.DisplayAlerts = True
 
 
'grabamos
cadena = "\\servidor\Hoja de pedido\" & Range("E3") & ".xls"
ActiveWorkbook.SaveAs cadena, FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
 
'cerramos la hoja
'ActiveWorkbook.Close
 
 
Next i
 
 
 
Application.DisplayAlerts = 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

Macro Excel - Recoger una celda de una hoja que está en el mismo libro

Publicado por Jorge (2 intervenciones) el 07/01/2015 00:12:07
Igual os lo he puesto muy dificil con tanto comentario y tanta historia

Lo estoy haciendo mas sencillo. Estoy haciendo copias de la hoja tal cual la quiero y en la hoja destino pegar los valores pero estoy haciendo algo mal.

Seguro que estoy vulnerando todas las reglas de la programación habidas y por haber pero me dan errores.

Si con esta forma me podéis echar una mano, os estaría sumamente agradecido.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub CreacionHojasValores()
 
Dim i, a As Long
Dim cliente As Long
Dim TotalD As Integer
 
Dim ArchivoEntrada As String
Dim wb As Workbook
 
TotalD = Sheets("Total Clientes").Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To TotalD
Range("E3").Value = Worksheets("Total clientes").Cells(i, 1)
ruta = "servidor"
ActiveSheet.Copy
carpeta = Format(Date, "dd-mm-yyyy")
cliente = Worksheets("Total clientes").Cells(i, 1) 'Aquí me da error. 
guardado = ruta & carpeta & "\" & cliente
ActiveWorkbook.SaveCopyAs guardado
Workbooks(guardado).Activate
Range("A1:Z999").Copy
Range("A1").PasteSpecial xlPasteValues
Application.CutCopyMode = False
ActiveWorkbook.Close
Next i
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