Al haber pasado del 2003 al 2007, tengo problemas en una macro

Al haber pasado del 2003 al 2007, tengo problemas con la macro:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.Calculate ' Resaltar Celda en Excel
End Sub

Y ahora en el 2007 no me funciona

1 respuesta

Respuesta
1

¿Y cuál es el problema?

¿Qué error te aparece?

¿O qué debe hacer y no hace?

Ya la probé en 2007 y no me marca ningún error.

Antes selecionaba una celda y cambiaba el color de la celda, ahora para que cambie tengo que meterme en la celda no basta con selecionarla

Un saludo

Buenas noches
Al haber pasado del 2003 al 2007, tengo problemas con la macro "Borrar Celdas Selección".
Al seleccionar las celdas en rojo y ejecutar la macro "Borrar Celdas Selección", esta es la macro:

Sub BorrarMiaSeleccion()
'Por.Dante Amor
Application.ScreenUpdating = False ' Apagar el parpadeo de pantalla
ActiveSheet.Protect Password:="1"
Dim r As Range
For Each r In Selection
If r.Locked = False Then r.ClearContents
Dim img As Shape
On Error Resume Next
For Each img In ActiveSheet.Shapes
If Not Application.Intersect(img.TopLeftCell, Selection) Is Nothing Then
If img.Type = msoPicture Then img.Delete
End If
Next
Next
Call comenzar_las_macros_así
For Each r In Selection
'si alguna celda está desbloqueada, se cambia color de fondo y fuente blanca
If r.Locked = False Then
r.Interior.Color = RGB(255, 255, 255) 'Convierte a color blanco CELDAS SELECIONASA.
r.Font.Color = RGB(0, 0, 0) ' Convierte en Negritas la fuente (texto) de la celda activa.
End If
Next
Call finalizar_las_macros_así
End Sub


Me da error en el codigo de la pagina que es :

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
' AGREGAR FECHA EN UNA COLUMNA
'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
If Target.Column = 5 Then
If Cells(Target.Row, "B") = "" Then
ActiveSheet.Unprotect Password:="1"
Cells(Target.Row, "B") = Date
ActiveSheet.Protect Password:="1"
End If
End If
'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
' Columnas en MAYUSCULAS
'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
ActiveSheet.Unprotect Password:="1"
If Not Application.Intersect(Target, Range("F7:F2000")) Is Nothing Then
Target.Value = UCase(Target)
ActiveSheet.Protect Password:="1"
End If
'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
' F O T O S
'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
If Not Intersect(Target, Columns("E")) Is Nothing Then
If Target.Count > 1 Then Exit Sub
ActiveSheet.Unprotect Password:="1"
If Target <> "" Then
'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
' AGREGAR FOTOS
'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
'ruta = "C:\trabajo\Fotos\"
ruta = "G:\Factura\Fotos\"
imagen = Dir(ruta & Target.Value & ".*")
If imagen <> "" Then
imgactual = Cells(Target.Row, "D")
If imgactual <> "" Then
ActiveSheet.Shapes(imgactual).Delete
End If
Set etiqueta = ActiveSheet.Pictures.Insert(ruta & imagen)
With etiqueta
.ShapeRange.LockAspectRatio = msoFalse
.Left = Cells(Target.Row, "D").Left
.Top = Cells(Target.Row, "D").Top
.Height = Range(Cells(Target.Row, "D"), Cells(Target.Row + 4, "D")).Height 'alto imagen
.Width = Cells(Target.Row, "D").Width 'ancho imagen
End With
imgactiva = etiqueta.Name
Cells(Target.Row, "D") = imgactiva
Else
MsgBox "La referencia no tiene foto", vbExclamation
End If
Else
'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
' Eliminar FOTOS
'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
On Error Resume Next
If Target.Count > 1 Then Exit Sub
imgactual = Cells(Target.Row, "D")
If imgactual <> "" Then
ActiveSheet.Shapes(imgactual).Delete
End If
Cells(Target.Row, "D") = ""
Cells(Target.Row, "B") = ""
End If
ActiveSheet.Protect Password:="1"
End If
End Sub

El error me da en la linea :

If Not Application.Intersect(Target, Range("F7:F2000")) Is Nothing Then

En 2003, no me daba error, pero ahora en 2007, supongo que sea la expresión.
Un saludo

En tu pregunta inicial pusiste esto:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.Calculate ' Resaltar Celda en Excel
End Sub


Y después pones otras macros que no tienen nada que ver con la pregunta inicial, para que pueda entender bien el problema debes poner la información correcta en la pregunta inicial.


¿Dime qué mensaje de error te aparece?

Quita la palabra application:

If Not Application.Intersect(Target, Range("F7:F2000")) Is Nothing Then

Prueba así:

If Not Intersect(Target, Range("F7:F2000")) Is Nothing Then


Buenas tardes Dante

Vamos a la 1ª

Al haber pasado del 2003 al 2007, tengo problemas con la macro:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.Calculate ' Resaltar Celda en Excel
End Sub

Y ahora en el 2007 no me funciona

Antes en 2003 ponía el ratón, encima pinchando una vez seleccionando celda y cambiaba de color, y al pinchar en otra celda, la anterior se ponía normal y la que volvía a pinchar cambiaba de color

Espero habértelo explicado bien

La otra pregunta te la vuelvo abrir en otro tema

Un saludo dante

Esta instrucción por si sola no cambia el color de las celdas

Target. Calculate

Supongo que tienes otra macro que hace el cambio de colores.

Mejor envíame tu archivo, recuerda poner tu nombre en el asunto del correo.

Enviado

Cambia la macro por esto:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'Target.Calculate            ' Resaltar Celda en Excel
    Application.ScreenUpdating = True
End Sub

Fabuloso eres mi ayuda perfecta.

No entiendo nada de excel y a partir de esta macro menos.

Es la primera vez que uso, ', este signo dos veces en la misma línea.

Un saludo Dante

Este signo ' se llama apostrofe y sirve para comentar la línea, es decir, todo lo que está del lado derecho del caracter ' significa que es un comentario en la macro, lo que escribas ahí es cualquier texto y no será considerado como instrucción en la macro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas