Excel - 1004: método Range del objeto "_Global" error

 
Vista:
sin imagen de perfil

1004: método Range del objeto "_Global" error

Publicado por Erick (3 intervenciones) el 04/07/2017 03:29:20
soy nuevo con las macros en excel hice este pequeño codigo


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
 
Dim comparar As String
comparar = Range("D13").Value
 
 
If comparar = "carla" Then
comparar = "JEFE"
 
Else
 
    If comparar = "juan" Then
    comparar = "AUXILIAR "
 
    Else
 
    End If
    Range("e8").Value = comparar
 
End If
Range("e8").Value = comparar
 
End Sub

es una macro que se ejecuta cada que haga un cambio a una celda o eso es lo que intento hacer y si hace el cambio pero de inmediato excel deja de funcionar y me manda el error
error

por favor si me ayudan a identificar en donde estoy mal se lo agredecería
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
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

1004: método Range del objeto '_Global' error

Publicado por Antoni Masana (2477 intervenciones) el 04/07/2017 08:12:22
Esta macro la ejecutas cuando cambias cualquier Celda y en principio esto en si mismo ya es un error. Deberías ejecutarla solo cuando modifique la celda D13 y si me apuras la E8, para el resto no tiene sentido.

En segundo lugar se puede hacer más simple:

Y por último:cuando modificas una celda se ejecuta este evento, como el evento modifica una celda vuelve a llamar al evento y así hasta el infinito o hasta que sale el error.

Y te añado otra cosa: Acepta CARLA, Carla, carla, cArLa, etc y JUAN, Juan, juan, JuAn, jUaN, etc

El evento corregido al completo:

1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim comparar As String
 
    If Target.Address = "$D$13" Or Target.Address = "$E$8" Then
       comparar = Range("D13").Value
 
       If UCase$(comparar) = "CARLA" Then comparar = "JEFE"
       If UCase$(comparar) = "JUAN" Then comparar = "AUXILIAR "
 
       Application.EnableEvents = False: Range("E8").Value = comparar
       Application.EnableEvents = True
    End If
End Sub

Y funciona perfectamente (Probado y testeado)

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
sin imagen de perfil
Val: 7
Ha aumentado su posición en 130 puestos en Excel (en relación al último mes)
Gráfica de Excel

1004: método Range del objeto "_Global" error

Publicado por nakha (3 intervenciones) el 19/05/2021 13:03:59
Hola que tal.....

Yo tengo el mismo error, en esta macro tan sencilla.....

Perdon, pero es que estoy iniciando.

Gracias por la ayuda.

1
2
3
4
5
6
7
Sub Inicio()
 
'ACTIVO Macro para acceso directo a Hoja 1 con CTRL+MAYUS+I
 
    Sheets("Hoja1").Select
    Range("LISTA[[#Headers],[ACT]]").Select
End Sub

Comentar que me falla desde que he cambiado de CTRL+I a CTRL+MAYUS+I, y que la idea es que desde cualquier hoja del libro, que hay bastantes, me lleve directamente a la Hoja 1

La hoja 1 tiene esta forma:

* Filas 1 a 5, estan "fuera" de la vista de saltos de pagina, y por lo tanto fuera del rango de impresion.
En esta zona tengo 3 botones con macros que ocultan o muestran lineas de la tabla de abajo, y que generan hipervinculos a las distintas hojas del libro.
* Fila 6 es el encabezado de la tabla.

Creo que esto no tiene que ver, pero lo pongo.

Gracias de nuevo.
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