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
...
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 de pitcher_
1