-
Posts
309 -
Cadastrado em
-
Última visita
Tópicos solucionados
-
O post de Scofieldgyn em Contador mediante células preenchidas. foi marcado como solução
@GENECIOFICIAL
veja se atende:
Sub VerificarPreenchimento() Dim ws As Worksheet Dim linha As Long, col As Long Dim preenchido As Boolean Dim ultimaLinha As Long Dim contadorItem As Long Set ws = ThisWorkbook.Sheets("Planilha1") 'importante não esquece de colocar o nome correto da guia contadorItem = 1 ultimaLinha = ws.Cells(ws.Rows.Count, 2).End(xlUp).Row For col = 3 To 7 ' C até G ultimaLinha = Application.WorksheetFunction.Max(ultimaLinha, ws.Cells(ws.Rows.Count, col).End(xlUp).Row) Next col For linha = 1 To ultimaLinha preenchido = True For col = 2 To 7 If Trim(ws.Cells(linha, col).Value) = "" Then preenchido = False Exit For End If Next col If preenchido Then ws.Cells(linha, 1).Value = "Item " & contadorItem contadorItem = contadorItem + 1 Else ws.Cells(linha, 1).Value = "Pendente" End If Next linha End Sub
-
O post de Scofieldgyn em Efetuar pesquisa no vba, na mesma coluna de informações. foi marcado como solução
@GENECIOFICIAL
segue:
Private Sub Worksheet_Change(ByVal Target As Range) Dim termoBusca As String Dim i As Long, j As Long Dim ultimaLinha As Long, ultimaLinhaBackup As Long Dim nomesOriginais As Variant Dim ws As Worksheet Set ws = Me If Not Intersect(Target, ws.Range("A2")) Is Nothing Then Application.EnableEvents = False Application.ScreenUpdating = False termoBusca = Trim(ws.Range("A2").Value) ultimaLinha = ws.Cells(99, 1).End(xlUp).Row If ultimaLinha < 4 Then GoTo Finalizar If termoBusca <> "" Then ws.Range("A4:A" & ultimaLinha).Copy ws.Range("A100").PasteSpecial xlPasteValues Application.CutCopyMode = False ws.Range("A4:A" & ultimaLinha).ClearContents ultimaLinhaBackup = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row nomesOriginais = ws.Range("A100:A" & ultimaLinhaBackup).Value j = 4 For i = 1 To UBound(nomesOriginais, 1) If LCase(nomesOriginais(i, 1)) Like "*" & LCase(termoBusca) & "*" Then ws.Cells(j, 1).Value = nomesOriginais(i, 1) j = j + 1 End If Next i Else ultimaLinhaBackup = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row If ultimaLinhaBackup >= 100 Then nomesOriginais = ws.Range("A100:A" & ultimaLinhaBackup).Value ws.Range("A4:A" & ws.Rows.Count).ClearContents ws.Range("A4").Resize(UBound(nomesOriginais, 1), 1).Value = nomesOriginais ws.Range("A100:A" & ultimaLinhaBackup).ClearContents End If End If ws.Range("A3").Select Finalizar: Application.ScreenUpdating = True Application.EnableEvents = True End If End Sub
-
O post de Scofieldgyn em Formula Excel automática Mês e Ano foi marcado como solução
Segue uma fórmula funcional dinâmica que pode ser arrastada horizontal e verticalmente.
=SOMARPRODUTO(($C$22:$C$41=B$2) * (ÍNDICE($D$22:$O$41; ; CORRESP($A3; $D$21:$O$21; 0))))
-
O post de Scofieldgyn em Contar linhas entre determinadas palavras no excel foi marcado como solução
@Janilson Brito
crie um módulo e cole o código abaixo.
depois é só executar ALT+F8
Sub ContarLinhasEntreSchedules() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("Planilha2") Dim lastRow As Long lastRow = ws.Cells(ws.Rows.count, "A").End(xlUp).Row Dim i As Long i = 1 Do While i <= lastRow If InStr(1, ws.Cells(i, 1).Value, "SCHEDULE", vbTextCompare) > 0 Then Dim count As Long count = 0 Dim j As Long j = i + 1 Do While j <= lastRow And InStr(1, ws.Cells(j, 1).Value, "SCHEDULE", vbTextCompare) = 0 count = count + 1 j = j + 1 Loop ws.Cells(i, 2).Value = count End If i = i + 1 Loop MsgBox "Contagem concluída!", vbInformation End Sub
-
O post de Scofieldgyn em powerbi - demonstração de valores inversos foi marcado como solução
@MASTER Segue em anexo conforme pediu.
Lembrando que você deve trabalhar com medidas explicitas pra criar os indicadores desejados, sem elas é impossível desevolver qualquer visual dinâmico e assertivo.
ON TIME DELIVERY_Atualizado.7z
-
O post de Scofieldgyn em Contra e retornar a data da última sexta-feira do mês. foi marcado como solução
@GENECIOFICIAL
Meu jovem, não é muito elegante dizer Resposta errada, basta dizer que não atendeu o que esperava.
veja se te atende:
="Mês com "& SOMARPRODUTO(--(DIA.DA.SEMANA(DATA(ANO(A1);MÊS(A1);LIN(INDIRETO("1:"&DIA(DATA(ANO(A1);MÊS(A1)+1;0)))));2)=5)) &" sextas-feiras - última dia "& TEXTO(DATA(ANO(A1);MÊS(A1)+1;0)-MOD(DIA.DA.SEMANA(DATA(ANO(A1);MÊS(A1)+1;0))+1;7);"dd/mm/aaaa") &"."
-
O post de Scofieldgyn em vencimento em branco quando não houver foi marcado como solução
@Tentartente a fórmula abaixo.
1º Opção =SE(A2>1;DATAM(A2;6);"") 2º Opção =SE(A2<>"";DATAM(A2;6);"")
-
O post de Scofieldgyn em é possível colocar os nomes dos meses do ano e outros dados no gráfico ? foi marcado como solução
@LucasExcel
Uma forma simples é, você trabalhar com o Filtro Segmentação de Dados, nele é possível filtrar todos os gráficos/tabelas ou apenas parte deles.
Aqui um link pra você ir aprendendo como fazer, mas tem infinitos exemplos na internet, sugiro ir no youtube que há vídeos com passo a passo bem tranquilo de aprender.
Usar segmentação, linhas do tempo e Gráficos Dinâmicos
-
O post de Scofieldgyn em Formula SE em duas planilhas diferentes? Ou outra formula? foi marcado como solução
@Regilson Abílio
Segue fórmula, copie e cole na sua planilha controle.
=SEERRO(SE(PROCV(B2;'[Base de dados.xlsx]Planilha1'!$D:$D;1;0)>1;"Ok");"")
-
O post de Scofieldgyn em preciso procurar valor que podem estar repetidos na planilha de dados foi marcado como solução
@João da Rafa Havia anexado sua planilha inicial, segue novamente já com as alterações mencioanadas.
Ajuda (1).xlsx
-
O post de Scofieldgyn em Gráfico de combinação erro foi marcado como solução
@Revolucao
Você gostaria de um modelo assim?
nesse caso, você deverá mudar o layout da sua tabela, para cada mês ele precisa entender qual é a meta, para que consiga fazer combinação de Meta vs Realizado.
nesse site, ensina o passo a passo como fazer conforme eu fiz na imagem.
https://excel24horas.com.br/como-montar-grafico-de-meta-e-resultado-no-excel/#:~:text=Assim que abrir a janela,e os Resultados em Linhas.
-
O post de Scofieldgyn em preenchimento horas automaticas excel foi marcado como solução
@RAIMUNDO LIMA DE ARAUJO
Desculpe, estava com muita coisa do trabalho acumulado, só agora consegui analisar sua planilha.
Fiz algumas modificações, porém fiquei intrigado com essa explicação sua onde o exemplo das 23:35 a 08:40, a coluna 1 retornar 07:40, não achei muito sentido, esse valor será fixo? Porque se for dinâmico, não deveria repetir a entrada que seria as 23:35 conforme exemplo?
23:35 a 08:40 EXEMPLO
35% (coluna 1:retornar horario de entrada 23:35 coluna 2:retorna o horario de saida 08:40)
extra diurna 80% (FICA VAZIO)
extra noturna 80% (coluna 1:retornar 07:40 coluna 2:retornar o horario de saida 08:40
copia folha ponto.xlsx
-
O post de Scofieldgyn em Fórmula de data - Erro ao mudar de aba foi marcado como solução
@ppeterk
Tente acrescentar na sua formula o D1, na primeira fórmula coluna [D] na frente do nome.arquivo e depois só arrastar a fórmula.
Ex:
=COL()-3&CARACT(10)&TEXTO(DATA(DIREITA(DIREITA(CÉL("nome.arquivo";D1);NÚM.CARACT(CÉL("nome.arquivo";D1))-LOCALIZAR("]";CÉL("nome.arquivo";D1)));4);MÊS(1&ESQUERDA(DIREITA(CÉL("nome.arquivo";D1);NÚM.CARACT(CÉL("nome.arquivo";D1))-LOCALIZAR("]";CÉL("nome.arquivo";D1)));LOCALIZAR(" ";DIREITA(CÉL("nome.arquivo";D1);NÚM.CARACT(CÉL("nome.arquivo";D1))-LOCALIZAR("]";CÉL("nome.arquivo";D1))))-1));COL()-3);"dddd")
-
O post de Scofieldgyn em Erro com execução Send keys foi marcado como solução
@xandymarinho
segue:
adicionei um limpar na planilha 3 Range("G44:P") antes da macro ser executada ok.
Private Sub Worksheet_Change(ByVal Target As Range) Dim UltLin As Long Application.ScreenUpdating = False Application.EnableEvents = True If Not Intersect(Target, Range("A4")) Is Nothing Then Planilha3.Select UltLin = Cells(Rows.Count, "G").End(xlUp).Row Planilha3.Range("G44:P" & UltLin).ClearContents Planilha2.Select UltLin = Cells(Rows.Count, "K").End(xlUp).Row Planilha2.Range("K4:T" & UltLin).Copy Planilha3.Range("G44").PasteSpecial (xlPasteValues) Application.CutCopyMode = False Planilha3.Select PivotTables("Tabela dinâmica2").PivotCache.Refresh Application.ScreenUpdating = True End If End Sub
-
O post de Scofieldgyn em Formatação condicional em texto específico foi marcado como solução
@riberex00
seria isso?
-
O post de Scofieldgyn em Ordem numérica crescente de varias células foi marcado como solução
@GENECIOFICIAL
Verdade, não me atentei a esse detalhe, segue fórmula corrigida.
=SEERRO(MENOR($A2:$F2;1);"")&" "&SEERRO(MENOR($A2:$F2;2);"")&" "&SEERRO(MENOR($A2:$F2;3);"")&" "&SEERRO(MENOR($A2:$F2;4);"")&" "&SEERRO(MENOR($A2:$F2;5);"")&" "&SEERRO(MENOR($A2:$F2;6);"")
-
O post de Scofieldgyn em Calcular com horas e dias foi marcado como solução
@Revolucao
Pra que a fórmula te atenda, vai ter que converter as horas em números inteiros.
=C3+D3+QUOCIENTE(E3+F3;8)&" dias"& " e "& (((E3+F3)/8)-QUOCIENTE(E3+F3;8))*8&" horas"
-
O post de Scofieldgyn em ao salvar o arquivo atera o nome foi marcado como solução
@GENECIOFICIAL
veja se te atende:
obs.: Considerando que o dia 16/12 é o marco zero, na celua [B2] insira essa fórmula para que o código funcione.
Sub RenameExport() Dim NomArq As String Dim vbCom As Object Application.ScreenUpdating = False Application.DisplayAlerts = False NomArq = ("Codigo ") & [B2] & " - " & Format(Now, "dd-mm-yyyy") 'Na célula [B2] Cole a fórmula ="Rev "&SE(HOJE()+1-A2<10;"0"&HOJE()+1-A2;HOJE()+1-A2) ActiveWorkbook.Activate stArqName = "C:\Users\Usuario\" & NomArq & ".xlsx" 'Não esqueça de definir o endereço para o local que o arquivo será salvo ActiveWorkbook.SaveAs Filename:=stArqName _ , FileFormat:=51, CreateBackup:=False ActiveWorkbook.Activate ActiveWorkbook.Save Planilha1.Select Application.DisplayAlerts = True Application.ScreenUpdating = True MsgBox "Arquivo Salvo com Sucesso", vbInformation End Sub
-
O post de Scofieldgyn em vba - como copiar varias colunas com filtro vba foi marcado como solução
@isabela queiroz
elaborei esse código pra copiar apenas de uma coluna, mas caso queira copiar várias colunas, terá que fazer uma array.
agora é só adpatar a sua necessidade.
Sub CopiarDadosFiltrados() Dim ul As Long Planilha1.[A1].Select If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData End If On Error Resume Next With ActiveSheet.Range("G1:G" & Planilha1.UsedRange.Rows.Count) .AutoFilter Field:=7, Criteria1:="T17", Operator:=xlAnd End With ul = ActiveSheet.Range("G" & Rows.Count).End(xlUp).Row ActiveSheet.Range("G2:G" & ul).Select: Selection.Copy Planilha2.[A2] Planilha1.Select If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData End If Application.CutCopyMode = False End Sub
-
O post de Scofieldgyn em VBA - Usando dicionário Excel foi marcado como solução
@isabela queiroz
segue:
Sub PesquisarValores() Dim UL As Long, Cust As Long, rtaqui As Long Dim Col As Variant Cust = Rows(2).Find("Customer").Column rtaqui = Rows(2).Find("Retornar aqui").Column UL = Cells(Cells.Rows.Count, Cust).End(xlUp).Row Range("B3:B" & Cust).ClearContents For inicio = 3 To UL Col = Cells(inicio, Cust).Value resultado_procv = Application.VLookup(Col, Sheets("Sheet2").Range("A:B"), 2, False) If IsError(resultado_procv) Then Cells(inicio, rtaqui).Value = "Not found" Else Cells(inicio, rtaqui).Value = resultado_procv End If Next inicio Call ColorirCélula End Sub Sub ColorirCélula() Dim xRg As Range Dim xFRg As Range Dim xStrAddress As String Dim xVrt As Variant xVrt = "Not Found" If xVrt <> "" Then Set xFRg = ActiveSheet.Cells.Find(what:=xVrt) If xFRg Is Nothing Then MsgBox prompt:="Valor não encontrado" & vbOK Exit Sub End If xStrAddress = xFRg.Address Set xRg = xFRg Do Set xFRg = ActiveSheet.Cells.FindNext(After:=xFRg) Set xRg = Application.Union(xRg, xFRg) Loop Until xFRg.Address = xStrAddress If xRg.Count > 0 Then xRg.Interior.ColorIndex = 23 End If End If End Sub
-
O post de Scofieldgyn em VBA - como fazer uma condiçao com mais de um criterio "ou" - excel foi marcado como solução
@isabela queiroz Entendi, veja se te atende, talvez outros colegas tenha sugestões melhores que a minha.
Sub Macro1() ' Dim linha As Integer linha = 3 Do While linha >= 3 And Cells(linha, 9) <> "" If Cells(linha, 9) = "Qualified" Or Cells(linha, 9) = "Obsolete" Or Cells(linha, 9) = "LTB" Then Cells(linha, 4) = "Active" Else Cells(linha, 4) = "Inactive" End If linha = linha + 1 Loop End Sub
-
O post de Scofieldgyn em Cálculo de meses e dias entre datas foi marcado como solução
@Fred Oliveira Tentar assim.
=SEERRO(("Faltam "&DATADIF(HOJE();A2;"M")&" Meses");"")&" e"&" "&DATADIF(HOJE();A2;"D")-DATADIF(HOJE();A2;"M")*30&" Dias"
-
O post de Scofieldgyn em copia e transferir dados vba foi marcado como solução
@RAIMUNDO LIMA DE ARAUJO
Teste agora...
PLANILHA ORINAL APOS CONVERTER PDF PARA EXCEL (1).rar
-
O post de Scofieldgyn em Excel - Informações de "Prazo" em cronograma a partir das datas foi marcado como solução
@Vágner Braga Levando em consideração as colunas K e L como inicio e fim, a fórmula ficaria assim:
=SE(E(K17="";L17="");"";SE(Dashboard!$A13="";"";SE(E(Dashboard!$K17>0;Dashboard!$L17>0);SE(E(Dashboard!$K17<=Dashboard!$J17;Dashboard!$L17<=Dashboard!$J17);"No Prazo";"Em Atraso");SE(HOJE()<=Dashboard!$J17;"No Prazo";"Em Atraso"))))
-
O post de Scofieldgyn em Formatação condicional de uma célula dependendo de outra célula. foi marcado como solução
A fórmula que você incluiu está errada, o parêntes no final deveria ficar depois do numeral 6.
mas de toda forma segue em anexo.
FORMAT-COND-DEPEN DE OUTRA CÉLULA.xlsx
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais