Excel - No entiendo el porque del error

 
Vista:

No entiendo el porque del error

Publicado por Oscar Rodriguez (9 intervenciones) el 27/06/2012 08:57:25
Application.ScreenUpdating = False
Worksheets("Clientes").Activate
Range("a2").Activate----------------------> Aca me arroja el error y no entiendo porque
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Activate
Loop
ActiveCell = txtrut.Text
ActiveCell.Offset(0, 1) = txtnombre.Text
ActiveCell.Offset(0, 2) = txtapellido.Text
ActiveCell.Offset(0, 3) = txtdireccion.Text
ActiveCell.Offset(0, 4) = cbcomuna.Text
ActiveCell.Offset(0, 5) = txtreferencia.Text
ActiveCell.Offset(0, 6) = CDate(txtfnac.Text)
ActiveCell.Offset(0, 7) = txttelcel.Text
ActiveCell.Offset(0, 8) = txtcontraseña.Text
ActiveCell.Offset(0, 9) = txtemail.Text
Range("k2").Copy
ActiveCell.Offset(0, 10).PasteSpecial Paste:=xlPasteFormulas, operation:=xlNone, skipblanks:=False, Transpose:=False
Application.CutCopyMode = False


NOTA: Anteriormente el diseño del formulario lo hice en VB en el cual no tenia dicho error luego el diseño del formulario lo hice en el mismo excel y ahi es donde comenzo el error si yo lo pongo como comentario me graba si pero en la misma fila del anterior osea quiero que me guarde hacia abajo en la siguiente fila. Desde ya muchas gracias por la atencion prestada
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

No entiendo el porque del error

Publicado por Raziel (245 intervenciones) el 27/06/2012 19:32:01
No soy un experto programando, el error puede que sea por que usas "Activate" en lugar de "Select", como sea, aproveche para darle una pequeña revisada a tu codigo y dejarlo un poquito mas limpio:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Sub cmdAgregar_Click()
Application.ScreenUpdating = False
Dim ctrl As Control
Worksheets("Clientes").Activate
Range("A2").Select
Select Case True
    Case IsEmpty(ActiveCell.Offset(1, 0))
        ActiveCell.Offset(1, 0).Select
    Case Not IsEmpty(ActiveCell.Offset(1, 0))
        ActiveCell.End(xlDown).Offset(1, 0).Select
End Select
ActiveCell.Resize(, 10) = Array(txtrut.Text,txtnombre.Text, txtapellido.Text, txtdireccion.Text, cbcomuna.Text, txtreferencia.Text, CDate(txtfnac.Text), txttelcel.Text, txtcontraseña.Text, txtemail.Text)
For Each ctrl In Me.Controls
    If TypeOf ctrl Is MSForms.TextBox Then
        ctrl.Text = ""
    End If
Next ctrl
Range("K2").Copy
ActiveCell.Offset(0, 10).PasteSpecial Paste:=xlPasteFormulas, operation:=xlNone, skipblanks:=False, Transpose:=False
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub


Ojo, la parte donde copias K2 para abajo no lo probe, pero en general creo que con los cambios que hice tu codigo deberia correr mucho mas rapido.

No olvides hacer un back up antes. Espero te sirva, saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Gracias x tu ayuda

Publicado por Oscar Rodriguez (9 intervenciones) el 28/06/2012 20:12:23
Mira Copie y pegue tu codigo ahora me dice que NO SE ENCONTRO EL METODO O DATO MIEMBRO y me marca CONTROL bueno lo que hice todo lo que esta en dentro de IF ponerlo como comentario ya que ese codigo es para limpiar las cajas de texto si no me equivoco bueno ahora resulta que me sigue marcando el mismo error RANGE("A2").Select
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Arreglado

Publicado por Oscar Rodriguez (9 intervenciones) el 28/06/2012 20:15:09
Hola Raziel mira te cuento que estuve moviendo todo y justamente la parte que no me dijiste que no revisaste osea RANGE("K2").COPY al parecer no funciona al crear el formulario desde excel lo que es ponerlo como comentario y me funciono bien ahora me graba hacia abajo de todas maneras muchas gracias raziel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar