Página 1 de 1

Checkbox em loop

Enviado: 08 Set 2017 às 14:07
por ERaldo
Boa Tarde, Galera.

Sou novato no assunto e gostaria de pedir uma ajuda dos colegas.
Estou desenvolvendo um controle de estoque e quis automatizar uma parte do processo, onde o usuário seleciona a checkbox que contem na propriedade caption o numero da nota (parte concluida), então quero rodar uma macro que veja quais checkbox estão com propriedade value=true e percorra a coluna da planilha para encontrar e na mesma linha em outra coluna escreva um numero prévia mente informado. Segue abaixo o que consegui fazer mas não esta rodando.
Agradeço antecipadamente a oportunidade de compartilhar.


Sub Movimentar_Estoque()

Dim Fornecedor As String
Dim Estagio As String
Dim Volume As Double
Dim Preço As Double
Dim NF As Integer
Dim Chkbx As Control

Fornecedor = Worksheets("Estoque").Range("B5").Value
Estagio = Worksheets("Estoque").Range("B3").Value
Preço = Worksheets("Estoque").Range("B7").Value
Volume = Worksheets("Estoque").Range("B13").Value
NF = Worksheets("Estoque").Range("B15").Value

For Each Chkbx In NUMERO_NOTAS.Controls
Do
If Chkbx.Value = True Then

If Worksheets("Entradas").Range("A1").Offset(i, 0).Value = "" Or _
Worksheets("Entradas").Range("A1").Offset(i, 90).Value <> "" Or _
Worksheets("Entradas").Range("A1").Offset(i, 11).Value <> Fornecedor Or _
Worksheets("Entradas").Range("A1").Offset(i, 5).Value <> Chkbx.Caption Then
Exit Do

ElseIf Chkbx.Value = True And Worksheets("Entradas").Range("A1").Offset(i, 0).Value <> "" And _
Estagio = "Transito" And Worksheets("Entradas").Range("A1").Offset(i, 11).Value = Fornecedor And _
Worksheets("Entradas").Range("A1").Offset(i, 5).Value = Chkbx.Value Then
Worksheets("Entradas").Range("A1").Offset(i, 90).Value = NF
End If


End If
Loop
Next Chkbx

MsgBox "Concluido!"

End Sub

Re: Checkbox em loop

Enviado: 08 Set 2017 às 18:12
por osvaldomp
sugestão - disponibilize uma amostra do seu arquivo Excel, com o código instalado e descreva com exatidão na própria planilha o que você pretende que o código faça. Se possível coloque alguns dados como exemplo e coloque também o resultado esperado.

Checkbox em loop

Enviado: 13 Set 2017 às 15:44
por ERaldo
Osvaldo obrigado pela dica, mas acredito que uma pessoa mais experiente consiga entender e apontar onde estou errando na construção do código sem a necessidade de disponibilizar meu arquivo.

Re: Checkbox em loop

Enviado: 13 Set 2017 às 23:22
por babdallas
Não acho que seja questão de ser experiente ou não. Em seu código você tem algumas condições que usam células específicas da planilha e fica difícil para nós sabermos se isso pode ou não ser o problema. Por isso, postar a planilha facilita sim, pois podemos ver os dados destas células para entender melhor.
Normalmente quando se faz um loop pelos controles de formulário e se quer percorrer apenas um tipo de controle, após o for each colocaria o seguinte IF:
Código: Selecionar todos
If Typename(Chkbx) = "Checkbox" then
              Código
end if

Re: Checkbox em loop

Enviado: 13 Set 2017 às 23:26
por gfranco
babdallas escreveu:Não acho que seja questão de ser experiente ou não. Em seu código você tem algumas condições que usam células específicas da planilha e fica difícil para nós sabermos se isso pode ou não ser o problema. Por isso, postar a planilha facilita sim, pois podemos ver os dados destas células para entender melhor.
Normalmente quando se faz um loop pelos controles de formulário e se quer percorrer apenas um tipo de controle, após o for each colocaria o seguinte IF:
Código: Selecionar todos
If Typename(Chkbx) = "Checkbox" then
              Código
end if
Concordo com o colega babdallas .
Muitas vezes deixei de responder dúvidas devido ausência de modelo.