-
Posts
3.601 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que Midori postou
-
Python Python definir inputs diferentes
Midori respondeu ao tópico de GustavoT em Programação - outros
@GustavoT Com uma variável para a mensagem você trocar o texto na condição, p.ex, import random aleatorio = random.randint(1, 10) mensagem = 'Chute um número de 1 a 10: ' while True: chute = int(input(mensagem)) if aleatorio > chute: mensagem = 'chutou baixo\nTente outra vez: ' elif aleatorio < chute: mensagem = 'chutou alto\nTente outra vez: ' else: print('acertou') break -
Excel Levando informações de uma sheet a outra VBA
Midori respondeu ao tópico de Guilherme Stoduto em Microsoft Office e similares
@Guilherme Stoduto Você atribuiu a última linha da planilha Movimentações só uma vez, por isso sua macro sempre vai escrever nela. Então essa variável deve ser atualizada a medida que novos dados são acrescentados na planilha. Você pode fazer isso incrementando dentro do loop ult_linha1 = ult_linha1 + 1 ou movendo a atribuição que fez no início da Sub para o início do loop. -
Excel Levando informações de uma sheet a outra VBA
Midori respondeu ao tópico de Guilherme Stoduto em Microsoft Office e similares
@Guilherme Stoduto Seu código só escreve numa linha porque não está incrementando/atualizando a variável ult_linha1 -
Excel Abrir o arquivo entre os dias 09 e 12 de cada mês.
Midori respondeu ao tópico de GENECIOFICIAL em Microsoft Office e similares
O script pode ser assim, Dim Dia Dia = Day(Now()) If Dia >= 9 And Dia <= 12 Then Dim Excel Set Excel = CreateObject("Excel.Application") Excel.Visible = True Call Excel.Workbooks.Open("C:\TESTE\Teste.xlsx") End If Para criar a tarefa, no menu iniciar escreva Agendador de Tarefas. Escolha a opção Criar Tarefa Básica e siga os passos. -
Excel Abrir o arquivo entre os dias 09 e 12 de cada mês.
Midori respondeu ao tópico de GENECIOFICIAL em Microsoft Office e similares
O vbscript já vem com o Windows. Para criar o script é só salvar o código com a extensão vbs. -
Excel Abrir o arquivo entre os dias 09 e 12 de cada mês.
Midori respondeu ao tópico de GENECIOFICIAL em Microsoft Office e similares
O VBA roda no ambiente do Office, então teria que abrir algum documento/planilha, etc para executar a macro. Se quer abrir um arquivo ao efetuar o login, uma alternativa é com script (vbscript) onde terá os procedimentos para abrir o documento nesses dias. Aí você pode criar uma tarefa no sistema em Agendador de Tarefas para rodar o script diariamente ao ligar o computador. -
Excel A mesma mensagem para quatro dias
Midori respondeu ao tópico de GENECIOFICIAL em Microsoft Office e similares
Assim só vai mostar a mensagem no dia 20. Para testar esse intervalo a fórmula pode ter a função lógica E para verificar se o dia está entre 9 e 12. =SE(E(DIA($A$5)>=9;DIA($A$5)<=12); "Último dia para honrar seu compromisso!";"-") -
Python Python definir inputs diferentes
Midori respondeu ao tópico de GustavoT em Programação - outros
O chute e o número aleatório devem ser do mesmo tipo int. Seu loop não precisa ter um critério com a variável, é só deixar infinito (while True) para sair com break quando acertar, p.ex, if aleatorio > chute: print('chutou baixo') elif aleatorio < chute: print('chutou alto') else: print('acertou') break E para gerar um número entre 1 e 10 deve ser randint(1, 10) -
Para facilitar a resolução veja o aposento como um paralelepípedo e calcule a área pedida, É como @devair1010 comentou, são duas laterais e as opostas, então o cálculo é da área de 4 retângulos menos a porta.
-
Excel VBA - Auto ajuste de linha de célula mesclada
Midori respondeu ao tópico de Luciana Goes em Microsoft Office e similares
@Luciana Goes Se rodar o código passo a passo inspecionando as variáveis, verá que no evento da linha 6 o endereço de c será B11 e não B6. Isso por causa desta atribuição, Set c = Target.Cells(linha, 1) Target é a célula ativa e com Cells você pegar outro endereço deslocando a quantidade de linhas/colunas passada para a função. Na primeira linha não teve problema porque só passou linha = 1. Mas para a outra passou linha = 6 e assim atribuiu com o deslocamento para o endereço B11. Para resolver é só deixar Cells(1, 1) já que deve atribuir a primeira célula da mescla. -
Excel Planilha de Ordem de Serviço Automática
Midori respondeu ao tópico de Gabrielle Cordeiro em Microsoft Office e similares
@Gabrielle Cordeiro Como não há uma ordem que facilite a importação dos dados para a tabela, uma forma de pegar os dados é atribuindo cada campo. Fiz uma parte disso com cinco campos (veja os comentários da Sub Cadastra), você pode acrescentar os demais, Sub Atualiza() Dim Autorizacao As Worksheet Dim Pulverizacoes As Worksheet Set Autorizacao = Workbooks("exemplo 1.xlsx").Sheets("O.S") Set Pulverizacoes = Workbooks("exemplo 2.xlsx").Sheets("PULVERIZAÇÕES") If Pulverizacoes.[A7] = "" Then Call Cadastra(Autorizacao, Pulverizacoes.[A7]) Else Call Cadastra(Autorizacao, Pulverizacoes.[A6].End(xlDown).Offset(1)) End If End Sub Sub Cadastra(PlanAut As Worksheet, RefPulv As Range) RefPulv.Offset(0, 0) = PlanAut.[D6] 'Valvula RefPulv.Offset(0, 1) = PlanAut.[B6] 'Data RefPulv.Offset(0, 2) = PlanAut.[I11] 'Fase RefPulv.Offset(0, 3) = PlanAut.[A9] 'NC RefPulv.Offset(0, 4) = PlanAut.[B9] 'Produto End Sub As duas planilhas devem estar abertas. Considerei os nomes dos arquivos anexados, se for outro altere o nome no código. Veja que passo como argumento para a Sub Cadastra a última célula sem dado da coluna A como referência (a primeira linha da célula A que estiver em branco, a baixo de A6, vai receber os dados). A partir dela os dados serão colocados na tabela, p.ex, RefPulv.Offset(0, 4) = PlanAut.[B9] 'Produto Essa linha vai colocar na coluna E (deslocamento 4 a partir de A) da planilha Pulverizações o produto informado na célula B9 da planilha O.S -
Excel Porcentagem em tabela dinamica
Midori respondeu ao tópico de Clint Eastwood em Microsoft Office e similares
@maroth Com o botão direito na tabela selecione Mostrar Valores Como > % do Total de Colunas. Assim p.ex o 2°A vai ficar com 33,33% Não e 66,67% Sim. -
Excel Converter valores positivos em negativos com código VBA
Midori respondeu ao tópico de riberex00 em Microsoft Office e similares
@CARLOS A R SOUZA O código deve ter o critério que testa se a Categoria é Despesa ou Invest. E para resolver a questão de inverter o valor a cada execução, antes você pode verificar se o valor é positivo, p.ex, Sub Converte() Dim Categoria As Range Dim Valor As Range Set Categoria = [C2] While Categoria <> "" Set Valor = Categoria.Offset(0, 2) If Categoria = "Despesa" Or Categoria = "Invest" Then If Valor > 0 Then Valor = -Valor End If End If Set Categoria = Categoria.Offset(1) Wend End Sub -
Excel atualizar valores de produtos atraves do id
Midori respondeu ao tópico de Neodenn em Microsoft Office e similares
A macro pode fazer um loop na tabela com os dados atualizados e buscar o ID com Find, p.ex, Sub AtualizaBD() Dim CelulaBD As Range Dim IDProduto As Range For Each IDProduto In [A2:A19] Set CelulaBD = [F8:F12].Find( _ What:=IDProduto, _ LookIn:=xlValues, _ LookAt:=xlWhole) If Not CelulaBD Is Nothing Then CelulaBD.Offset(0, 1) = IDProduto.Offset(0, 1) End If Next IDProduto End Sub -
Excel Adicionar linha e mesclar células
Midori respondeu ao tópico de Miguelriedel em Microsoft Office e similares
No evento click do botão teste se os textbox foram preenchidos, aí é só passar esses dados para a planilha. Entendo que deve considerar um item preenchido quando tiver os três controles do mesmo grupo preenchidos. Para facilitar você pode padronizar o nome dos controles, p.ex, txtItem1, txtQtd1, txtValor1 txtItem2, txtQtd2, txtValor2 ... Assim poderá verificar o grupo com uma função, algo assim, Function ItemPreenchido(Item As Integer) As Boolean ItemPreenchido = _ Controls("txtItem" & Item) <> "" And _ Controls("txtQtd" & Item) <> "" And _ Controls("txtValor" & Item) <> "" End Function -
Excel Converter valores positivos em negativos com código VBA
Midori respondeu ao tópico de riberex00 em Microsoft Office e similares
Isso pode ser feito com fórmula em outra coluna auxiliar, p.ex, =SE(OU(C2="Despesa";C2="Invest");-E2;E2) -
Excel Planilha de Ordem de Serviço Automática
Midori respondeu ao tópico de Gabrielle Cordeiro em Microsoft Office e similares
@Gabrielle Cordeiro Normalmente esse tipo de automação é feita com macro do próprio Excel. Para facilitar anexe a planilha ou um modelo semelhante dela e mostre um exemplo de como deve ficar alguns dados. -
Word Código VBA para salvar folhas de ponto EM PDF, já agrupadas por FILIAL
Midori respondeu ao tópico de rosanezane em Microsoft Office e similares
A macro completa que salva em pdf e ajusta as linhas para evitar colocar dados de uma página em outra, A sub SalvaPDF está configurada para salvar os arquivos na pasta Downloads de User. Para rodar é preciso configurar a base de dados do Excel, pode ser selecionando a planilha no disco como comentei acima ou em Mailings > Select Recipients > Use a Existing List. Sub CopiaFormulario() Dim DocumentoFilial As Document Dim Base As MailMergeDataSource Dim Formulario As Range Dim Filial As String Dim FilialAnterior As String Dim Conta As Long Set Formulario = ThisDocument.Range Set Base = ThisDocument.MailMerge.DataSource Base.ActiveRecord = wdFirstRecord For Conta = 1 To Base.RecordCount Filial = Base.DataFields("FILIAL").Value If FilialAnterior <> Filial Then If Not DocumentoFilial Is Nothing Then Call SalvaPDF(FilialAnterior, DocumentoFilial) End If Documents.Add Set DocumentoFilial = ActiveDocument Else DocumentoFilial.Paragraphs.Add End If Formulario.Start = Formulario.GoTo(wdGoToPage, wdGoToAbsolute, , 1).Start Formulario.Copy DocumentoFilial.Range.Characters.Last.Paste With DocumentoFilial.Range.ParagraphFormat .SpaceAfter = 0 .LineUnitAfter = 0 End With Base.ActiveRecord = wdNextRecord FilialAnterior = Filial Next Conta If Not DocumentoFilial Is Nothing Then Call SalvaPDF(FilialAnterior, DocumentoFilial) End If End Sub Sub SalvaPDF(Nome As String, Documento As Document) Call Documento.ExportAsFixedFormat( _ OutputFileName:=Environ("UserProfile") & "\Downloads\" & _ Nome & ".pdf", _ ExportFormat:=wdExportFormatPDF) Call Documento.Close(SaveChanges:=False) End Sub -
Word Código VBA para salvar folhas de ponto EM PDF, já agrupadas por FILIAL
Midori respondeu ao tópico de rosanezane em Microsoft Office e similares
Para dar esse erro o documento não deve estar vinculando. Tente fechar o arquivo e ao abrir deve dar esta opção, Escolha sim e procure a planilha. Sobre a questão de criar outra página, isso pode ser resolvido ajustando o espaçamento das linhas. -
Word Código VBA para salvar folhas de ponto EM PDF, já agrupadas por FILIAL
Midori respondeu ao tópico de rosanezane em Microsoft Office e similares
@rosanezane Eu alterei o código que tinha postado. Sobre esse erro, o documento deve estar vinculado ao Excel. Quando corretamente configurado você verá a opção de selecionar os registros, p.ex, -
Word Código VBA para salvar folhas de ponto EM PDF, já agrupadas por FILIAL
Midori respondeu ao tópico de rosanezane em Microsoft Office e similares
@rosanezane Para identificar o grupo de filiais, a macro pode ir selecionando os registros enquanto testa se o próximo é diferente do anterior. Para isso os dados da tabela do Excel devem estar ordenados por filial. Sub CopiaFormulario() Dim DocumentoFilial As Document Dim Base As MailMergeDataSource Dim Formulario As Range Dim Filial As String Dim FilialAnterior As String Dim Conta As Long Set Formulario = ThisDocument.Range Set Base = ThisDocument.MailMerge.DataSource Base.ActiveRecord = wdFirstRecord For Conta = 1 To Base.RecordCount Filial = Base.DataFields("FILIAL").Value If FilialAnterior <> Filial Then Documents.Add Set DocumentoFilial = ActiveDocument End If Formulario.Start = Formulario.GoTo(wdGoToPage, wdGoToAbsolute, , 1).Start Formulario.Copy DocumentoFilial.Range.Characters.Last.Paste Base.ActiveRecord = wdNextRecord FilialAnterior = Filial Next Conta End Sub Teste com poucos registros porque a macro vai criar um documento para cada filial. Para salvar cada um em pdf tente usar PrintOut. -
Outro Como preencher uma matriz usando laço encadeado?
Midori respondeu ao tópico de Everton_souza em Programação - outros
@Everton_souza Para preencher a matriz os loops devem estar aninhados. Use as variáveis (contadores) dos loops como indices da matriz para fazer a atribuição nas posições corretas, p.ex, Tela3[I, J] = X X = X + 1 Antes dessa atribuição você pode usar duas variáveis auxiliares para testar se está no intervalo correto de colunas. E a variável X deve ser iniciada com 8 antes de entrar no loop mais interno. -
Excel Formatação condicional fórmula =hoje() e 09/05/2022
Midori respondeu ao tópico de GENECIOFICIAL em Microsoft Office e similares
@GENECIOFICIAL Para testar o nome da fórmula aplique a formatação com FÓRMULATEXTO, =SEERRO(FÓRMULATEXTO(A1)="=HOJE()";"") -
Excel VBA Executar Fórmula Oculta
Midori respondeu ao tópico de Hahelrn em Microsoft Office e similares
Não precisa usar colunas auxiliares, dá para fazer com uma fórmula, p.ex, ="CFSG22/30M"&TEXTO(LIN()-1;"000")&"/"&A2 Assim vai concatenar "CFSG22/30M" com o valor da linha formatada para 3 dígitos com o ID. Para impedir a alteração você pode proteger a planilha. -
Excel vba apagar linhas da tabela
Midori respondeu ao tópico de RAIMUNDO LIMA DE ARAUJO em Microsoft Office e similares
@RAIMUNDO LIMA DE ARAUJO Pode ser com Delete, [Tabela].ListObject.DataBodyRange.Delete Antes de apagar é bom testar se a tabela tem algum dado (DataBodyRange) para não dar erro.
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