Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
#59499
Bom dia.

O Sr. Osvaldo atentamente desenvolveu o código VBA, para resolver um problema anterior.

Solicito a sua ajuda, para alterar o código de acordo com explicação no arquivo anexo.

Grato - Geneci.
Você não está autorizado a ver ou baixar esse anexo.
#59503
Olá, Geneci.

Veja se ajuda. Instale os códigos abaixo conforme indicado na primeira linha.
Código: Selecionar todos
'módulo da Planilha1 em substituição ao código atual
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Count > 1 Then Exit Sub
 If Intersect([C1:C1000], Target) Is Nothing Or Target.Value <> 0 Then Exit Sub
 Target.Resize(, 19).Cut Sheets("destino").Cells(Target.Row, 3)
 Sheets("destino").Cells(Target.Row, 4) = Date
End Sub
Código: Selecionar todos
'módulo da planilha destino
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Count > 1 Then Exit Sub
 If Intersect([C1:C1000], Target) Is Nothing Or Target.Value <> 0 Then Exit Sub
 Target.Resize(, 19).Cut Sheets("Planilha1").Cells(Target.Row, 3)
 Sheets("Planilha1").Cells(Target.Row, 4) = Date
End Sub
Esta parte ~~~> " ... com a data da célula coluna D, alterada sempre para o mês atual." ~~~> considerei a data do dia, no entanto se você quiser alterar somente o mês então informe, por exemplo, se a data que estiver na planilha destino for 15/08/20 qual será a data ao colar na Planilha1.
#59506
Bom dia, Osvaldo.

Muito obrigado por atender a minha solicitação.

Não me fiz entender, é praticamente isso.

A data da planilha1 movida para a planilha Destino permanece.
Na planilha Destino quando mover a linha para a planilha1, substituir a data pela data do sistema.
E reorganizar as duas planilhas.

Grato - Geneci.
#59507
GENECI escreveu: A data da planilha1 movida para a planilha Destino permanece.
Ok, por favor, remova este comando do primeiro código ~~~> Sheets("destino").Cells(Target.Row, 4) = Date

Na planilha Destino quando mover a linha para a planilha1, substituir a data pela data do sistema.
Ok, o código que passei faz isso.

E reorganizar as duas planilhas.
O que você quer dizer com "reorganizar" ?
#59508
'módulo da Planilha1 em substituição ao código atual
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect([C1:C1000], Target) Is Nothing Or Target.Value <> 0 Then Exit Sub
Target.Resize(, 19).Cut Sheets("destino").Cells(Target.Row, 3)
End Sub

O código acima funcionou.
Reorganizar é mover desde a linha excluída, ficando ambas as planilhas com aspecto limpo.

Exemplo desorganizado.
XXXXXXX

XXXXXXX
XXXXXXX


Exemplo organizado.
XXXXXXX
XXXXXXX
XXXXXXX

Grato - Geneci.
#59511
Olá, Geneci.
Substitua os códigos anteriores por estes abaixo.
Código: Selecionar todos
'módulo da Planilha1
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim v As Long
  If Target.Count > 1 Then Exit Sub
  If Intersect([C1:C1000], Target) Is Nothing Or Target.Value <> 0 Then Exit Sub
  Target.Resize(, 19).Cut Sheets("destino").Cells(Target.Row, 3)
  For v = Cells(Rows.Count, 4).End(3).Row - 1 To 1 Step -1
   If Cells(v, 4) = "" Then Rows(v).Delete
  Next v
  With Sheets("destino")
   For v = .Cells(Rows.Count, 4).End(3).Row - 1 To 1 Step -1
    If .Cells(v, 4) = "" Then .Rows(v).Delete
   Next v
  End With
End Sub
Código: Selecionar todos
'módulo da planilha destino
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim v As Long
  If Target.Count > 1 Then Exit Sub
  If Intersect([C1:C1000], Target) Is Nothing Or Target.Value <> 0 Then Exit Sub
  Target.Resize(, 19).Cut Sheets("Planilha1").Cells(Target.Row, 3)
  Sheets("Planilha1").Cells(Target.Row, 4) = Date
  For v = Cells(Rows.Count, 4).End(3).Row - 1 To 1 Step -1
   If Cells(v, 4) = "" Then Rows(v).Delete
  Next v
  With Sheets("Planilha1")
   For v = .Cells(Rows.Count, 4).End(3).Row - 1 To 1 Step -1
    If .Cells(v, 4) = "" Then .Rows(v).Delete
   Next v
  End With
End Sub
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord