UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se pueden hacer consultas de Excel o VBA por mensaje privado.
Utiliza el botón buscar del foro y te ahorras tiempo para obtener "ayuda".

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

1 macro control de entrada el 20/11/13, 11:27 am

neskat


Hola panas , les cuento , estoy haciendo una macro que toma dos libros , uno se llama control (lleva las horas de ingreso de los empleados) y el otro es libro tiene como nombre el numero del dia (1.xls, 2.xls, etc)

Tengo una macro hecha , pero no me funciona, la idea es la siguiente , en el libro control , al estar sobre la celda del dia (fila dos) , la macro debe obtener el valor de la celda , cargar y activar el libro correspondiente (ahi no funka ) ; estando en el libro activo numero 13 por ejemplo , hay tres filas, la macro inserta una formula en la columna 4 ve si la columna tres dice inventario , si es asi toma l hora que corresponde , si no toma otra decision , etc , son dos consultas SI anidadas. Debe hacer esta operacion hasta que encuentra un texto que dice aqui .

Bueno y para finalizar , la macro activa el libro control e inserta la funcion buscav (o consultav) y busca el nombre del empleado con el nombre del empleado en la matriz del libro que tiene nombre del dia y carga las horas hasta el texto aqui.
Si me puede ayudar se los agradesco un monton


Código:
Sub Macro3()

librotimbraje = ActiveWorkbook.Name
nombrehoja = ActiveSheet.Name
fila = ActiveCell.Row
columna = ActiveCell.Column
fila = fila + 1
dia = ActiveCell.Value


    Windows(dia).Activate
    Sheets("Hoja1").Select
    
    Dim filafinal As Long

    Set V = Cells.Find("aqui")
    If Not V Is Nothing Then
      filafinal = V.Row

      
    Else
       MsgBox "no se encontro texto": Exit Sub
    End If
    
scroll = 3 - filafinal

    ActiveCell.FormulaR1C1 = _
        "=IF(RC[-1]=""inventario"",RC[-2],IF(RC[-2]<R1C2,R1C2,RC[-2]))"
        
    Range("D3").Select
    Selection.AutoFill Destination:=Range(Cells(3, 4), Cells(filafinal, 4)), Type:=xlFillDefault
    
    Range(Cells(3, 4), Cells(filafinal, 4)).Select
    ActiveWindow.SmallScroll Down:=-scroll
    Selection.NumberFormat = "h:mm;@"
    
    'Range("E14").Select
    'ActiveWindow.SmallScroll Down:=21
    
    Windows(librotimbraje).Activate
    Sheets(nombrehoja).Select
    
    'ActiveWindow.SmallScroll Down:=-6
    
    Range(Cells(3, columna)).Select
    
    'ActiveCell.FormulaR1C1 = ""
    'Windows("timbraje 13-11-13.xls").Activate
    'ActiveWindow.SmallScroll Down:=-12
    'Windows("Timbraje Modulo.xls").Activate
    
    ActiveCell.FormulaR1C1 = _

        "=IF(ISERROR(VLOOKUP(RC[-13],'[dia &
.xls]Hoja1'!R3C1:R37C4,4,FALSE)),"""",VLOOKUP(RC[-13],'[dia &
.xls]Hoja1'!R3C1:R37C4,4,FALSE))"
        
    Range(Cells(fila, columna)).Select
    
    Dim filafinal2 As Long

    Set W = Cells.Find("aqui")
    If Not W Is Nothing Then
      filafinal2 = W.Row
    Else
       MsgBox "Texto aqui No encontrado": Exit Sub
    End If
    
    scroll2 = fila - filafinal2
    
    Selection.AutoFill Destination:=Range(Cells(fila, columna), Cells(filafinal2, columna)), Type:=xlFillDefault
    Range(Cells(fila, columna), Cells(filafinal2, columna)).Select
    ActiveWindow.SmallScroll Down:=scroll2
    Selection.NumberFormat = "h:mm;@"
    ActiveWindow.SmallScroll Down:=scroll2
End Sub
Archivos
macrolistado.zip
No tienes los permisos para descargar los archivos.
(28 KB)

2 Re: macro control de entrada el 20/11/13, 01:58 pm

tyno


Hola neskat.
Cuando dices que al estar sobre la celda del día (fila 2), la macro debe obtener el valor de la celda , cargar y activar el libro correspondiente ¿Este libro correspondiente lo tienes abierto? Una cosa es activar un libro y otra cosa es abrir un libro. Te pregunto sobre este punto porque dices que esto es lo que no funciona.
Evidentemente tu macro es para activar un libro y para ello es necesario que este abierto previamente. Si puedes aclarar un poco mas. Saludos

3 Si el libro esta abierto el 20/11/13, 02:00 pm

neskat


si el libro esta abierto, solo hay que activarlo
Saludos

4 Re: macro control de entrada el 20/11/13, 09:24 pm

tyno


Hola neskat.

El problema de porque no abre el libro es que la referencia "dia" que deber ser el nombre del libro que hay que activar esta incompleta, tiene que ser así:


dia = ActiveCell.Value &".xls"

En este caso la extensión del archivo es .xls porque es un libro Excel 2003 si se trata de un libro Excel 2007-10-13 tiene que ser  .xlsx o si es habilitado para macro : .xlsm


Saludos

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.