Página 1 de 1

Como Repetir critérios de acordo com o número indicado?

Enviado: 02 Mar 2017 às 11:45
por victor2
Olá pessoal!

Bom,eu sou um pouco inexperiente em relação a VBA.
E gostaria de pedir a ajuda de vocês,se possível,claro.

Estou tetando criar um comando que repita os critérios de o número de vezes que eu pedi

Seguindo essa ideia,eu construí algo parecido,mas no final ainda continua sendo trabalhoso.

Segue abaixo o criado:

Private Sub botão_Click()

Dim W As Worksheet
Dim Cont As Integer

Set W = Sheets("Planilha2")

W.Select
W.Range("A1").Select

For Cont = 1 To 4
ActiveCell.Value = "Espécie A"
ActiveCell.Offset(1, 0).Select
ActiveCell.Offset(-1, 1) = "Corte Futuro"

Next

For Cont = 5 To 35
ActiveCell.Value = "Espécie A"
ActiveCell.Offset(1, 0).Select
ActiveCell.Offset(-1, 1) = "Exploração"

Next

For Cont = 36 To 42
ActiveCell.Value = "Espécie A"
ActiveCell.Offset(1, 0).Select
ActiveCell.Offset(-1, 1) = "matriz"

Next

For Cont = 43 To 43
ActiveCell.Value = "Espécie B"
ActiveCell.Offset(1, 0).Select
ActiveCell.Offset(-1, 1) = "Corte Futuro"

Next

For Cont = 44 To 45
ActiveCell.Value = "Espécie B"
ActiveCell.Offset(1, 0).Select
ActiveCell.Offset(-1, 1) = "Exploração"

Next

For Cont = 36 To 42
ActiveCell.Value = "Espécie B
ActiveCell.Offset(1, 0).Select
ActiveCell.Offset(-1, 1) = "matriz"

Next

For Cont = 43 To 43
ActiveCell.Value = "Espécie C"
ActiveCell.Offset(1, 0).Select
ActiveCell.Offset(-1, 1) = "Corte Futuro"

For Cont = 44 To 45
ActiveCell.Value = "Espécie C"
ActiveCell.Offset(1, 0).Select
ActiveCell.Offset(-1, 1) = "Exploração"

e assim sucessivamente...o problema é que eu tenho o tempo todo que alterar os valores da linha de CONT para que o número de vezes que determinado critério se repita.Há alguma forma mais fácil de executar isso?

Muito Obrigado desde já.

Re: Como Repetir critérios de acordo com o número indicado?

Enviado: 02 Mar 2017 às 12:24
por alexandrevba
Boa tarde!!

Eu não sei se entendi, mas caso você pretenda controlar a quantidade de interação de um laço de forma dinâmica, tente:
Código: Selecionar todos
Sub teste()
Dim iCont As Integer
Dim vEntrada As Variant
    vEntrada = Application.InputBox("Digite a Qtd de Interações") 'Há outras formas...
    For iCont = 1 To vEntrada
        MsgBox "Interação de Num: " & iCont
    Next iCont
End Sub
Att

Re: Como Repetir critérios de acordo com o número indicado?

Enviado: 02 Mar 2017 às 13:20
por victor2
Gostaria de criar um comando mais simples do que eu montei.
partindo da seguinte ideia:

"Espécie A "
Corte 3
Matriz 1
Corte futuro 1

No caso apenas gostaria de alterar nela, o número de vezes que se repetem sem sobrepor umas as outras.

irá gerar:

Espécie A Corte
Espécie A Corte
Espécie A Corte
Espécie A matriz
Espécie A Corte Futuro

A forma como eu criei,tenho que informar a primeira e última linhas e isso está sendo muito trabalhoso.
For Cont = 1 To 3
ActiveCell.Value = "Espécie A"
ActiveCell.Offset(1, 0).Select
ActiveCell.Offset(-1, 1) = "Corte "

Obrigado

Re: Como Repetir critérios de acordo com o número indicado?

Enviado: 02 Mar 2017 às 18:31
por osvaldomp
victor2 escreveu: No caso apenas gostaria de alterar nela, o número de vezes que se repetem sem sobrepor umas as outras.
O código abaixo produz resultado igual ao seu código. Veja se ajuda.

Código: Selecionar todos
Sub botão_ClickV2()
 Dim Cont As Integer
  With Sheets("Planilha2")
   
   Cont = 4
    .Cells(Rows.Count, 1).End(3)(2).Resize(Cont, 2).Value = [{"Espécie A","Corte Futuro"}]
   
   Cont = 31
    .Cells(Rows.Count, 1).End(3)(2).Resize(Cont, 2).Value = [{"Espécie A","Exploração"}]

   Cont = 7
    .Cells(Rows.Count, 1).End(3)(2).Resize(Cont, 2).Value = [{"Espécie A","matriz"}]

   Cont = 1
    .Cells(Rows.Count, 1).End(3)(2).Resize(Cont, 2).Value = [{"Espécie B","Corte Futuro"}]

   Cont = 2
    .Cells(Rows.Count, 1).End(3)(2).Resize(Cont, 2).Value = [{"Espécie B","Exploração"}]

   Cont = 7
    .Cells(Rows.Count, 1).End(3)(2).Resize(Cont, 2).Value = [{"Espécie B","matriz"}]

   Cont = 1
    .Cells(Rows.Count, 1).End(3)(2).Resize(Cont, 2).Value = [{"Espécie C","Corte Futuro"}]

   Cont = 2
    .Cells(Rows.Count, 1).End(3)(2).Resize(Cont, 2).Value = [{"Espécie C","Exploração"}]
 
 End With
End Sub

Opcionalmente você pode colocar os textos e as respectivas quantidades de repetições desejadas em um intervalo da planilha e preparar um código que busque as informações nesse intervalo, assim você não precisará mexer no código nos casos de alteração/inclusão/exclusão de algum texto ou alteração em alguma repetição.
ex:
col M...................col N..................col O
Espécie A...........Corte.....................3
Espécie B...........matriz..................15

Como Repetir critérios de acordo com o número indicado?

Enviado: 03 Mar 2017 às 13:21
por victor2
Muito obrigado! era isso mesmo ! :D