Sendkeys se ejecuta a destiempo

Iniciado por pichmanu, 1 Mayo 2017, 23:09 PM

0 Miembros y 1 Visitante están viendo este tema.

pichmanu

Hola a todos.

Aclaro que no soy programador. Lo hice viendo ejemplos hasta conseguir lo que necesitaba.

Hice un libro en excel 2003 con unas macros que luego modifiqué, funcionaban en su momento muy bien, pero ahora con excel 2007 no funcionan como debe ser.
Uno de los problemas es que Sendkeys se ejecuta al final de la macro y no a mitad del código (aproximadamente) que es cuando lo necesito. He estado tratando de solucionarlo pero no he podido.
Esta es la macro:

Código (vb) [Seleccionar]
Public Sub CommandButton1_Click()
TextBox1.Value = SpinButton1.Value
Unload UserFormInsertar
Application.EnableCancelKey = xlDisabled
If SpinButton1.Value = 0 Then GoTo terminar
   For a = 1 To 1
       For cuenta = 1 To SpinButton1
           ActiveSheet.Unprotect password:="abc"
           Application.Goto reference:="ult_fecha"
           Selection.EntireRow.Insert
           Selection.FillDown
           Range("A1").Select
           Application.Goto reference:="totales"
           Selection.Insert Shift:=xlDown
           Selection.FillDown
           
           If cuenta > 1 Then GoTo continuar
               If ActiveCell.Cells.Font.Size = 11 Then ActiveCell.Cells.Font.Size = 10
               SendKeys "{right}", True
               SendKeys "{del}", True
               SendKeys "{right 2}", True
               SendKeys "+{right 6}", True
               SendKeys "{del}", True
               SendKeys "{right 12}", True
               SendKeys "{del}", True
               SendKeys "+{right}", True
               SendKeys "{del}", True
continuar:
       Next
     
       Application.Goto reference:="tot_ct"
       ActiveCell.FormulaR1C1 = "=SUM(R9C:R[-1]C)"
       Application.Goto reference:="tot_iv"
       ActiveCell.FormulaR1C1 = "=SUM(R9C:R[-1]C)"
       Application.Goto reference:="tot_cr"
       ActiveCell.FormulaR1C1 = "=SUM(R9C:R[-1]C)"
       Application.Goto reference:="tot_ir"
       ActiveCell.FormulaR1C1 = "=SUM(R9C:R[-1]C)"
       Application.Goto reference:="tot_mr"
       ActiveCell.FormulaR1C1 = "=SUM(R9C:R[-1]C)"
       Application.Goto reference:="tot_sm"
       ActiveCell.FormulaR1C1 = "=SUM(R9C:R[-1]C)"
       Application.Goto reference:="tot_sxv"
       ActiveCell.FormulaR1C1 = "=SUM(R9C:R[-1]C)"
       Application.Goto reference:="tot_xrci"
       ActiveCell.FormulaR1C1 = "=SUM(R9C:R[-1]C)"
       Application.Goto reference:="parar"
       ActiveSheet.Protect password:="abc"
   Next
terminar:
End Sub


La cosa es que sendkeys se ejecuta luego de volver a activar la clave, en la línea 48, por lo que la celda activa ya no es la misma que necesitaba para ejecutar sendkeys.

Tengo otro problema con una barra de comandos personalizada que ejecutaba las maros que creé, que me parece haber leído ya no es compatible con esta versión de excel, pero espero a ver si alguien me ayuda a resolver este problema con sendkeys y luego este.

Gracias de antemano.


· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro
-Engel Lex