Strogonoff
-
Total de itens
4 -
Registro em
-
Última visita
Posts postados por Strogonoff
-
-
Em 16/10/2020 em 14:30, Bruno_2020 disse:
Olá a todos ! Gostaria de uma imensa ajuda!
Eu recebo um arquivo no qual ele não organiza os tipos de Pausa dos vendedores numa mesma coluna (e sim e várias colunas chamadas "Pausa"), além de também não organizar a "Quantidade" e "Tempo" dessa pausa numa coluna só. As informações são inseridas ao longo de uma linha e eu gostaria que eles fossem organizados por colunas.
Vou colocar aqui como é e como eu gostaria que fosse:OPERADOR PAUSA QTD TEMPO PAUSA QTD TEMPO PAUSA QTD TEMPO PAUSA QTD TEMPO Nome 1 BANHEIRO 0 00:00:00 ALMOÇO 0 00:00:00 LANCHE 0 00:00:00 AMBULATÓRIO 0 00:00:00 Nome 2 BANHEIRO 0 00:00:00 ALMOÇO 0 00:00:00 LANCHE 0 00:00:00 AMBULATÓRIO 0 00:00:00 Nome 3 BANHEIRO 0 00:00:00 ALMOÇO 0 00:00:00 LANCHE 0 00:00:00 AMBULATÓRIO 0 00:00:00 Gostaria que a informação viesse por colunas: "OPERADOR", "PAUSA", "QUANTIDADE" E "TEMPO", repetindo o nome do vendedor várias vezes na Coluna A, pra que as informações dele venham nas colunas seguintes, e não inseridas em linhas:
OPERADOR PAUSA QUANTIDADE TEMPO
Nome 1 BANHEIRO 0 00:00:00
Nome 1 ALMOÇO 0 00:00:00
Nome 1 LANCHE 0 00:00:00
Nome 1 AMBULATÓRIO 0 00:00:00
Nome 2 BANHEIRO 0 00:00:00
Nome 2 ALMOÇO 0 00:00:00 ...E assim por diante.
O meu problema é que eu até consigo fazer a Coluna A me dar os vendedores ao transpor, mas quando faço isso na coluna B me vem tanto linhas de pausa, quanto quantidade e banheiro 😞
E como essa base sempre vem muitos vendedores e de forma variável, não sei como resolver isso ._.
Agradeço desde já aos que puderem me dar um help !boa noite !!!
Você precisará dessa macro que resolverá seus problemas
para que ela funcione, a celula A1 terá que estar a palavra operador, caso contrário, é so ajutar o range
segue a macro :
Sub SeparaPausa()
Dim W1 As Worksheet 'Declarando variável da primeira matriz
Dim W2 As Worksheet 'Declarando variável da segunda matriz
Dim iLinhaVendedor As Integer ' Variável que percorrerá as linhas dos vendedores
Dim iUltimaLinha As Integer ' Ultima linha da planilha destino
Dim bColunaMatriz As Byte ' varável que percorrerá as coluna da planilha destino
Dim bColunaCopia As Byte ' varável que percorrerá as colunas da cópia
'declarando as matrizes
Set W1 = Planilha1 ' matriz de origem dos dados
Set W2 = Planilha2 ' onde colocaremos os dados
' declarando variaveis
iLinhaVendedor = 2 ' a varredura começara na linha 2 da planilha1( a linha 1 é o cabeçalho)
iUltimaLinha = 2 ' a varredura começara na linha 2 da planilha2( a linha 1 é o cabeçalho)
' considerando que a planilha não seja zerada vamos localizar a última linha
While W2.Cells(iUltimaLinha, "A") <> "" 'loop para a ultima linha da planilha2
iUltimaLinha = iUltimaLinha + 1 'evitando loop eterno
Wend
' a cada 4 colunas vamos incrementar 1 linha
While W1.Cells(iLinhaVendedor, "A").Value <> "" ' loop para percorrer cada linha dos vendedores
W2.Cells(iUltimaLinha, "A").Value = W1.Cells(iLinhaVendedor, "A").Value ' grava o nome do vendedor
bColunaCopia = 2 'a copia começa na coluna B, na coluna A é o nome
bColunaMatriz = 2 ' idem, a coluna A é o nome
While W1.Cells(iLinhaVendedor, bColunaMatriz).Value <> "" ' loop para percorrer a coluna dos vendores e achar a palavra pausa do cabeçalho)
W2.Cells(iUltimaLinha, bColunaCopia).Value = W1.Cells(iLinhaVendedor, bColunaMatriz).Value 'copiando valor da planilha 1 para a planilha 3
If bColunaCopia = 4 Then 'aqui está a questão a cada 4 colunas precisamos mudar de linha,
bColunaCopia = 2 ' precisamos passar a coluna para B
W2.Cells(iUltimaLinha, "A").Value = W1.Cells(iLinhaVendedor, "A").Value ' copiar o nome do vendedor na col A
If bColunaMatriz < 13 Then ' precisamos verificar se está na ultima coluna da planilha1 para não gerar coluna em branco
iUltimaLinha = iUltimaLinha + 1 'incremento de linha
End If
Else
bColunaCopia = bColunaCopia + 1 ' incremento de coluna da panilha 3
End If
bColunaMatriz = bColunaMatriz + 1 ' íncrementa a coluna da planilha1
Wend
iUltimaLinha = iUltimaLinha + 1 ' incrementa a linha de destino
iLinhaVendedor = iLinhaVendedor + 1 ' incrementa a linha de vendedores (evita loop eterno)
Wend
End Sub
Espero que ajude
qualquer dúvida estou a disposição
-
19 horas atrás, silva_gs disse:
Olá a todos,
Primeiramente peço desculpas pela linguagem que vou utilizar neste post. Sou biomédico então tenho pouco domínio sobre a linguagem de programação. Estou com um problema no script de programação do meu arquivo VBA. Estou querendo gerar um código de identificação para as análises dos meus clientes e minha ideia é a seguinte:
Fazemos dois tipos de análises no laboratório, fisico-química e microbiológica. Para atender esta demanda, gerei dois CheckBox um com cada nome: Análises fisico-químicas; Análises microbiológicas; Em seguida, acrescentei dois TextBox na frente de casa CheckBox, para colocar o ID de cada análise de forma independente.
Estou conseguindo gerar o código, eu seleciono o CheckBox e o código é gerado porém, quando eu deseleciono o CheckBox, o código continua e não desaparece.
Estou precisando fazer com que ele suma, caso eu deselecione o CheckBox.
O script que estou usando para geração de código é:
Dim Y As Integer
Planilha2.Select
Planilha2.Range("A2").Select
Planilha2.Range("A2") = "0"
Range("A100000").End(xlUp).Offset(1, 0).Select
Y = Range("A100000").End(xlUp).Offset(0, 0).Value
Me.TextBox25 = Y + 1Como faço para desaparecer o código caso eu deselecione o CheckBox?
Obrigado pela atenção,
Gabriel
Gabriel, boa tarde!!!
a rotina que você postou é para a ultimha linha da planilha 2 da coluna A.
Eu costumo usar essa rotina
Private Sub CheckBox1_Click()
CheckBox1.Value = Falseseu código aqui....
End Subou..
Private Sub CheckBox1_Click()
call rotina()
End Subsub rotina()
UserForm1.CheckBox1.Value = False (ou o nome do formulário)
end sub
outra dica:
declare
Dim Ws as Worksheet
set Ws = Planilha2..
fica mais fácil para trabalhar para não ter que toda hora escrever planilha2..
espero ter ajudado..
caso ficou alguma dúvida, sugiro anexar uma planilha com o que precisa para devolvermos ela resolvida( crie uma pasta somente com a rotina que precisa...
abraço
-
Em 23/10/2020 em 16:25, Ronil disse:
Boa tarde pessoal! Sou pouco experiente em programar, derepente podem me dar um help, estou com dificuldade para encontrar um codigo vba, que eu consiga estando conectado em uma rede compartilhada, listar todas os arquivos e subpastas da pasta que esta compartilhada neste PC.
Alguém pode ajudar ?
Ronil
Boa tarde!
Não entendi sua pergunta, você tem arquivos do Excel compartilhado ou arquivos diversos, se entendi ao certo, você precisa habilitar uma pasta no seu Pc para compartilhamento e bloquear o restante ( o que o Napster ou Soulseek fazia), acredito que ficará mais simples para você se estivermos falando de compartilhamento de pasta.
se estivermos falando somente no excel, uma rotina simples para verificar o nome das planilhas dentro de uma pasta, ai você consegue ter um star para a rotina que você precisa.
Sub VerificaPlanilhas()
For Each Sheet In ActiveWorkbook.Sheets
MsgBox Sheet.Name
Next Sheet
End SubSeria isso?? Se não, peço para descrever um pouco melhor o que precisa para tentar ajudar.
Abraço
Erro em tempo de execução: -2147467259 (80004005): Erro não especificado
em VBA
Postado
Coloque o "Me. " antes do listbox 1 e cuidado...
as variaveis linhafinal e linha estão declaradas como variant e não como integer
você precisa declarar cada uma sem virgula
dim linhafinal as integer
dim x as integer