¿Macro o fórmula?
Buenos días compañeros!
Tengo una serie de preguntas que haceros acerca de excel-vba, así que empecemos.
Mi hoja tiene la siguiente estructura:
CONSUMIDO HOY:_______ (B18)
TOTAL CONSUMIDO:______ (E19)
CONSUMIDO ANTERIOR:______ (B20)
RECIBIDO HOY:_____________ (B23)
TOTAL RECIBIDO:__________ (E24)
RECIBIDO ANTERIOR:_________ (B25)
STOCK:______(C29) "es la resta de e24 y e19.*en este orden".
y dos botones NUEVO DÍA y BORRAR DÍA
Cuando pulso nuevo día, me crea una hoja nueva con el mismo contenido. Y si le doy a borrar día me borra el día creado, nunca el día uno. Hasta ahí todo bien, pero cuando crea un día nuevo no me respeta la fórmulas que he creado solo me copia el diseño por así decirlo y no las fórmulas. Ademas quiero que cuando cree un día nuevo los totales tanto de consumido como de recibido deben pasar al nuevo día, pero en donde pone consumo anterior y recibido anterior.
y asi sienpre que cree un nuevo dia.
a continuacion os pngo el codigo:
Sub copy_page()
If Sheets.Count = 1000 Then
temp = MsgBox("no dura tanto")
Exit Sub
End If
Sheets(Sheets.Count).Select
sheet_name = ActiveSheet.Name
new_sheet_name = sheet_name + 1
Sheets(sheet_name).Copy After:=Sheets(sheet_name)
copied_sheet_name = sheet_name & " " & "(2)"
Sheets(copied_sheet_name).Select
Sheets(copied_sheet_name).Name = new_sheet_name
Range("B18:B20:B23:B25:E19:E24").ClearContents
Range("B12").Value = new_sheet_name
Range("D12").Value = Date
End Sub
Sub delete_page()
If ActiveSheet.Name = "1" Then
temp = MsgBox("Can't Delete Day 1")
Else
If ActiveSheet.Name <> Sheets(Sheets.Count).Name Then
temp = MsgBox("....")
If temp = vbOK Then
ActiveWindow.SelectedSheets.Delete
End If
Else
ActiveWindow.SelectedSheets.Delete
End If
End If
End Sub
No se como se le dice que copie y mantenga las fórmulas. Y que me cruce los datos como explique más arriba.
Muchas gracias a todos. Y toda ayuda será bienvenida.
Tengo una serie de preguntas que haceros acerca de excel-vba, así que empecemos.
Mi hoja tiene la siguiente estructura:
CONSUMIDO HOY:_______ (B18)
TOTAL CONSUMIDO:______ (E19)
CONSUMIDO ANTERIOR:______ (B20)
RECIBIDO HOY:_____________ (B23)
TOTAL RECIBIDO:__________ (E24)
RECIBIDO ANTERIOR:_________ (B25)
STOCK:______(C29) "es la resta de e24 y e19.*en este orden".
y dos botones NUEVO DÍA y BORRAR DÍA
Cuando pulso nuevo día, me crea una hoja nueva con el mismo contenido. Y si le doy a borrar día me borra el día creado, nunca el día uno. Hasta ahí todo bien, pero cuando crea un día nuevo no me respeta la fórmulas que he creado solo me copia el diseño por así decirlo y no las fórmulas. Ademas quiero que cuando cree un día nuevo los totales tanto de consumido como de recibido deben pasar al nuevo día, pero en donde pone consumo anterior y recibido anterior.
y asi sienpre que cree un nuevo dia.
a continuacion os pngo el codigo:
Sub copy_page()
If Sheets.Count = 1000 Then
temp = MsgBox("no dura tanto")
Exit Sub
End If
Sheets(Sheets.Count).Select
sheet_name = ActiveSheet.Name
new_sheet_name = sheet_name + 1
Sheets(sheet_name).Copy After:=Sheets(sheet_name)
copied_sheet_name = sheet_name & " " & "(2)"
Sheets(copied_sheet_name).Select
Sheets(copied_sheet_name).Name = new_sheet_name
Range("B18:B20:B23:B25:E19:E24").ClearContents
Range("B12").Value = new_sheet_name
Range("D12").Value = Date
End Sub
Sub delete_page()
If ActiveSheet.Name = "1" Then
temp = MsgBox("Can't Delete Day 1")
Else
If ActiveSheet.Name <> Sheets(Sheets.Count).Name Then
temp = MsgBox("....")
If temp = vbOK Then
ActiveWindow.SelectedSheets.Delete
End If
Else
ActiveWindow.SelectedSheets.Delete
End If
End If
End Sub
No se como se le dice que copie y mantenga las fórmulas. Y que me cruce los datos como explique más arriba.
Muchas gracias a todos. Y toda ayuda será bienvenida.
1 respuesta
Respuesta de Fran Riveiro
1