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
Por Angra
Posts Avatar
#30722
Bom dia
Na verdade são dois pedidos:
1º Como aumentar ou diminuir a largura da coluna ou linha com macro. Informando a nova medida dentro da macro.

2º Copiar valores de um intervalo (B) para outro intervalo (A) , de modo que os valores gravados anteriormente (intervalo A) não sejam sobrepostos ou excluídos pelo novos valores, oriundos do intervalo B.
:D
Você não está autorizado a ver ou baixar esse anexo.
#30727
Angra escreveu:Bom dia
Na verdade são dois pedidos:
1º Como aumentar ou diminuir a largura da coluna ou linha com macro. Informando a nova medida dentro da macro.

2º Copiar valores de um intervalo (B) para outro intervalo (A) , de modo que os valores gravados anteriormente (intervalo A) não sejam sobrepostos ou excluídos pelo novos valores, oriundos do intervalo B.
:D
Bom dia!!

Sobre o 1º Pedido, vc pode usar algo como isso. Nesse exemplo eu usei a Linha 1 e Coluna A
Código: Selecionar todos
Sub Tamanhos()

Dim AltLin As Double
Dim LarCol As Double

AltLin = InputBox("Altura da Linha", "Digite um valor")
        If StrPtr(AltLin) = 0 Then Exit Sub
        If AltLin = Null Then MsgBox ("Digite um valor")

LarCol = InputBox("Largura da Coluna", "Digite um valor")
        If StrPtr(LarCol) = 0 Then Exit Sub
        If LarCol = Null Then MsgBox ("Digite um valor")

    Rows("1:1").RowHeight = AltLin
    Columns("A:A").ColumnWidth = LarCol
End Sub
Sobre o 2º, eu realmente nao entendi o que deve acontecer com os dados
#30730
Angra escreveu:Bom dia
Na verdade são dois pedidos:
1º Como aumentar ou diminuir a largura da coluna ou linha com macro. Informando a nova medida dentro da macro.
Fonte ~~~> gravador de macros
Código: Selecionar todos
    Rows("56:56").RowHeight = 20
    Columns("H:H").ColumnWidth = 10
2º Copiar valores de um intervalo (B) para outro intervalo (A) , de modo que os valores gravados anteriormente (intervalo A) não sejam sobrepostos ou excluídos pelo novos valores, oriundos do intervalo B.
A cada operação de copiar/colar o intervalo B será mantido ou apagado? Se for mantido, basta fazer copiar/colar sempre.
Avatar do usuário
Por Angra
Posts Avatar
#30733
Respondendo aos questionamentos:

1º Copia os valores do intervalo B para o intervalo A. Os valores gravados anteriormente no intervalo A permanecem, não são sobrepostos ou excluídos pelo novos valores;

2º Valores do intervalo B, são deletados manualmente e depois de um tempo outros valores são digitados no intervalo;

3º A preocupação é sempre deixar os valores antigos (intervalo A) gravados permanentemente;

4º Quando da marcação de novos valores no intervalo B, eles não serão digitados na mesma posição de valores já existentes no intervalo A;

5º Uma ideia é copiar apenas o conteúdo da célula preenchida no intervalo B e colar no intervalo A, enfim...
#30737
Código: Selecionar todos
Sub ReplicaValoresFormatos()
 Dim b As Range
  For Each b In Range("AS8:AU46")
   If b.Value <> "" Then b.Copy b.Offset(, -29)
  Next b
End Sub
Código: Selecionar todos
Sub ReplicaValores()
 Dim b As Range
  For Each b In Range("AS8:AU46")
   If b.Value <> "" Then b.Offset(, -29).Value = b.Value
  Next b
End Sub
Avatar do usuário
Por Angra
Posts Avatar
#30742
Boa noite
Queria agradecer ao GladstoneD, a ajuda e pedir que fizesse uma pequena correção na macro, alterei essa linha:

LarCol = InputBox("Largura da Coluna", "Digite um valor")

para: LarCol = 30

A linha aumenta para 30

Precisava alterar a linha abaixo para fazer ela voltar para um outro valor (menor por exemplo) retirando a MsgBox e colocando o valor direto na linha, como na alteração acima.

If LarCol = Null Then MsgBox ("Digite um valor")

Por fim meu agradecimento ao osvaldomp, pela simplicidade da macro que atende com perfeição minha necessidade.

Vou esperar pela correção do GladstoneD, para dar o tópico como resolvido. Mas não sei como clicar duas vezes o agradecimento oficial do forum :lol:
#30767
Angra escreveu:Boa noite
Queria agradecer ao GladstoneD, a ajuda e pedir que fizesse uma pequena correção na macro, alterei essa linha:

LarCol = InputBox("Largura da Coluna", "Digite um valor")

para: LarCol = 30

A linha aumenta para 30

Precisava alterar a linha abaixo para fazer ela voltar para um outro valor (menor por exemplo) retirando a MsgBox e colocando o valor direto na linha, como na alteração acima.

If LarCol = Null Then MsgBox ("Digite um valor")

Por fim meu agradecimento ao osvaldomp, pela simplicidade da macro que atende com perfeição minha necessidade.

Vou esperar pela correção do GladstoneD, para dar o tópico como resolvido. Mas não sei como clicar duas vezes o agradecimento oficial do forum :lol:
Olá, desculpe. Estava em viagem.

Nao entendi bem. Vc quer que a macro defina um valor fixo pra coluna? Ou quer que ela leia um valor na celula?
Avatar do usuário
Por Angra
Posts Avatar
#30776
Vou aplicar dois valores, um vai aumentar a largura da linha(já implementado) e outro vai retornar a largura anterior, tudo isso no mesmo botão. Clicou a macro aumenta a largura para "x", clicou de novo, volta a largura informada. Como vou informar dentro da macro as duas medidas, (menor, maior)não preciso da MsgBox.
#30781
por Angra » 05 Mar 2018 às 16:07
... um vai aumentar a largura da linha(já implementado) ...

Largura se aplica à medida da coluna, para a medida da linha aplica-se altura.

Se a largura da coluna H for igual a 10 o código abaixo passará a largura daquela coluna para 50, se não, passará para 10.
Código: Selecionar todos
Sub AlteraLarguraColuna()
 Columns("H:H").ColumnWidth = IIf(Columns("H:H").ColumnWidth = 10, 50, 10)
End Sub
#30789
Aqui funciona corretamente! :P
Avatar do usuário
Por Angra
Posts Avatar
#30794
Testando a macro no note da minha amiga, dispara normal. :roll: Tanto cá como lá, uso o Office 2010.
Vou encerrar o tópico agradecendo ao GladstoneD e osvaldomp, pela contribuição e e nosso aprendizado. :D :D
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