Notifications
Clear all

Alterar a coluna "quantidade", pesquisando pelo código

4 Posts
3 Usuários
0 Reactions
774 Visualizações
(@marcoscfs)
Posts: 5
Active Member
Topic starter
 

Boa tarde a todos.

Tenho uma base de dados conforme imagem abaixo.

Preciso criar uma macro onde vou pesquisar o ISBN (código do item, primeira coluna da BD), e adicionar, nesse item, ao valor da coluna "QTD", a quantidade que estou dando entrada. (varia com certa frequência, mas em geral adiciono apenas um exemplar por entrada)

Já tentei por fórmula, por macro gravada com pesquisa comum no meio, mas quando tento gravar a macro pesquisando um determinado valor, ele não reconhece que a pesquisa pode ser variável, e sempre pesquisa o mesmo primeiro numero que usei na gravação.

Obrigado!

 
Postado : 23/06/2015 12:09 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

MarcosCFS,

Boa Tarde!

Vamos ver se entendi o que você quer...

Você quer que no valor que já existe na coluna A seja adicionada o valor que se encontra na coluna D. É isso mesmo?

Porque não utiliza a função CONCATENAR?

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 23/06/2015 12:23 pm
Issamu
(@issamu)
Posts: 605
Honorable Member
 

Se entendi, veja se este código lhe atende:

Sub Atualizar_Quantidade()
    
    Dim sISBN As String
    Dim iQtd As Variant
    Dim sAddress As String
    
    sAddress = Selection.address
    
    sISBN = Application.InputBox("Digite o ISBN desejado:")
    
    If CStr(sISBN) = "Falso" Or CStr(sISBN) = "False" Then
        Exit Sub
    End If
    
    On Error GoTo erro
    Columns("A:A").Select
    Selection.Find(What:=sISBN, After:=Range("A1"), LookIn:=xlFormulas, _
    LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False).Activate
    
    ActiveCell.Offset(0, 3).Activate
    
    iQtd = Application.InputBox("Digite a quantidade a ser adicionada:")
    
    Do Until IsNumeric(iQtd) = True
        MsgBox "Valor inválido!", vbCritical
        iQtd = Application.InputBox("Digite a quantidade a ser adicionada:")
        If CStr(iQtd) = "Falso" Or CStr(iQtd) = "False" Then
            Exit Sub
        End If
    Loop
        
        ActiveCell.Value = ActiveCell.Value + iQtd
        Exit Sub
        
erro:
        MsgBox "ISBN não localizado!", vbCritical
        Range(sAddress).Activate
        Exit Sub
        
End Sub

Rafael Issamu F. Kamimura
Moderador Oficial Microsoft Community - MCC (Contribuidor do Microsoft Community)
http://zip.net/bjrt0X - http://zip.net/bhrvbR
Foi útil? Clique na mãozinha
Conheça: http://excelmaniacos.com/

 
Postado : 23/06/2015 1:59 pm
(@marcoscfs)
Posts: 5
Active Member
Topic starter
 

MarcosCFS,

Boa Tarde!

Vamos ver se entendi o que você quer...

Você quer que no valor que já existe na coluna A seja adicionada o valor que se encontra na coluna D. É isso mesmo?

Porque não utiliza a função CONCATENAR?

Obrigado pela atenção, Wagner, mas o valor na coluna A é o código do item, e o da coluna D é a quantidade disponível. Minha ideia é adicionar uma determinada quantidade (variável), à coluna D, alterando a quantidade disponível.

De qualquer forma, vai o joinha pela pelo interesse!

Se entendi, veja se este código lhe atende:

Sub Atualizar_Quantidade()
    
    Dim sISBN As String
    Dim iQtd As Variant
    Dim sAddress As String
    
    sAddress = Selection.address
    
    sISBN = Application.InputBox("Digite o ISBN desejado:")
    
    If CStr(sISBN) = "Falso" Or CStr(sISBN) = "False" Then
        Exit Sub
    End If
    
    On Error GoTo erro
    Columns("A:A").Select
    Selection.Find(What:=sISBN, After:=Range("A1"), LookIn:=xlFormulas, _
    LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False).Activate
    
    ActiveCell.Offset(0, 3).Activate
    
    iQtd = Application.InputBox("Digite a quantidade a ser adicionada:")
    
    Do Until IsNumeric(iQtd) = True
        MsgBox "Valor inválido!", vbCritical
        iQtd = Application.InputBox("Digite a quantidade a ser adicionada:")
        If CStr(iQtd) = "Falso" Or CStr(iQtd) = "False" Then
            Exit Sub
        End If
    Loop
        
        ActiveCell.Value = ActiveCell.Value + iQtd
        Exit Sub
        
erro:
        MsgBox "ISBN não localizado!", vbCritical
        Range(sAddress).Activate
        Exit Sub
        
End Sub

Cara, faz uns 2 meses que to agarrado nisso. Me salvou demais! Muitíssimo obrigado!

 
Postado : 23/06/2015 2:22 pm