Sou um iniciante absoluto em VBA sem nenhuma experiência em codificação e estou tentando fazer um tipo de aplicativo de inventário. Fiquei preso e tentei muitos trechos de código encontrados na internet, mas sem sucesso.
Estou tentando comparar valores de estoque (em stock_sheet ) com o valor da célula inserido nas colunas distribution_sheet ** Tr ou En e , se o valor dist for maior, digo ao usuário para inserir valores menores ou iguais aos valores de estoque.
Por exemplo:
Se o usuário inserir um valor nas células F5, H5, J5,...,BN5 em distribution_sheet (ou seja, Linha 5), o VBA deve verificar esse valor em relação a stock_sheet!F5 ao percorrer os nomes de publicação (E5 para LastRow)
Se o usuário inserir um valor nas células G5, I5, K5,...,BO5 em distribution_sheet (ou seja, Linha 5), o VBA deve verificar esse valor em relação a stock_sheet!G5 ao percorrer os nomes de publicação (E5 para LastRow)
Captura de tela-1 -> Esta é uma planilha de estoque com valores de estoque **onde os números das linhas podem variar **
Captura de tela-2 -> O código a seguir funciona nesta planilha
Captura de tela-3 -> O código que tenho não funciona nesta planilha com opções de idioma (Tr, En)
Qualquer ajuda seria muito apreciada.
Atenciosamente.
Aqui está o código atual que tenho até agora
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cell As Range
Application.EnableEvents = False
For Each cell In Target
For i = 13 To 31
If Not Application.Intersect(cell, Range("F" & (i) & ":BO" & (i))) Is Nothing Then
If Not IsNumeric(cell.Value) Or (cell.Value) > Worksheets("stock_sheet").Range("F" & (i)).Value Then
MsgBox Worksheets("stock_sheet").Range("E" & (i)).Value & vbCrLf & " please enter a number between 1 and " & Worksheets("stock_sheet").Range("F" & (i)).Value & _
" for this publication!", vbCritical, "ERROR"
cell.Value = vbNullString
cell.Select
End If
End If
Next i
Next cell
Application.EnableEvents = True
End Sub