Duplicando os botões do Excel com referência relativa

0

Estou criando uma pasta de trabalho de inventário. Em cada linha, há informações relacionadas a um número de peça, incluindo contagem. Desejo adicionar alguns botões:

  • Um que adicionará um à contagem de inventário
  • Um que subtrairá um da contagem de inventário

Como resultado, haverá dois botões controlando a contagem de inventário na mesma linha. Eu gostaria de poder duplicar esses botões mantendo referência relativa na pasta de trabalho. Por exemplo, o botão copiado / duplicado para a linha 3 controlará a contagem de inventário da linha 3.

Haverá 100 de linhas e alterar o controle manualmente não é prático. Idealmente, a solução criará 1000 linhas com os botões de comando criados.

    
por Phil_May 23.03.2018 / 13:46

1 resposta

0

Aqui está uma ideia. Que tal criar apenas 2 botões (em vez de centenas) e movê-los para seguir a seleção?

EDIT: Depois de algumas discussões e esclarecimentos, OP Phil pediu que os botões de atualização de inventário aparecessem adjacentes à célula selecionada quando o usuário clicasse na coluna F, e ficaria oculto de outra forma.

O vídeo abaixo mostra o funcionamento dos botões tagalong:

Aplanilhatemumamacrosimplesqueexibeemoveosbotões:

PrivateSubWorksheet_SelectionChange(ByValTargetAsRange)IfTarget.Column=6ThenActiveSheet.Shapes("Picture 1").Visible = True
        ActiveSheet.Shapes("Picture 2").Visible = True
        With ActiveSheet.Shapes("Picture 1")
            .Left = Target.Offset(, 2).Left
            .Top = Target.Offset(0).Top
        End With
        With ActiveSheet.Shapes("Picture 2")
            .Left = Target.Offset(, 3).Left
            .Top = Target.Offset(0).Top
        End With
    Else
        ActiveSheet.Shapes("Picture 1").Visible = False
        ActiveSheet.Shapes("Picture 2").Visible = False
    End If    
End Sub

Não consegui alterar a cor dos botões de comando normais do Excel, por isso inseri imagens e atribui macros aos objetos de imagem. É por isso que eles são referenciados como Shapes ("Picture 1") no código acima. Se você usar botões de comando normais do Excel, a referência mudaria para o nome do botão.

Os próprios botões têm código ainda mais simples:

Sub Button1_Click()
    ActiveCell.Value = ActiveCell.Value + 1
End Sub

Sub Button2_Click()
    ActiveCell.Value = ActiveCell.Value - 1
End Sub

Espero que isso ajude e boa sorte.

    
por 26.03.2018 / 00:04