** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Run-time error ‘1004'
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoRun-time error ‘1004'

 Responder Responder
Autor
Mensaje
kazu Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 30/Julio/2013
Localización: Venezuela
Estado: Sin conexión
Puntos: 15
Enlace directo a este mensaje Tema: Run-time error ‘1004'
    Enviado: 16/Diciembre/2017 a las 05:15
Hola tengo un Formulario en donde coloco una serie de dados, entre los cuales están ingresos y egresos.

Estoy desarrollando una macro para que tome esos datos y los agregue a la hoja correspondiente.

En este momento estoy parado pues no logro solventar un error.

Estoy trabajando con la hoja de ingresos, imagino que el procedimiento para la hoja de egresos sea similar

 

Desde el Formulario tomo los siguientes datos y los coloca en el encabezado de la hoja de INGRESOS de esta manera:

 

 

A

B

C

D

E

F

1

Fecha

Turno

Monto

Pagador

Concepto

=CONTARA(A5:A100)

2

  

 

 

 

 

 Aqui hay un botón para ejetutar 

3

 

 

 

 

 

 Ingresos_Forma1

4

 

 

 

 

 

 

5

Fecha

Turno

Monto

Pagador

Concepto

 

6

 

 

 

 

 

 

7

 

 

 

 

 

 

8

 

 

 

 

 

 

9

 

 

 

 

 

 

10

 

 

 

 

 

 

 

El rango A2:E2 lo he nombrado “Ingreso”

Luego con el valor de la celda F1 me voy a la última celda vacía de la columna A y allí pego el rango.

 

La idea es que, adicionalmente, se pueda hacer anotaciones de ingresos que no se generen desde el formulario. Tener las dos alternativas

Las celdas en de la fila 2 tienen una validación para hacer que los conceptos sean uniformes, así como el nombre del pagador.

En las celdas F tengo un Botón que ejecuta, sin problema, la macro que sigue a continuación

 

Sub Ingresos_Forma1()

    Application.ScreenUpdating = False

 

Dim z As Integer

With Sheets("INGRESOS")

z = Range("F1").Value

       

    Range("Ingreso").Copy

        .Range("A" & z).Select

   

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

        :=False, Transpose:=False

    Range("Ingreso").ClearContents

     Application.ScreenUpdating = True

        .Range("A2").Select

    ActiveWorkbook.Save

End With

End Sub

 

El error se genera cuando trato de ejecutar la macro desde el formulario

 

Con un Botón dentro del formulario tengo lo siguiente:

 

Private Sub CommandButton2_Click()

If TextBox2.Value > 0 Then

'FECHA 

Range("INGRESOS!A2").Value = Range("Actividad!k1").Value

'TURNO

    If OptionButton8.Value = True Then

            Range("INGRESOS!B2").Value = OptionButton8.Caption

        ElseIf OptionButton9.Value = True Then

            Range("INGRESOS!B2").Value = OptionButton9.Caption

        Else

       

    End If

'MONTO

    Range("INGRESOS!C2").Value = TextBox2.Value

'MODALIDAD DE PAGO

    If OptionButton10.Value = True Then

            Range("INGRESOS!D2").Value = OptionButton10.Caption

        ElseIf OptionButton11.Value = True Then

            Range("INGRESOS!D2").Value = OptionButton11.Caption

        ElseIf OptionButton12.Value = True Then

            Range("INGRESOS!D2").Value = OptionButton12.Caption

        ElseIf OptionButton13.Value = True Then

            Range("INGRESOS!D2").Value = TextBox6.Text

        Else

       

    End If

'PAGADOR

    Range("INGRESOS!E2").Value = TextBox1.Text

'CONCEPTO

    Range("INGRESOS!F2").Value = "ENTRNAMIENTO"

Ingresos_Forma1

Else

End If

    Sheets("Actividad").Select

Unload Me

End Sub

 

Cuando la mcro anterior llama a Ingresos_Forma1 me aparece el siguiente mensaje de error:

 

            Run-time error ‘1004’:

            Application-defined or object-defined error

 

Cuando hago click en Debug se va a la línea que tiene la siguiente instrucción:

                    .Range("A" & z).Select

 Sin embargo, si ejecuto Ingresos_Forma1  desde el botón que tengo en la hoja de Ingresos, no me da ningun error y se ejecuta completamente

Alguna sugerencia.

Muchas gracias



Editado por kazu - 16/Diciembre/2017 a las 05:20
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5440
Enlace directo a este mensaje Enviado: 16/Diciembre/2017 a las 19:49

Donde me da error '1004' es en ...


Range("INGRESOS!A2").Value = Range("Actividad!k1").Value


... cambia por :


Worksheets("INGRESOS").Range("A2").Value = Worksheets("Actividad").Range("k1").Value



Aprendemos viendo respuestas de otros, también intentando resolver dudas (intenta ayudar cuando puedas/sepas).

Mi sitio_web con ejemplos Excel.
Arriba
Gladiador Ver desplegable
Habitual
Habitual
Avatar

Unido: 22/Junio/2006
Localización: Venezuela
Estado: Sin conexión
Puntos: 135
Enlace directo a este mensaje Enviado: 18/Diciembre/2017 a las 23:03
Hola AnSanVal, 
Gracias por tu tiempo y tu ayuda.
Hice los cambios que me sugeriste en todas las instrucciones, sin embargo, no logro que funcione.

El error lo genera la instrucción 
   .Range("A" & z).Select

Te cuento- Tengo una hoja de Actividad, en la cual se abre un Formulario con una serie de campos para rellenar.
Si hay algún ingreso, deseo que los datos de ese ingreso se anoten en la hoja INGRESOS en la primera fila que esté vacía. 
La variable "z", toma el valor de la función =ContarA(A5:A500)+6
Como mencioné anteriormente. Tengo un botón, en la hoja ingresos, que ejecuta la macro Ingresos_Forma1. Esta macro se ejecuta sin problema cuando hago click sobre el botón.
El problema ocurre cuando intento ejecutar esta macro desde el Formulario.


Arriba
kazu Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 30/Julio/2013
Localización: Venezuela
Estado: Sin conexión
Puntos: 15
Enlace directo a este mensaje Enviado: 19/Diciembre/2017 a las 13:58
Gracias Gladiador por tu aporte, eso mismo me pasa a mi.
Ya lo intenté de varias maneras y el error se repite en la misma línea.
No me acepta los comandos cuando ejecuto la macro desde un UserForm

Que se puede hacer?
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5440
Enlace directo a este mensaje Enviado: 19/Diciembre/2017 a las 18:00

Te he leído cosas curiosas, por ejemplo intervenir con varios usuarios en la misma duda no es la primera vez, pero 'auto agradecerte' no se había dado antes. Wink



Vamos a lo que de verdad importa:


-Probé tú código con tu ejemplo y solamente me dio error donde te dije. Bien es cierto que modifiqué la fórmula de [F1] para que apuntara después de la segunda fila de títulos (fila 5). En [F1] puse:  =CONTARA(A5:A100) + 5

- [F1] cuenta los datos de la columna A entre las filas 5 y 100 inclusive.

- Cuando solamente tiene los títulos (fila 5); la fórmula devuelve 1. Si seleccionas [A1] para pegar allí los datos machacaría el título de la primera fila, pero no debería dar error al seleccionarla.

- En VBA tienes:

With Sheets("INGRESOS")

z = Range("F1").Value

Range("Ingreso").Copy

.Range("A" & z).Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

- Como dices que el error te da en la línea resaltada en rojo, y es una sentencia muy simple solo podría ser que z<1 o z>1048576 (fuera de la hoja) o que la celda a la que apunta esté bloqueada y la hoja protegida. Ejecuta el código paso a paso (F8) y lleva el cursor sobre z para comprobar que valor tiene.


Otra opción es que subas tu archivo a (por ejemplo) OneDrive y compartas el enlace al mismo, para ver que puede estar ocurriendo.



Aprendemos viendo respuestas de otros, también intentando resolver dudas (intenta ayudar cuando puedas/sepas).

Mi sitio_web con ejemplos Excel.
Arriba
kazu Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 30/Julio/2013
Localización: Venezuela
Estado: Sin conexión
Puntos: 15
Enlace directo a este mensaje Enviado: 09/Enero/2018 a las 17:17
Hola,gracias por los aportes.
Logré solucionarlo,incluyendo en la macro

Sheets("INGRESOS").Select

Y luego regreso a la hoja original.

Se puede cerrar el hilo.

Gracias
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable