Notifications
Clear all

macro para alterar valor

7 Posts
3 Usuários
0 Reactions
1,852 Visualizações
(@barison28)
Posts: 0
New Member
Topic starter
 

Boa tarde,

gente preciso de uma macro que em uma celula eu digito o horario e na outra celula eu digito valor.... tipo na celula a1 digito 10:00 e na celula a2 digito 300 ai as celulas apartir das 10:00 alteram com esse valor. e na celula a3 para alterar todas o valor de todos os horario...

a b
07:00 306
08:00 306
09:00 306
10:00 300
11:00 300
12:00 300
13:00 300
14:00 ...
15:00
16:00
17:00
18:00
19:00
20:00
21:00
22:00
23:00
00:00

esse é um exemplo depois eu altero as celulas da macro com a da minha planilha

 
Postado : 02/08/2017 3:12 pm
(@wzxnet7)
Posts: 0
New Member
 

Bom dia.
Não entendi.
Sugiro postar uma planilha com uma demonstração manual do resultado pretendido.

 
Postado : 03/08/2017 6:24 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Segue um exemplo.
Não testado!!

Sub AleVBA_25566()
Dim lr As Long
Dim rng As Range
Dim sh As Worksheet
Set sh = Plan1
lr = sh.Range("A" & Rows.Count).End(xlUp).Row
Set rng = sh.Range("A1:B" & lr)
   rng.Offset(1, rng.Columns.Count).Resize(lr - 1, 1) = "=IF(HOUR(A2)>=10,1,0)"
   rng.Offset(, rng.Columns.Count).Resize(lr - 1, 1).AutoFilter 1, 1
    For i = 2 To lr
        If Not Intersect(Range("B" & i), Range("B2:B" & lr).SpecialCells(xlCellTypeVisible)) Is Nothing Then
            Range("B" & i).Value = 300
        End If
    Next
   rng.AutoFilter
   rng.Offset(1, rng.Columns.Count).Resize(lr - 1, 1).ClearContents
End Sub

Att

 
Postado : 03/08/2017 7:20 am
(@barison28)
Posts: 0
New Member
Topic starter
 

Alexandre, não consegui, vou postar a planilha acho que fica melhor.... não tem um valor fixo para mudar pode ser qualquer valor...

 
Postado : 03/08/2017 8:02 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Tente isso.

Sub teste()
Application.ScreenUpdating = 0
    'Turno A
    For Each cCell In Range("C8:C15")
        cCell.Select
        If ActiveCell.Value > 0.41 Then
          ActiveCell.Offset(0, 2).Value = 300
        End If
    Next cCell
    'Turno B
    For Each cCell In Range("C20:C27")
        cCell.Select
        If ActiveCell.Value > 0.41 Then
          ActiveCell.Offset(0, 2).Value = 300
        End If
    Next cCell
    'Turno C
    For Each cCell In Range("C32:C39")
        cCell.Select
        If ActiveCell.Value > 0.41 Then
          ActiveCell.Offset(0, 2).Value = 300
        End If
    Next cCell
Application.ScreenUpdating = 1
End Sub

Att

 
Postado : 03/08/2017 9:43 am
(@barison28)
Posts: 0
New Member
Topic starter
 

Amigo é quase isso, mas o valor é independente pode ser, 300,250,350 não tem um valor fixo para alteração..

na celula K3 eu queria digitar o valor para alteração(pode ser qualquer valor)
e na celula K2 o horário

exemplo.....
K2 ===> 11:00
k3 ===> 306
os horário anterior as 11:00 permanece com a meta, exemplo, 328, e os horários apartir das 11:00 mudaria para 306.

 
Postado : 03/08/2017 11:23 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Desculpe eu não o que você pretende.

Caso você pretende alterar manualmente para qualquer valor porque simplesmente não digita nas células?

Ou então onde tem o valor em vermelho, ActiveCell.Offset(0, 2).Value = 300,troque para ActiveCell.Offset(0, 2).Value = xxx

Depois digite o valor que desejar.

Att

 
Postado : 03/08/2017 12:00 pm