Error de ejecución '13': Incompatibilidad de tipo

Resuelto
SLM-BHY Mensajes publicados 29 Estado Membre -  
Heliotte Mensajes publicados 1561 Estado Membre -
Hola,

He creado una macro de VBA que permite asignar un valor (texto) en la columna D si encuentra un valor predeterminado en la columna B.

Por ejemplo, si en la celda B6 tengo "Coche", entonces en la celda D6 tendré automáticamente "Alquilado".

Mi macro funciona muy bien para cada valor ingresado. Ahora, si tengo el mismo valor que aplicar en un rango de 10 filas, al extender el primer valor a las 9 restantes, obtengo un error de depuración con la incompatibilidad de tipo.

¿Puede ayudarme, por favor?

Aquí hay un fragmento de código:

Private Sub Worksheet_Change(ByVal Target As Range)

fila = Target.Row
col = Target.Column

If Target.Column = 2 Then

If Target = "coche" Then
Cells(fila, 4).Value = "alquilado"
End If

<config>Windows XP / Internet Explorer 7.0</config>

3 réponses

Usuario anónimo
 
Hola

Hay un problema con tu código
Cuando seleccionas un área de varias celdas, tu objeto Target contiene varias celdas y tu comparación If Target = "voiture" realmente presenta un problema de tipo.
Es necesario iterar sobre todas las celdas de Target para comparar solo una celda a la vez.

Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Dim ligne As Integer, col As Integer ' ' For ligne = Target.Row To Target.Row + Target.Rows.Count - 1 For col = Target.Column To Target.Column + Target.Columns.Count - 1 If col = 2 Then If Cells(ligne, col) = "voiture" Then Cells(ligne, 4).Value = "loué" End If End If Next col Next ligne End Sub 
4
Heliotte Mensajes publicados 1561 Estado Membre 92
 
Hola padre,

¡Mis mejores deseos!

No había entendido "en una playa de 10 líneas" porque leí diagonalmente (tenía mucha prisa esta mañana)

Gracias por las explicaciones .. ¡me servirá de lección!
0