Notifications
Clear all

2 ranges dentro do With

7 Posts
2 Usuários
0 Reactions
1,117 Visualizações
(@vonzuben)
Posts: 549
Prominent Member
Topic starter
 

Boa tarde !

If Range("Q" & Linha).Value = "OFF" Then
  
        With Range("S12")
            .FormulaLocal = "aqui vai a formula"
        End With

       With Range("T12")
            .FormulaLocal = "aqui vai outra formula"
        End With
      
  End If

Para colocar 2 ranges dentro do With seria assim ?

Obrigado !

 
Postado : 16/11/2016 10:27 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Eu não sei o que você quer fazer, mas se isolar a primeira e ultima linha dentro da sub e considerar sua pergunta, sim!!!

Sub Ateste()
' -->If Range("Q1:Q20").Value = "OFF" Then
        With Range("S12")
            .FormulaLocal = "aqui vai a formula"
        End With

        With Range("T12")
            .FormulaLocal = "aqui vai outra formula"
        End With
  '-->End If
End Sub

Se puder explicar melhor melhor o que pretende.

Att

 
Postado : 16/11/2016 10:41 am
(@vonzuben)
Posts: 549
Prominent Member
Topic starter
 

Ah sim, estará dentro da sub sim !

Então está certo que eu vou fazer !
Range("Q" & Linha) é que vou inserir linha e deletar linha como uma macro que vou fazer.

Qual a função do With ?

 
Postado : 16/11/2016 11:05 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Mande sua rotina por completo e explique o que pretende fazer.

Att

 
Postado : 16/11/2016 11:41 am
(@vonzuben)
Posts: 549
Prominent Member
Topic starter
 

Deu certo !

Só queria saber a função do With

 
Postado : 16/11/2016 3:03 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Olá. With não é uma função.
É uma forma de abreviar código nas linha seguintes, tornando mais fácil a leitura.

With activeworkbook.Worksheets("Plan1")
    .Range("A1").value = "TEste"
    with .Range("A2")
        .interior.colorindex = 3
        .value = "vermelho"
        .font.bold = true
    End With
End With

Perceba que se não fosse o With, o código ficaria assim:

    activeworkbook.Worksheets("Plan1").Range("A1").value = "TEste"
    activeworkbook.Worksheets("Plan1").Range("A2").interior.colorindex = 3
    activeworkbook.Worksheets("Plan1").Range("A2").value = "vermelho"
    activeworkbook.Worksheets("Plan1").Range("A2").font.bold = true

O primeiro código é mais limpo e inclusive alguns nano ou micro segundos mais rápido...

 
Postado : 16/11/2016 6:33 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

E para mencionar 2 ranges dentro de 1 range, é assim:
Range("A1,B1").value = "sei la"

usar o dois pontos indica um intervalo, que é um range só. Colocar a vírgula permite colocar múltiplos ranges dentro de um range....

 
Postado : 16/11/2016 6:45 pm