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
¿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.
Cambia la macro por esto:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'Target.Calculate ' Resaltar Celda en Excel Application.ScreenUpdating = True End Sub
- Compartir respuesta