Este es el código que funcionaba en la hoja directamente, pero al pasarlo a módulo,
No es lo mismo.
No sé como hacer que corra cuando cambie la celda G2
Sub Nuevo_Codigo()
'Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
ActiveSheet.Unprotect "m"
'If Target.AddressLocal = "$G$2" Then
Range("A1:F1") = ""
'Range("B1") = ""
Set l2 = Workbooks("TARIFAS VARIOS PROVEEDORES ACTUALIZADO.xlsm")
For Each h In l2.Sheets
Set b = h.Range("G:G").Find(Target)
If Not b Is Nothing Then
ActiveSheet.Unprotect "m"
Range("A1") = h.Name
Range("B1") = h.Cells(b.Row, "A")
Range("C1") = h.Cells(b.Row, "B")
Range("F1") = h.Cells(b.Row, "D")
Exit For
End If
Next
If Range("C1").Value = "" Then
MsgBox "NO SE ENCONTRÓ ÉSTE ARTICULO" & Chr(10) & Chr(10) & "REVISE EL CÓDIGO" _
& Chr(10) & Chr(10) & "NO PASO NADA", vbInformation, "CÓDIGO NO ENCONTRADO"
Exit Sub
End If
If Range("C59").Value <> "" Then
MsgBox "ALBARÁN COMPLETO," & Chr(10) & Chr(10) & " CAMBIE A OTRO ALBARÁN" _
& Chr(10) & Chr(10) & "NO PASO NADA", vbInformation, "ALBARÁN COMPLETO"
Exit Sub
End If
'End If
'Application.ScreenUpdating = False
'If Target.AddressLocal = "$G$2" Then
Range("C14").Select
'Busca la primera celda vacia a partir de C14
While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Select
Wend
'Situa el cursor 2 columnas a la derecha para introducir datos
ActiveCell.Offset(0, 2).Select
'Asigna un valor a través de un cuadro a la celda activa
'con un valor por defecto de "1"
ActiveCell.Value = Val(InputBox("Cantidad", "Cantidad", "1", 900, 200))
Selection.Copy
Selection.PasteSpecial Paste:=xlValues
'Si el valor de entrada es "0" salirse
If ActiveCell.Value = 0 Then
Range("G2").Select
Exit Sub
Else
'Situa el cursor 3 columnas a la izquierda((B:B) para introducir datos
ActiveCell.Offset(0, -3).Select
Range("B1:D1").Copy
Selection.PasteSpecial Paste:=xlValues
ActiveCell.Offset(0, 8).Select
Range("J1:J1").Copy
Selection.PasteSpecial Paste:=xlValues
ActiveCell.Offset(0, -4).Select
Range("F1:F1").Copy
Selection.PasteSpecial Paste:=xlValues
'ActiveCell.Offset(0, 2).Select
'ActiveCell.FormulaR1C1 = "=RC[-3]*RC[-2]*(1-RC[-1])"
End If
Range("G2").Select
Exit Sub
'End If
'----
Application.ScreenUpdating = False
If Target.AddressLocal = "$E$4" Then
actual = ActiveSheet.Name
Sheets(actual).Name = Sheets(actual).Range("ba4").Value
actual = ActiveSheet.Name
Range("G2").Select
End If
'----
Application.ScreenUpdating = False
If Target.AddressLocal = "$C$4" Then
actual = ActiveSheet.Name
Sheets(actual).Name = Sheets(actual).Range("ba4").Value
actual = ActiveSheet.Name
Range("G2").Select
End If
'----
Application.CutCopyMode = False
'ActiveSheet.Protect Password:="m"
'Sheets(actual).Protect Password:="m"
'Vuelve visibles los eventos posteriores
Application.ScreenUpdating = True
End Sub