Msgbox "articulo no encontrado"
Hola,
Tengo el siguiente codigo el cual desde un archivo pega datos a otro archivo dependiendo del nombre de la hoja. Lo que he estado tratando y no puedo darle es introducir un mensaje en el cual si no encuentra el nombre de la hoja no se ejecute y envie un aviso en el cual mencione que nombre(s) no encontro.
Me pueden ayudar por favor.
Gracias y un saludo
Sub oc()
Dim wkb As Workbook
Application.ScreenUpdating = False
Set wkb = Workbooks("Modulo_OC.xls")
ActiveSheet.Select
ultfila = Range("B" & Rows.Count).End(xlUp).Row
For Each celda In Range("A17:A" & ultfila)
Workbooks("Modulo_Inventario.xls").Activate
With Sheets(celda.Value)
filault = .Range("A" & Rows.Count).End(xlUp).Row + 1
.Range("A" & filault) = celda.Value
.Range("A" & filault).Offset(0, 1) = Date
.Range("A" & filault).Offset(0, 2) = "ENTRADA"
.Range("A" & filault).Offset(0, 3) = wkb.ActiveSheet.Range("G2").Value
.Range("A" & filault).Offset(0, 4) = wkb.ActiveSheet.Range("B2").Value
.Range("A" & filault).Offset(0, 5) = wkb.ActiveSheet.Range("B10").Value
.Range("A" & filault).Offset(0, 6) = celda.Offset(0, 4).Value
.Range("A" & filault).Offset(0, 7) = celda.Offset(0, 5).Value
If Not IsNumeric(Sheets("MENU").Range("C18")) Then
If celda.Offset(0, 5).Value = "USD" Then .Range("A" & filault).Offset(0, 8) = .Range("A" & filault).Offset(0, 6) * Sheets("MENU").Range("D18")
Else
.Range("A" & filault).Offset(0, 8) = .Range("A" & filault).Offset(0, 6) * Sheets("MENU").Range("C18")
End If
If celda.Offset(0, 5).Value = "MXP" Then .Range("A" & filault).Offset(0, 8) = .Range("A" & filault).Offset(0, 6) * 1
.Range("A" & filault).Offset(0, 9) = celda.Offset(0, 3).Value
If Not IsNumeric(.Range("A" & filault).Offset(-1, 11)) Then
.Range("A" & filault).Offset(0, 11) = .Range("A" & filault).Offset(0, 11) + celda.Offset(0, 3).Value
Else
.Range("A" & filault).Offset(0, 11) = .Range("A" & filault).Offset(-1, 11) + celda.Offset(0, 3).Value
End If
.Range("A" & filault).Offset(0, 13) = .Range("A" & filault).Offset(0, 9) * .Range("A" & filault).Offset(0, 8)
If Not IsNumeric(.Range("A" & filault).Offset(-1, 15)) Then
.Range("A" & filault).Offset(0, 15) = .Range("A" & filault).Offset(0, 15) + .Range("A" & filault).Offset(0, 13)
Else
.Range("A" & filault).Offset(0, 15) = .Range("A" & filault).Offset(-1, 15) + .Range("A" & filault).Offset(0, 13)
End If
End With
Next celda
wkb.ActiveSheet.Activate
MsgBox "ORDEN DE COMPRA RECEPCIONADA EN" & Chr(13) & "MODULO DE INVENTARIOS"
Application.ScreenUpdating = True
End Sub
Tengo el siguiente codigo el cual desde un archivo pega datos a otro archivo dependiendo del nombre de la hoja. Lo que he estado tratando y no puedo darle es introducir un mensaje en el cual si no encuentra el nombre de la hoja no se ejecute y envie un aviso en el cual mencione que nombre(s) no encontro.
Me pueden ayudar por favor.
Gracias y un saludo
Sub oc()
Dim wkb As Workbook
Application.ScreenUpdating = False
Set wkb = Workbooks("Modulo_OC.xls")
ActiveSheet.Select
ultfila = Range("B" & Rows.Count).End(xlUp).Row
For Each celda In Range("A17:A" & ultfila)
Workbooks("Modulo_Inventario.xls").Activate
With Sheets(celda.Value)
filault = .Range("A" & Rows.Count).End(xlUp).Row + 1
.Range("A" & filault) = celda.Value
.Range("A" & filault).Offset(0, 1) = Date
.Range("A" & filault).Offset(0, 2) = "ENTRADA"
.Range("A" & filault).Offset(0, 3) = wkb.ActiveSheet.Range("G2").Value
.Range("A" & filault).Offset(0, 4) = wkb.ActiveSheet.Range("B2").Value
.Range("A" & filault).Offset(0, 5) = wkb.ActiveSheet.Range("B10").Value
.Range("A" & filault).Offset(0, 6) = celda.Offset(0, 4).Value
.Range("A" & filault).Offset(0, 7) = celda.Offset(0, 5).Value
If Not IsNumeric(Sheets("MENU").Range("C18")) Then
If celda.Offset(0, 5).Value = "USD" Then .Range("A" & filault).Offset(0, 8) = .Range("A" & filault).Offset(0, 6) * Sheets("MENU").Range("D18")
Else
.Range("A" & filault).Offset(0, 8) = .Range("A" & filault).Offset(0, 6) * Sheets("MENU").Range("C18")
End If
If celda.Offset(0, 5).Value = "MXP" Then .Range("A" & filault).Offset(0, 8) = .Range("A" & filault).Offset(0, 6) * 1
.Range("A" & filault).Offset(0, 9) = celda.Offset(0, 3).Value
If Not IsNumeric(.Range("A" & filault).Offset(-1, 11)) Then
.Range("A" & filault).Offset(0, 11) = .Range("A" & filault).Offset(0, 11) + celda.Offset(0, 3).Value
Else
.Range("A" & filault).Offset(0, 11) = .Range("A" & filault).Offset(-1, 11) + celda.Offset(0, 3).Value
End If
.Range("A" & filault).Offset(0, 13) = .Range("A" & filault).Offset(0, 9) * .Range("A" & filault).Offset(0, 8)
If Not IsNumeric(.Range("A" & filault).Offset(-1, 15)) Then
.Range("A" & filault).Offset(0, 15) = .Range("A" & filault).Offset(0, 15) + .Range("A" & filault).Offset(0, 13)
Else
.Range("A" & filault).Offset(0, 15) = .Range("A" & filault).Offset(-1, 15) + .Range("A" & filault).Offset(0, 13)
End If
End With
Next celda
wkb.ActiveSheet.Activate
MsgBox "ORDEN DE COMPRA RECEPCIONADA EN" & Chr(13) & "MODULO DE INVENTARIOS"
Application.ScreenUpdating = True
End Sub
1 respuesta
Respuesta de Elsa Matilde
1