Duda de hojas con macros

Hola, tengo una macro que jala datos del libro1, esos datos los pega en el libro2 y finalmente vuelve a jalar otros del libro3 y también los pega en el dos; el detalle es que esos datos los busca por un numero clave digamos, cuando pega los datos nombra a la hoja activa(del libro2) con dicha clave, mi problema es cuando necesito hacer una segunda consulta o búsqueda y ya no me crea la segunda hoja como la necesito; esto funciona en un user form, la búsqueda se activa por un commandbutton y cuando se realiza la segunda consulta se hace por medio de un checkbox, te paso el código del commandbutton que es donde guarde dicho evento.
Private Sub CommandButton2_Click()
 OptionButton1.Value = 1
    If TextBox1 <> "" Then ' Validamos que el Textbox1 No este vacio !!
        If CheckBox1.Value = 0 Then   ' Validamos si quiere Agregar Datos al Libro macroresultado
             Range("X2").Select
             Selection.Copy
            Workbooks.Add
        Else
            Workbooks("macroresultado.xls").Worksheets(ActiveSheet.Index).Activate
            ActiveWorkbook.Sheets.Add              'Agrego una Hoja a macroresultado Para el Valor a Buscar
        End If
        ActiveSheet.Name = TextBox1.Value          'Damos el Valor a la Hoja con el Valor a Buscar
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "Presupuesto"
    Range("B1").Select
    ActiveCell.FormulaR1C1 = "Tot-P"
    Range("C1").Select
    ActiveCell.FormulaR1C1 = "Linea"
    Range("C2").Select
    ActiveCell.FormulaR1C1 = " " & TextBox1.Value
    Range("D1").Select
    ActiveCell.FormulaR1C1 = "Gastos-1"
    Range("E1").Select
    ActiveCell.FormulaR1C1 = "Sum.G 1"
    Range("F1").Select
    ActiveCell.FormulaR1C1 = "Gastos-2"
    Range("G1").Select
    ActiveCell.FormulaR1C1 = "Sum.G 2"
    Range("H1").Select
    ActiveCell.FormulaR1C1 = "Tot.Gastos"
    Range("I1").Select
    ActiveCell.FormulaR1C1 = "Total"
    ActiveCell.Offset(1, 0).Select
    ActiveCell.Offset(1, 0).Select
    Range("A2").Select
    ActiveCell.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks:=False, Transpose:=False
    Application.CutCopyMode = False
'Windows("macroresultado.xls").Activate
    Cells(3, 2).Select
    ActiveCell.Offset(0, 0).Select
    ActiveCell.Offset(-2, 2).Select
    ActiveWorkbook.SaveAs Filename:="C:\macroresultado.xls", FileFormat:= _
                xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
    Windows("Acumulado2010.xls").Activate
    '1.-busca los registros en base al numero capturado
        valorbuscado = Val(TextBox1.Value)
        For Each celda In Sheets(1).Range("I2", Range("I2").End(xlDown))
            valorcelda = celda.Value
            celdavalor = celda.Address
        If valorbuscado = valorcelda Then
            Range(celdavalor).Offset(0, 8).Copy 'remarca que la columna activa sera la A, pues ahi se encuentran
            Workbooks("macroresultado.xls").Activate
            ActiveCell.Offset(1, 0).Select
            ActiveCell.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks:=False, Transpose:=False
            Workbooks("Acumulado2010.xls").Activate
        End If                                'los numeros de linea, por tal despues de que tiene ese dato copia
        Next celda                            'los que cumplen con dicha condicion
    '2.-crea el nuevo libro donde seran pegados los valores encontrados
    '3.-pega el resultado en el nuevo libro B
    '4.-abre el libro 2, o en su caso el llamado C que es la actualizacion
   ' Windows("macroresultado.xls").Select
        'Sheets("Hoja1").Select
        Workbooks("macroresultado.xls").Activate
        Range("D2").Activate
    While ActiveCell.Value <> "" ' busca la primer celda vacia
        ActiveCell.Offset(1, 0).Range("D2").Select
    Wend
'33.-hace la sumatoria de los datos anteriores y pega el resultado en la celda E4
   Range("E4").Select
    ActiveCell.Formula = "=Sum(D:D)"
    ActiveCell.Offset(0, 1).Select
    Workbooks.Open ("C:\libro3.xlsx")
    Windows("libro3.xlsx").Activate
   Sheets("hoja1").Select
   Workbooks("libro3.xlsx").Activate
'35.-selecciona la celda X2 del libro1 y copia ese dato
   Range("X2").Select
    Selection.Copy
'36.-activa el libro2
    ' Windows("macroresultado.xls").Activate
     Sheets("hoja1").Select
     Workbooks("macroresultado.xls").Activate
      '37.-pega el dato anterior en la celda A3
   ...

1 Respuesta

Respuesta
1
He aquí el problema...
If CheckBox1.Value = 0 Then   ' Validamos si quiere Agregar Datos al Libro macroresultado
             Range("X2").Select
             Selection. Copy
            Workbooks. Add
        Else
            Range("X2").Select
            Selection. Copy
            Workbooks("macroresultado.xls").Worksheets(ActiveSheet.Index).Activate
            ActiveWorkbook. Sheets. Add 'Agrego una Hoja a macroresultado Para el Valor a Buscar
        End If
Y como te dije... ojo con el código y las instrucciones de abrir libros... por que si ya están abiertos te dará un error...
Saludos y no dudes en preguntar si necesitas ayuda..

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas