Macro para copiar hojas... y más

Solo consultas sobre macros y código VBA Excel.

Reglas del Foro
1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!
Compartir en:
     

Macro para copiar hojas... y más

Notapor ivanmolina » 21 Jun 2006 07:18

Tengo que hacer un libro con una hoja DIARIO, para cada dí­a del mes, en la que hay que anotar cada dí­a cierta cantidad. Por defecto, sólo DIARIO 1 -el primer dí­a del mes- estará visible, y cuando tenga que trabajar con otro dí­a, a través de un formulario en el que aparecen los 31 posibles dí­as del mes, seleccionarí­a el que necesito (XX) y una macro abrirí­a la hoja (hasta ahora no visible) DIARIO XX.

El problema es doble:
— tendrí­a que tener en el libro –aunque no estén visibles- 31 hojas, muchas de las cuales no voy a utilizar;
— el formulario también serí­a enorme, para contemplar los 31 posibles dí­as del mes.

Para evitar que el libro ocupe demasiado tamaño, y para simplificar el código del mismo, necesito una macro que, al ejecutarla, haga lo siguiente:
1º. Una copia de la hoja DIARIO 1, que deberá renombrar a DIARIO 2 (en sucesivas instancias deberí­a copiarla y renombrarla como DIARIO 3, etc.), y seleccionar esta hoja.
2º. Abrir el formulario con dos únicos campos, el número del dí­a correspondiente y la cantidad a introducir.
3º. Pasar los datos del formulario a la última hoja DIARIO X, que deberá ser la que está activa.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
ivanmolina
Miembro Frecuente
Miembro Frecuente
 
Registrado: 05 Oct 2004 02:51
Ubicación: Madrid

Re: Macro para copiar hojas... y más

Notapor opermty » 15 Jul 2006 09:13

Estamos pendientes aun :)
Por ahora solo estamos con lo de las hojas y la seleccion a travez de una barra personalizada

Saludos
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
opermty
Miembro Frecuente
Miembro Frecuente
 
Registrado: 29 Abr 2006 04:11
Ubicación: MONTERREY NL MX

Re: Macro para copiar hojas... y más

Notapor GR » 15 Jul 2006 15:40

HOLA BUEN DIA A TODOS

OPERMTY SERIA POSIBLE QUE PUEDIERAS PROPORCIONAR LA CLAVE (CONTRASEÑA) PARA PODER VER EL CODIGO.

GRACIAS
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
GR
Miembro Frecuente
Miembro Frecuente
 
Registrado: 10 Mar 2006 16:30

Re: Macro para copiar hojas... y más

Notapor opermty » 16 Jul 2006 18:16

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars("Menu").Delete
End Sub

Private Sub Workbook_Open()
If Worksheets.Count = 1 Then Call aviso
If Worksheets.Count = 1 Then Sheets(1).Select: Call MenuBar: Exit Sub
Call MenuBar
Call seleccion
End Sub


Sub inicializa()
Application.ScreenUpdating = False
If Sheets.Count = 1 Then Sheets(1).Name = "Diario" & Sheets.Count: Exit Sub
Application.DisplayAlerts = False
For i = 1 To Worksheets.Count
Worksheets(i).Visible = True
Next i
For Each ws In Worksheets
If Worksheets.Count < 2 Then Sheets(1).Name = "Diario" & Sheets.Count: Exit Sub
ws.Delete
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Sub nuevas()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
If Worksheets.Count = 31 Then Exit Sub
If Worksheets.Count > 1 Then Exit Sub
For i = 2 To 31
Worksheets.Add(, Sheets(Sheets.Count)).Name = "Diario" & i
Next i
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Call seleccion
End Sub
Sub seleccion()
Dim aws
On Error Resume Next
midia = Day(Date)
aws = "Diario" & midia
For Each ws In Worksheets
ws.Visible = True
If ws.Name <> aws Then ws.Visible = False
Next ws
Sheets(aws).Select
End Sub

Sub aviso()
respuesta = MsgBox("El libro contiene : " & Worksheets.Count & " hoja(s), desea agregar hojas", vbYesNo, "Seleccione una opción")
If respuesta = vbYes Then Call nuevas
If Worksheets.Count > 1 Then Call seleccion
End Sub


A grandes rasgos este es el codigo sin la barra de menus :)

Saludos
[/u][/i][/b][/align][/tt][/table]
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
opermty
Miembro Frecuente
Miembro Frecuente
 
Registrado: 29 Abr 2006 04:11
Ubicación: MONTERREY NL MX

Re: Macro para copiar hojas... y más

Notapor opermty » 16 Jul 2006 18:44

Una pequeña modificacion de la barra :)
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
opermty
Miembro Frecuente
Miembro Frecuente
 
Registrado: 29 Abr 2006 04:11
Ubicación: MONTERREY NL MX


Compartir en:
     

  • Anuncio
Manual Excel avanzado

Volver a Macros

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 7 invitados