Ir ao conteúdo
  • Cadastre-se

Wendell Menezes

Membro Pleno
  • Posts

    550
  • Cadastrado em

  • Última visita

  1. Oi amigo, não consigo, ficarei 3 semanas konge do meu PC . Clique com o botão direito no nome da sheet e depois em Exibir Codigo. Apague tudo o que tiver e coloque apenas o meu codigo e teste.
  2. Private Sub Worksheet_Change(ByVal Target As Range) Dim Cell As Range Dim r As Integer If Target.Address(False, False) = "B3" Then Range("A8:B506").ClearContents Else For Each Cell In Target If Cell.Row >= 8 And Cell.Column <= 2 Then With Sheets("Registo de horas") For r = 8 To .Range("AS6") If .Range("AT" & r) = "Pago" Then .Range("Q" & .Range("AS" & r)) = "Pago" .Range("R" & .Range("AS" & r)) = .Range("AU" & r) End If Next End With End If Next End If End Sub Cole o código acima no módulo da sheet "Consulta a um Piloto" As colunas "AV" e "AW" da sheet "Registo de horas" não são necessárias.
  3. Boa tarde, Segue planilha com exemplo, seria isso? Meu Excel está em inglês, então talvez seja necessário alterar o formato da data para mmmm/aaa no seu computador. Book1.xlsx
  4. Oi Angelo, Só para confirmar, você entende que o meu código é uma SUB comum que você deve adicionar à algum botão ou pressionar F5 com curso dentro do código para executar ele e ver o resultado? Fiquei com essa dúvida porque o seu exemplo abaixo é uma SUB vinculada ao evento de alteração da planilha. Ou seja, o VBA ativa a macro automaticamente quando você altera o valor de qualquer célula. Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("B3")) Is Nothing Then Range("A7:A506").ClearContents Range("B7:B506").ClearContents End If End Sub Você quer que o LOOP seja feito quando? Quando você ativá-lo manualmente (como eu pensei que era) ou quando você alterar alguma célula / coluna em particular (de forma automática)?
  5. O excel parece não aceitar essa combinação, mas você pode fazer isso de forma indireta. =UNICO(Y) na célula A1 Depois em B1, =ORDEM.EQ(X;A1#;0)
  6. Oi Angelo, Na minha versão o loop encontra "Pago" na célula AT9 e escreve "Pago" na célula Q1175. A sua versão encontra o mesmo "Pago" na célula AT9 e escreve "Pago" na célula AV9. Qual é o correto?
  7. Não sei se entendi bem, veja se seria algo assim; Sub LOOP_ANGELO() Dim r As Integer With Sheets("Registo de horas") For r = 8 To .Range("AS6") If .Range("AT" & r) = "Pago" Then .Range("Q" & .Range("AS" & r)) = "Pago" .Range("R" & .Range("AS" & r)) = .Range("AU" & r) End If Next End With End Sub
  8. Experimente essa versão: Private Sub Worksheet_Change(ByVal Target As Range) 'Por Wendell Dim Cell As Range For Each Cell In Target With Cell If .Column = 12 Then 'Coluna "L" Range("AY" & .Row).NumberFormat = "@" 'AY é Coluna VBA Range("AY" & .Row) = Range("AX" & .Row) 'AX é Coluna Fórmulas End If End With Next End Sub
  9. Clique com o botão direito no nome da aba -> Exibir Código e cole: Private Sub Worksheet_Calculate() On Error Resume Next Range(Range("AW25")) = "Ocupado" End Sub A macro será ativada toda vez que o Excel cálcular o resultado das fórmulas e irá colocar "Ocupado" no endereço da célula que estiver escrita em AW25.
  10. Bom dia, Veja se seria isso: Gastos mes ajuda.zip
  11. Presumindo que a linha com o SUBTOTAL não exista e tenha que ser criada: Sub SUBTOTAL() Dim r As Long Dim h As Byte r = 14 While Cells(r, 1) <> "" h = 1 While Cells(r, 4) = Cells(r + h, 4) h = h + 1 Wend Cells(r + h, 4).EntireRow.Insert Cells(r + h, 2) = "**SUBTOTAL" Cells(r + h, 9).Formula = "=SUBTOTAL(9,I" & r & ":I" & r + h - 1 & ")" If IsNumeric(Cells(r, 11).End(xlUp)) Then Cells(r + h, 11).Formula = "=K" & Cells(r + 1, 11).End(xlUp).Row & "-I" & r + h Else Cells(r + h, 11).Formula = "=I" & r + 1 End If r = r + h + 1 Wend End Sub
  12. Isso seria mais parecido com o que estava tentar fazer: Sub EnterCell() Dim Cell As Range For Each Cell In Plan1.Range("FO1:FZ5000") Cell.Select Cell.Value = Cell.Value Next End Sub
  13. Assim? Sub COLAR_VALORES() Plan1.Range("FO5:FZ5000").Value = Plan1.Range("FO5:FZ5000").Value End Sub
  14. Boa tarde, Não sei se entendi bem, A LR verifica qual é a últinha linha da planilha para então testar em cada uma delas se atende a condição necessária para converter para negativo. Se retornasse um número menor (ex: apenas a quantidade de linhas com "Cod2" ela não iria terminar de converter até o final e o código iria parar antes da hora.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...