Notifications
Clear all

Argumento de fórmula

4 Posts
2 Usuários
0 Reactions
637 Visualizações
(@arthuki)
Posts: 0
New Member
Topic starter
 

Olá amigos boa noite!
Sou novo no fórum e já tenho uma dúvida. Estou criando um programa em VBA e estou com dificuldades em uma parte.

Tenho uma coluna onde devo colocar uma formula [ cont.se(intervalo,"x") ] em todas as linhas dessa coluna, que é a ultima coluna de uma tabela que é montada de acordo com as opções do usuário. Esse intervalo que é o argumento da função é que me da problemas, pois deve ser composto pelas celulas anteriores na linha em que estiver injetando a formula.

Não estou conseguindo colocar o intervalo como argumento da função [CONT.SE]. O problema está nessa parte do código:

---------------------------------------------------------
Dim j As Integer

For j = 4 To 24
Range(Cells(j, 2), Cells(j, celulafinal - 1)).Select
ActiveWorkbook.Names.Add Name:="intervalo", RefersToR1C1:=Selection
Range(Cells(j, celulafinal)).FormulaLocal = "=CONT.SE(intervalo;""x"")"

Next j
---------------------------------------------------------

Espero que tenha dado para entender! Envio o arquivo em anexo

Muito obrigado

 
Postado : 31/05/2016 3:30 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Se entendi, troque pelas instruções abaixo:

Dim j As Integer

For j = 4 To 24

    Range(Cells(j, 2), Cells(j, celulafinal - 1)).Select
    
    'Armazenamos e definimos um nome para cada linha utilizando o nome + o num da linha
    '"intervalo_" & j
    rgName = "intervalo_" & j
    
    ActiveWorkbook.Names.Add Name:=rgName, RefersToR1C1:=Selection
    
    Cells(j, celulafinal).FormulaLocal = "=CONT.SE(" & rgName & " ;""x"")"
    
Next j

O problema é que estava criando os intervalos nomeados todos com o mesmo nome "intervalo" então só a última linha representava o intervalo.
Nas linhas acima, defini uma Variável "rgName" que armazena o nome definido "intervalo" incrementado pelo numero da linha referente a "j"

Se for isto, não esqueça de ajustar as outras instruções em que utiliza esta formula.

Antes, limpe todos os nomes definidos anteriormente, assim ficará mais limpo.

[]s

 
Postado : 31/05/2016 4:50 pm
(@arthuki)
Posts: 0
New Member
Topic starter
 

Acertou em cheio Mauro Coutinho!

Muito inteligente essa forma e junção da variavel do loop com uma string

Muito obrigado ajudou muito

 
Postado : 31/05/2016 5:39 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite arthuki

Seja bem-vindo ao fórum!

Com você é novato, ara facilitar a tua participação no fórum, sugiro tomar conhecimento do conteúdo dos links abaixo:
viewtopic.php?f=7&t=203
viewtopic.php?f=7&t=7903
viewtopic.php?f=7&t=3841
viewtopic.php?f=7&t=16757
viewtopic.php?f=7&t=12600
viewtopic.php?f=7&t=3371

[]s

Patropi - Moderador

 
Postado : 31/05/2016 6:09 pm