Necesito consejo para utilizar VBA en excel

Hola, ¿manejas algo de VBA en excel?

1 Respuesta

Respuesta
1
Mmmm... muy básico, tiene años que no lo ocupo y no se si me acuerde; pero igual si te puedo ayudar, ¿cómo qué quieres hacer?
Ok, gracias espero me puedas ayudar, tengo una macro que hace la sumatoria de la columna A en el libro A, este resultado lo tengo que copiar y pegar en la celda A1 del libro B, aclaro que yo hice un macro, que me saca la sumatoria, copia el resultado y crea el libro B, mi problema es que el macro no me esta pegando el valor que necesito y me manda como resultado #¡REF! Cuando lo reviso en el libro B, pues lo necesito para hacer otra operación con ese resultado(cosa que también ya tengo hecha, solo resta adaptar ese código). Te paso mi código:
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
'Crea el Libro B
Workbooks.Add
   Range("A1").Select
   ActiveCell.PasteSpecial
   ActiveSheet.PasteSpecial
    ActiveWorkbook.SaveAs Filename:="macroresultado.xls", FileFormat:= _
        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
       , CreateBackup:=False
    Windows("macroresultado.xls").Activate
    Sheets("hoja1").Select
    Workbooks("macroresultado.xls").Activate
end sub
OK mira me encamote un poco porque como te digo no se mucho de VBA, pero creo que esta es la solución:
 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 B1
    Workbooks. Add
    Range("A1").Select
    ActiveCell. PasteSpecial (xlPasteValues) 'Aki esta la correccion
    'ActiveSheet. PasteSpecial
    ActiveWorkbook.SaveAs Filename:="macroresultado.xls", FileFormat:= _
    xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
    , CreateBackup:=False
    Windows("macroresultado.xls").Activate
    Sheets("hoja1").Select
    Workbooks("macroresultado.xls").Activate.
Es en esencia el mismo código que tienes. Pero a la propiedad PasteSpecial le faltaba el parámetro (xlPsteValues), esto con la finalidad de que te pegue el valor de la celda y no la función como lo hacia, (Pegaba la misma fórmula con la que sumabas =A:A), por pegar esa fórmula en A1 te daba el error de referencia que comentas.
Muchísimas gracias, es exactamente lo que necesitaba; por que intente hacerlo sin el editor mediante el "pegado especial" y pegaba el valor pero como si fuera una autoforma; con esto ya estoy del otro lado muchísimas gracias.te recomendare con mis conocidos jajajaja. ¿Otra cosa conoces algún libro de macros o algún manual casi casi para dummies que me pueda servir?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas