Problema con .Find al buscar un String !
Buenas Tardes
Lo que pasa es que tengo unas tablas donde ando combinando datos para actualizar lo que seria un stock, solo que el stock es de 2 tipos en deposito y en transito, ya tengo la macro hecha, solo me apareció un detalle al momento de realizar un .Find buscado una variable String, en mi columna que uso como indice, tengo un valor asd/11 y filas abajo un valor asd/1 el problema es cuando llego a asd/1 al momento de regresar a la tablala búsqueda se queda en asd/11, no se como forzar el .Find a que busque de nuevo el asd/1
por su ayuda muchas gracias, espero sus comentarios
Adjunto Macro
Sub Macro1()
'
' Macro1 Macro
'
' Acceso directo: CTRL+w
'
Dim cvp As String
Dim tons As Double
Dim dep As String
Dim buscar As Range
Range("S190").Select
Do While ActiveCell.Value <> Empty
ActiveCell.Offset(1, 0).Select
If ActiveCell.Value = "OK BU pendiente" Or ActiveCell.Value = "cargar" Then
Do While ActiveCell.Value = "OK BU pendiente" Or ActiveCell.Value = "cargar"
ActiveCell.Offset(1, 0).Select
'MsgBox "Favor de checar manualmente, anormalidad localizada en: " & cvp
Loop
ActiveCell.Offset(-1, 0).Select
cvp = ActiveCell.Value
Else
cvp = ActiveCell.Value
If cvp = ActiveCell.Offset(1, 0).Value Then
MsgBox "Favor de checar manualmente, anormalidad localizada cerca de: " & cvp & ActiveCell.Address
cvp = ActiveCell.Offset(2, 0).Value
End If
Windows("Base stock para actualizar.xls").Activate
Sheets("Hoja1").Select
Set buscar = [A:B].Find(What:=cvp)
If buscar Is Nothing Then
MsgBox "No he encontrado la CVP. Lo siento." & cvp
'Vuelve a Backlog INDUSTRIAS
Windows("Backlog INDUSTRIAS.xls").Activate
Set buscar = [S:S].Find(What:=cvp)
Range(buscar.Address).Select
MsgBox "No he encontrado la CVP. Lo siento." & cvp
MsgBox "Aquí tienes la palabra " & UCase(cvp) & "."
ActiveCell.Offset(0, 14).Select
tons = "0"
ActiveCell.FormulaR1C1 = tons
ActiveCell.Offset(0, -14).Select
Else
Range(buscar.Address).Select
MsgBox "Aquí tienes la palabra " & UCase(cvp) & "."
tons = ActiveCell.Offset(0, 1).Value
MsgBox tons
Sheets("Sheet1").Select
Set buscar = [G:G].Find(What:=cvp)
Range(buscar.Address).Select
dep = ActiveCell.Offset(0, -6).Value
MsgBox dep
'Volver al backlog INDUSTRIAS
Windows("Backlog INDUSTRIAS.xls").Activate
Set buscar = [S:S].Find(What:=cvp)
Range(buscar.Address).Select
MsgBox "Aquí tienes la palabra " & UCase(cvp) & "."
If dep = "D1 - TAMSA" Then
ActiveCell.Offset(0, 14).Select
ActiveCell.FormulaR1C1 = tons
ActiveCell.Offset(0, -14).Select
MsgBox "Stock Actualizado 1"
Else
ActiveCell.Offset(0, 15).Select
ActiveCell.FormulaR1C1 = tons
ActiveCell.Offset(0, -15).Select
MsgBox "Stock Actualizado 2"
End If
End If
End If
Loop
MsgBox "Stock Completo Actualizado"
End Sub
P.D. Si en la lista los valores estuvieran primero asd/1 y luego asd/11 no abría problema alguno, pero esto no depende de mi.
Saludos y Gracias
Lo que pasa es que tengo unas tablas donde ando combinando datos para actualizar lo que seria un stock, solo que el stock es de 2 tipos en deposito y en transito, ya tengo la macro hecha, solo me apareció un detalle al momento de realizar un .Find buscado una variable String, en mi columna que uso como indice, tengo un valor asd/11 y filas abajo un valor asd/1 el problema es cuando llego a asd/1 al momento de regresar a la tablala búsqueda se queda en asd/11, no se como forzar el .Find a que busque de nuevo el asd/1
por su ayuda muchas gracias, espero sus comentarios
Adjunto Macro
Sub Macro1()
'
' Macro1 Macro
'
' Acceso directo: CTRL+w
'
Dim cvp As String
Dim tons As Double
Dim dep As String
Dim buscar As Range
Range("S190").Select
Do While ActiveCell.Value <> Empty
ActiveCell.Offset(1, 0).Select
If ActiveCell.Value = "OK BU pendiente" Or ActiveCell.Value = "cargar" Then
Do While ActiveCell.Value = "OK BU pendiente" Or ActiveCell.Value = "cargar"
ActiveCell.Offset(1, 0).Select
'MsgBox "Favor de checar manualmente, anormalidad localizada en: " & cvp
Loop
ActiveCell.Offset(-1, 0).Select
cvp = ActiveCell.Value
Else
cvp = ActiveCell.Value
If cvp = ActiveCell.Offset(1, 0).Value Then
MsgBox "Favor de checar manualmente, anormalidad localizada cerca de: " & cvp & ActiveCell.Address
cvp = ActiveCell.Offset(2, 0).Value
End If
Windows("Base stock para actualizar.xls").Activate
Sheets("Hoja1").Select
Set buscar = [A:B].Find(What:=cvp)
If buscar Is Nothing Then
MsgBox "No he encontrado la CVP. Lo siento." & cvp
'Vuelve a Backlog INDUSTRIAS
Windows("Backlog INDUSTRIAS.xls").Activate
Set buscar = [S:S].Find(What:=cvp)
Range(buscar.Address).Select
MsgBox "No he encontrado la CVP. Lo siento." & cvp
MsgBox "Aquí tienes la palabra " & UCase(cvp) & "."
ActiveCell.Offset(0, 14).Select
tons = "0"
ActiveCell.FormulaR1C1 = tons
ActiveCell.Offset(0, -14).Select
Else
Range(buscar.Address).Select
MsgBox "Aquí tienes la palabra " & UCase(cvp) & "."
tons = ActiveCell.Offset(0, 1).Value
MsgBox tons
Sheets("Sheet1").Select
Set buscar = [G:G].Find(What:=cvp)
Range(buscar.Address).Select
dep = ActiveCell.Offset(0, -6).Value
MsgBox dep
'Volver al backlog INDUSTRIAS
Windows("Backlog INDUSTRIAS.xls").Activate
Set buscar = [S:S].Find(What:=cvp)
Range(buscar.Address).Select
MsgBox "Aquí tienes la palabra " & UCase(cvp) & "."
If dep = "D1 - TAMSA" Then
ActiveCell.Offset(0, 14).Select
ActiveCell.FormulaR1C1 = tons
ActiveCell.Offset(0, -14).Select
MsgBox "Stock Actualizado 1"
Else
ActiveCell.Offset(0, 15).Select
ActiveCell.FormulaR1C1 = tons
ActiveCell.Offset(0, -15).Select
MsgBox "Stock Actualizado 2"
End If
End If
End If
Loop
MsgBox "Stock Completo Actualizado"
End Sub
P.D. Si en la lista los valores estuvieran primero asd/1 y luego asd/11 no abría problema alguno, pero esto no depende de mi.
Saludos y Gracias
1 Respuesta
Respuesta de Elsa Matilde
1