Duda vba!

Hola, espero me puedas ayudar, tengo una macro que utiliza un formulario, este activa de forma automática lo siguiente:
1.- Del libro A: hace sumatoria de una columna en especifico.
2.-El resultado anterior se copia y pega en un libro que se crea llamado libro B.
3.- El libro C: hace lo mismo que el A, y su resultado también se pega en el B.
ahora el problema que tengo es que cuando hago que calcule, digamos el resultado del libro A se tiene que pegar en la celda A1 del libro B, entonces cuando calcula el del libro C, copia el resultado, que se debe insertar en la celda A2, pero lo que hace es copiar el resultado de la celda A1, despues de eso debe hacer una resta de ambas celdas, pero no me hace tal, para eso estoy usando la funcion: activecell.formula= "=suma(A1-A2)", pero me regresa : ######## como resultado.
El otro asunto es que necesito que por un radio button me active un text box y un botton que se activara una ves que el texbox tenga datos, si me puedes ayudar dime para que te envíe mi código.
Gracias.

1 respuesta

Respuesta
1
Vale, si te cabe envíamelo aquí
Hola, espero me puedas ayudar, tengo una macro que utiliza un formulario, este activa de forma automática lo siguiente:
1.- Del libro A: hace sumatoria de una columna en especifico.
2.-El resultado anterior se copia y pega en un libro que se crea llamado libro B.
3.- El libro C: hace lo mismo que el A, y su resultado también se pega en el B.
ahora el problema que tengo es que cuando hago que calcule, digamos el resultado del libro A se tiene que pegar en la celda A1 del libro B, entonces cuando calcula el del libro C, copia el resultado, que se debe insertar en la celda A2, pero lo que hace es copiar el resultado de la celda A1, despues de eso debe hacer una resta de ambas celdas, pero no me hace tal, para eso estoy usando la funcion: activecell.formula= "=suma(A1-A2)", pero me regresa : ######## como resultado.
El otro asunto es que necesito que por un radio button me active un text box y un botton que se activara una ves que el texbox tenga datos, si me puedes ayudar dime para que te envíe mi código.
Gracias.
Sumatoria del libro 1
  Private Sub CommandButton1_Click()
    While ActiveCell.Value <> ""
        ActiveCell.Offset(1, 0).Range("A1").Select
    Wend
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Formula = "= Sum(A:A)"
    Selection.Copy
'abre y hace sumatoria del libro 2
    Workbooks.Open ("C: macro sumatoria2.xls")
    While ActiveCell.Value <> ""
        ActiveCell.Offset(1, 0).Range("A1").Select
    Wend
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Formula = "= Sum(A:A)"
    Selection.Copy
'Crea el Libro B
    Workbooks.Add
        Range("A2").Select
        ActiveCell.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
        :=False, Transpose:=False
    Range("B3").Select
        ActiveCell.Formula = "=Suma(A1-A2)"
    Range("A1").Select
        ActiveCell.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
        :=False, Transpose:=False
    ActiveWorkbook.SaveAs Filename:="C:macroresultado.xls", FileFormat:= _
        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
    Windows("macroresultado.xls").Activate
    Sheets("hoja1").Select
    Workbooks("macroresultado.xls").Activate
End Sub
Lo del radio button y el botón que toma los datos del text box aun no los tengo y no tengo la menor idea de como se haga
En vez de suma pon sum, porque el excel coge el inglés, todo lo demás igual
Me sigue regresando el mismo valor, según esto me copia el Valor de A1 en la celda A2 del libro que se crea, osea no copia ni pega la sumatoria del libro A.
Yo lo he hecho de otra manera
 While ActiveCell.Value <> ""
        ActiveCell.Offset(1, 0).Range("A1").Select
    Wend
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Formula = "= Sum(A:A)"
    Selection.Copy
'abre y hace sumatoria del libro 2
    Workbooks.Open ("C:\sumatoria2.xls")
    While ActiveCell.Value <> ""
        ActiveCell.Offset(1, 0).Range("A1").Select
    Wend
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Formula = "= Sum(A:A)"
    Selection.Copy
'Crea el Libro B
    Workbooks.Add
        ActiveCell.Offset(1, 0).Select
        'Range("A2").Select
        ActiveCell.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
        :=False, Transpose:=False
        ActiveCell.Offset(1, 1).Select
        'Range("B3").Select --> Esto me daba error he puesto lo de la fila anterior
        ActiveCell.Formula = "=SUM(A1-A2)"
        ActiveCell.Offset(-2, -1).Select
        'Range("A1").Select --> Esto me daba error he puesto lo de la fila anterior
        ActiveCell.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
        :=False, Transpose:=False
        Range("B3").Calculate
        ActiveWorkbook.SaveAs Filename:="C:macroresultado.xls", FileFormat:= _
        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
    Windows("macroresultado.xls").Activate
    Sheets("hoja1").Select
    Workbooks("macroresultado.xls").Activate
Hola, funciona muchísimo mejor, pero rl valor que pega en A1 en el libro que se crea, corresponde al valor del libro B más no al del libro A, el problema aquí es que copia dos veces el valor, osea digamos que el libro A me da un valor de 10 y el B de 14, la macro pega en A1 14 y en A2 14.
¡Ya lo tengo!
'Creo que estaba mal porque el segundo copiar machaca el valor del primer copiar
Private Sub CommandButton5_Click()
    While ActiveCell.Value <> ""
        ActiveCell.Offset(1, 0).Range("A1").Select
    Wend
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Formula = "= Sum(A:A)"
    Selection.Copy
'Crea el Libro B
    Workbooks.Add
        ActiveCell.Offset(1, 0).Select
        'Range("A2").Select
'Pego el valor
        ActiveCell.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
        :=False, Transpose:=False
        ActiveCell.Offset(1, 1).Select
        'Range("B3").Select
'Guardo el libro
        ActiveWorkbook.SaveAs Filename:="C:macroresultado.xls", FileFormat:= _
        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
 'Abro el sumatoria
     Workbooks.Open ("C:\sumatoria2.xls")
    While ActiveCell.Value <> ""
        ActiveCell.Offset(1, 0).Range("A1").Select
    Wend
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Formula = "= Sum(A:A)"
    Selection.Copy
'Copio el resultado pongo el macroresultado en primer plano
    Windows("macroresultado.xls").Activate
    Sheets("hoja1").Select
    Workbooks("macroresultado.xls").Activate
    ActiveCell.Offset(-2, -1).Select
'Me pega el resultado de sumatoria
    ActiveCell.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
    :=False, Transpose:=False
    ActiveCell.Offset(2, 1).Select
    ActiveCell.Formula = "=SUM(A1-A2)"
    Range("B3").Calculate
'Vuelvo a guardar el macroresultado   
ActiveWorkbook.Save
End Sub
Gracias me sirvió muchísimo, ahora otra pregunta, ¿sabes cómo puedo validar datos por un text box? ¿Osea qué primero solo me acepte números y que después me enliste digamos los que tengan ese numero?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas