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
  • Avatar do usuário
Avatar do usuário
Por GENECI
Avatar
#10974
Boa tarde!

Tenho a seguinte dúvida.

Na célula N2 tenho o número 54, na célula N2 vou substituir o número 54 pelo número 914.
Necessito que o número 54 seja movido para a célula a esquerda M2 e o número 914 permaneça.
Após vou substituir o número 914 pelo número 5670.
Então o número 54 será movido para a L2, e o número 54 passa para a célula M2 e o número 5670 fica na célula N2.
Até chegar na célula C1.
E assim segue digitando sempre na célula N2 o número desejado e movendo para a esquerda até a quantidade de 12 números digitados e substituídos na célula N12.
Em outras palavras vou digitar sempre na célula N12 e quando teclar enter o valor digitado anterior fica registrado na célula a esquerda até a quantidade de 12 números.
Que corresponde 12 meses.


Obrigado - GENECI.
Avatar do usuário
Por Parkeless
Posts Avatar
#10976
Olá Geneci!

Qual é o seu objetivo final, facilitar o preenchimento de dados em uma planilha? Consegue postar um modelo?

Dependendo do que você tiver em mente, mover os dados para a esquerda pode não ser a melhor opção...
Avatar do usuário
Por Parkeless
Posts Avatar
#11051
Segue... código na worksheet, não em um módulo:
Código: Selecionar todos
Public IsMacro As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)
Dim NewInserção
Dim OldInserção
Dim PrimeiroDado As Range
Dim i As Long

If IsMacro = True Then: Exit Sub
If Target.Address <> "$N$2" Then: Exit Sub
If Target = "" Then: Exit Sub



IsMacro = True
Application.ScreenUpdating = False
NewInserção = Target.Value

Application.Undo

OldInserção = Target.Value
'Target.Value = NewInserção

'Identificar primeira coluna preenchida
For i = 3 To 14 'colunas C até N
    If Cells(2, i) <> "" Then
        Set PrimeiroDado = Cells(2, i)
        Exit For
    End If
Next i

If PrimeiroDado Is Nothing Then: Set PrimeiroDado = Range("N2")

Range(PrimeiroDado, Range("N2")).Copy
PrimeiroDado.Offset(0, -1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Application.CutCopyMode = False

Range("N2") = NewInserção

Range("N2").Activate

IsMacro = False
Application.ScreenUpdating = True

End Sub

Anexa aplicação.
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