Macro que encuentre un valor en una tabla

En mi hoja, tengo un valor en C1 que cambiará y procede de otra hoja.

A partir de A5 y hasta que A se haga vacío tengo un

Do Until IsEmpty(ActiveCell)

Que me recorre la tabla completa y me ejecuta unos if dentro.

Lo que no sé es cómo hacer para que los if se ejecuten solo cuando A5, A6,... Sean igual a C1

Os dejo mi código y disculpad porque soy novato en esto, Gracias.

'Selecciono hoja PzasEsp y pego el CodPlaza en "C1"
Sheets("PzasEsp").Select
Range("C1").PasteSpecial xlPasteValues
Application.CutCopyMode = False

'Declaro Variables
Dim Codplaza As Integer
Dim Totabono As Double
Dim LimiteSin As Double
Dim DifAbLim As Double
Dim TotCargo As Double
Dim DifAbCgo As Double

'A partir de aqui es donde no me funciona

Range("A5").Select
Codplaza = Range("A5")

Do Until IsEmpty(ActiveCell)
    If ActiveCell.Value = Range("C1") Then
    Totabono = ActiveCell.Offset(0, 4).Value
    LimiteSin = ActiveCell.Offset(0, 3).Value
    TotCargo = ActiveCell.Offset(0, 5).Value
    DifAbLim = Totabono - LimiteSin
    DifAbCgo = Totabono - TotCargo
   

Else
    If LimiteSin < Totabono Then
  MsgBox "El límite de siniestralidad de la delegación: " & Codplaza & Chr(13) _
  & "se ha superado entre las fechas" & Chr(13) & Range("B2") & " y " & Range("B3") & Chr(13) _
  & "siendo el exceso de " & DifAbLim & " €" & Chr(13) _
  & "Dif.de abonos-cargos = " & DifAbCgo, vbInformation + vbCritical, "ALERTA LIMITE SUPERADO"
   End If
    End If
    ActiveCell.Offset(1, 0).Select
Loop

1 Respuesta

Respuesta
1

El código correcto es este:

'Declaro Variables
Dim Codplaza As Integer
Dim Totabono As Double
Dim LimiteSin As Double
Dim DifAbLim As Double
Dim TotCargo As Double
Dim DifAbCgo As Double

'A partir de aqui es donde no me funciona

Range("A5").Select
Codplaza = Range("C1")

Do Until IsEmpty(ActiveCell)
    If ActiveCell.Value = Range("C1") Then
    Totabono = ActiveCell.Offset(0, 4).Value
    LimiteSin = ActiveCell.Offset(0, 3).Value
    TotCargo = ActiveCell.Offset(0, 5).Value
    DifAbLim = Totabono - LimiteSin
    DifAbCgo = Totabono - TotCargo
    If LimiteSin < Totabono Then

  MsgBox "El límite de siniestralidad de la delegación: " & Codplaza & Chr(13) _
  & "se ha superado entre las fechas" & Chr(13) & Range("B2") & " y " & Range("B3") & Chr(13) _
  & "siendo el exceso de " & DifAbLim & " €" & Chr(13) _
  & "Dif.de abonos-cargos = " & DifAbCgo, vbInformation + vbCritical, "ALERTA LIMITE SUPERADO"
    End If
    End If
ActiveCell.Offset(1, 0).Select
Loop

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas