Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: pichmanu en 1 Mayo 2017, 23:09 pm



Título: Sendkeys se ejecuta a destiempo
Publicado por: pichmanu en 1 Mayo 2017, 23:09 pm
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
  1. Public Sub CommandButton1_Click()
  2. TextBox1.Value = SpinButton1.Value
  3. Unload UserFormInsertar
  4. Application.EnableCancelKey = xlDisabled
  5. If SpinButton1.Value = 0 Then GoTo terminar
  6.    For a = 1 To 1
  7.        For cuenta = 1 To SpinButton1
  8.            ActiveSheet.Unprotect password:="abc"
  9.            Application.Goto reference:="ult_fecha"
  10.            Selection.EntireRow.Insert
  11.            Selection.FillDown
  12.            Range("A1").Select
  13.            Application.Goto reference:="totales"
  14.            Selection.Insert Shift:=xlDown
  15.            Selection.FillDown
  16.  
  17.            If cuenta > 1 Then GoTo continuar
  18.                If ActiveCell.Cells.Font.Size = 11 Then ActiveCell.Cells.Font.Size = 10
  19.                SendKeys "{right}", True
  20.                SendKeys "{del}", True
  21.                SendKeys "{right 2}", True
  22.                SendKeys "+{right 6}", True
  23.                SendKeys "{del}", True
  24.                SendKeys "{right 12}", True
  25.                SendKeys "{del}", True
  26.                SendKeys "+{right}", True
  27.                SendKeys "{del}", True
  28. continuar:
  29.        Next
  30.  
  31.        Application.Goto reference:="tot_ct"
  32.        ActiveCell.FormulaR1C1 = "=SUM(R9C:R[-1]C)"
  33.        Application.Goto reference:="tot_iv"
  34.        ActiveCell.FormulaR1C1 = "=SUM(R9C:R[-1]C)"
  35.        Application.Goto reference:="tot_cr"
  36.        ActiveCell.FormulaR1C1 = "=SUM(R9C:R[-1]C)"
  37.        Application.Goto reference:="tot_ir"
  38.        ActiveCell.FormulaR1C1 = "=SUM(R9C:R[-1]C)"
  39.        Application.Goto reference:="tot_mr"
  40.        ActiveCell.FormulaR1C1 = "=SUM(R9C:R[-1]C)"
  41.        Application.Goto reference:="tot_sm"
  42.        ActiveCell.FormulaR1C1 = "=SUM(R9C:R[-1]C)"
  43.        Application.Goto reference:="tot_sxv"
  44.        ActiveCell.FormulaR1C1 = "=SUM(R9C:R[-1]C)"
  45.        Application.Goto reference:="tot_xrci"
  46.        ActiveCell.FormulaR1C1 = "=SUM(R9C:R[-1]C)"
  47.        Application.Goto reference:="parar"
  48.        ActiveSheet.Protect password:="abc"
  49.    Next
  50. terminar:
  51. End Sub
  52.  

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 (http://foro.elhacker.net/reglas.htm)
-Engel Lex