Página 1 de 1

Duvida Macro x VBA

Enviado: 10 Fev 2023 às 20:30
por Purre
Boa noite, podem me ajudar?

Eu estava estudando um pouco e cheguei no exemplo anexado, é possível resolver com MACRO? Com VBA ainda não consegui, mas acredito que seja possível.

Alguém consegue me auxiliar?
Basicamente, tenho clientes que recebem a cada x horas, mudando dependendo do cliente, mas preciso balancear para dividir durante o dia e não sobrecarregar determinado horário.

Re: Duvida Macro x VBA

Enviado: 11 Fev 2023 às 08:56
por osvaldomp
Olá.

Eu suponho que a tabela da direita existente na sua planilha seja o resultado desejado. É isso?

Se sim, para permitir o entendimento do que você deseja, seria oportuno que você explicasse na própria planilha a razão pela qual você colocou cada valor em cada célula de cada Cliente.

Re: Duvida Macro x VBA

Enviado: 11 Fev 2023 às 13:55
por Purre
Boa tarde!

Isso mesmo, da direita é o resultado pretendido! Perdão por não esclarecer.
Em relação aos números, são apenas p validar se terá entrega naquele horário ou não.


Anexei outra pra ficar mais claro..

Re: Duvida Macro x VBA

Enviado: 14 Fev 2023 às 08:31
por osvaldomp
Segue um palpite/chute pois as suas explicações pouco ajudaram.
Veja se aproveita.

Código: Selecionar todos
Sub MáxDuasEntregas()
 Dim k As Long, m As Long, arr
  If Application.CountIf([D13:H13], 3) = 0 And Application.CountIf([D13:H13], 0) = 0 Then Exit Sub
  For m = 4 To 8
   If Cells(13, m) = 3 Or Cells(13, m) = 0 Then
    For k = 10 To 12
     arr = Cells(k, 4).Resize(, 6).Value
     If Cells(k, 9) = 0 Then
      Cells(k, 4).Resize(, 5).Cut Cells(k, 5):  Cells(k, 4) = 0
     ElseIf Cells(k, 4) = 0 Then
      Cells(k, 5).Resize(, 5).Cut Cells(k, 4): Cells(k, 9) = 0
     End If
     If Application.CountIf([D13:H13], 3) = 0 And Application.CountIf([D13:H13], 0) = 0 Then Exit Sub
     Cells(k, 4).Resize(, 6).Value = arr
    Next k
   End If
  Next m
End Sub