-
Posts
3.601 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que Midori postou
-
C não estou conseguindo entender como um loop roda quando esta aninhado.
Midori respondeu ao tópico de Edinei Almeida em C/C#/C++
Primeiro tem que ficar claro o loop simples como este, for(int i = 0; i < 10; i += 1){ } Aí vai rodar 10 vezes e se colocar um printf dentro verá a mensagem essa quantidade de vezes. No caso do aninhado, que é um dentro de outro, umas das uma forma é assim, for(int i = 0; i < 10; i += 1){ for(int j = 0; j < 10; j += 1){ } } Se colocar um comando no loop mais interno (o for do contador j), como um printf, verá a mensagem 100 vezes. Isso porque o loop mais interno vai rodar 10 vezes a quantidade de vezes do outro (contador i). Se quiser entender melhor a ordem de execução você pode colocar comandos para mostrar as mensagens, p.ex, for(int i = 0; i < 10; i += 1){ printf("Externo, i = %d\n", i); for(int j = 0; j < 10; j += 1){ printf("Interno, j = %d\n", j); } printf("***\n"); } -
Excel Evitar repetições desnecessárias no Código
Midori respondeu ao tópico de Jeff_Sandes em Microsoft Office e similares
@Jeff_Sandes Então tem que ficar assim, Set Planilha = ThisWorkbook.Sheets("Plan1") -
Excel Evitar repetições desnecessárias no Código
Midori respondeu ao tópico de Jeff_Sandes em Microsoft Office e similares
@Jeff_Sandes Se não colocar o nome correto da planilha vai dar esse erro e alinha Set Planilha fica destacada em amarelo... Veja que falei para editar o nome Teste. Qual é o nome da aba da sua planilha onde os dados devem ser inseridos? E qual é o nome que você colocou na macro em Sheets()? -
Excel Juntar planilhas sem perder o alinhamento das atividades
Midori respondeu ao tópico de Leonardo L Tavres em Microsoft Office e similares
Isso pode ser feito no Power Query. Deixe a planilha Base no forma de tabela assim, veja que criei o campo Projeto, E na planilha espelho do projeto, no menu, abra a planilha Base em Data > Get Data > From File > From Excel Workbook e Transform Data, E no Power Query filtre o projeto, Ok e Close & Load A planilha espelho vai ficar assim, veja que tem a opção Refresh para atualizar as alterações feitas na base, -
Excel Evitar repetições desnecessárias no Código
Midori respondeu ao tópico de Jeff_Sandes em Microsoft Office e similares
@Jeff_Sandes Na sua planilha não deve ter a aba Plan1 como no exemplo, por isso dá erro. Para resolver é só especificar o nome correto, p.ex, onde coloquei Teste é só alterar para o nome da sua planilha, Sub Macro() Dim Planilha As Worksheet Static Linha As Integer Set Planilha = ThisWorkbook.Sheets("Teste") Linha = (Linha Mod 23) + 1 Planilha.Cells(Linha, 1).Value = Planilha.[Z1].Value Planilha.Cells(Linha, 2).Value = Format(Time, "hh:mm") Call Hora End Sub -
Visual Basic Macro VBA sequências de palavras
Midori respondeu ao tópico de Vitchu em Programação - outros
Sua macro pode identificar o caractere que separa o texto do número para pegar a parte do número (com Split ou as funções de string). Aí é só incrementar + 1 e concatenar novamente com o texto para escrever na outra célula. -
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 Se o diretório está certo então tem algum problema na conexão com o Excel. Você pode tentar fazer isso via macro, cole esta Sub no módulo. Sub AbreBD(Planilha As String) ThisDocument.MailMerge.MainDocumentType = wdFormLetters ThisDocument.MailMerge.OpenDataSource _ Name:=Planilha, ConfirmConversions:= _ False, ReadOnly:=False, LinkToSource:=True, AddToRecentFiles:=False, _ PasswordDocument:="", PasswordTemplate:="", WritePasswordDocument:="", _ WritePasswordTemplate:="", Revert:=False, Format:=wdOpenFormatAuto, _ Connection:="Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=" & Planilha & _ ";Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";" & _ "Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Type=37;Jet OLEDB:Database " _ , SQLStatement:="SELECT * FROM `FUNCIONARIOS$`", SQLStatement1:="", SubType:=wdMergeSubTypeAccess End Sub Coloque a planilha FUNCIONARIOS.xlsx no mesmo diretório onde o PDF deve ser salvo (no seu caso é no Desktop) e chame o procedimento antes de atribuição da Base, Diretorio = "C:\Users\rosane.oliveira\Desktop\" Call AbreBD(Diretorio & "\FUNCIONARIOS.xlsx") Set Base = ThisDocument.MailMerge.DataSource -
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 Pode ser assim: Diretorio = "C:\Users\rosane.oliveira\Desktop\" ou Diretorio = Environ("UserProfile") & "\Desktop\" -
Excel vba - incluir novo cadastro/consultar cadastro
Midori respondeu ao tópico de RAIMUNDO LIMA DE ARAUJO em Microsoft Office e similares
@RAIMUNDO LIMA DE ARAUJO Para verificar o dado é com a função Consulta. Ela tem dois parâmetros, o primeiro é do campo da tabela e o segundo é o dado. Se nada for encontrado a função retorna Nothing, caso contrário retorna o range. No caso do CPF deve ser exatamente como está cadastrado, então se tiver zeros a esquerda (no formato texto) ou pontuação, a busca também deve ter. Quando o resultado é encontrado você pode fazer como no código que postei que pega os deslocamentos do range na tabela, p.ex, PlanOrdem.[C11] = Registro.Offset(0, -1) PlanOrdem.[J11] = Registro.Offset(0, 2) PlanOrdem.[L11] = Registro.Offset(0, 3) PlanOrdem.[N11] = Registro.Offset(0, 4) O Offset(0,-1) é o Nome, o Offset(0, 3) é a Carreta1, etc. Outro exemplo de busca com a função, Sub Teste() Dim Registro As Range Set Registro = Consulta([Tabela8].ListObject.ListColumns("CPF"), "00073967165") If Registro Is Nothing Then MsgBox "Dado não encontrado" Else MsgBox "O dado está na célula " & Registro.Address End If End Sub -
Excel Como automatizar distribuição de tarefas numa planilha
Midori respondeu ao tópico de Miraps em Microsoft Office e similares
Se possível anexe o arquivo ou um modelo com alguns exemplos de como deve ficar. Assim vai facilitar para quem puder te ajudar. -
Excel Transformar um número em Porcentagem
Midori respondeu ao tópico de Gustavo1313 em Microsoft Office e similares
Divida o lucro pelo valor, p.ex a célula C7 fica =B7/B3. E se quiser pegar o lucro acumulado, faça a soma e arraste, dessa forma C7 fica assim, =SOMA($B$7:B7)/$B$3 -
Excel Evitar repetições desnecessárias no Código
Midori respondeu ao tópico de Jeff_Sandes em Microsoft Office e similares
@Jeff_Sandes Nesse caso você pode chamar OnTime a cada hora. E para não ter que criar uma Sub para cada célula, sua Sub pode ter um contador da linha, p.ex, Sub Hora() Call Application.OnTime(TimeValue("01:00:00") + Now, "Macro") End Sub Sub Macro() Static Linha As Integer Linha = (Linha Mod 23) + 1 Plan1.Cells(Linha, 1).Value = Plan1.[Z1].Value Plan1.Cells(Linha, 2).Value = Format(Time, "hh:mm") Call Hora End Sub Execute a Sub Hora para chamar a Sub Macro em 1h e a cada hora vai pegar o dado de Z1. Quando o processo voltar para a primeira linha vai substituir os dados anteriores e assim por diante. Teste com intervalo de tempo menor, tipo 10 seg. -
Excel Evitar repetições desnecessárias no Código
Midori respondeu ao tópico de Jeff_Sandes em Microsoft Office e similares
@Jeff_Sandes Da forma que está usando OnTime é como se fosse de uma vez já que o agendamento/horário que colocou é o mesmo para todas as chamadas. A diferença nesse caso pode ser mínima de segundos ou menos dependendo do processamento entre as chamadas. -
Excel Evitar repetições desnecessárias no Código
Midori respondeu ao tópico de Jeff_Sandes em Microsoft Office e similares
@Jeff_Sandes Normalmente um OnTime já é o suficiente... A diferença nessas macros é a célula do pastespecial e da hora, então é só fazer tudo numa única sub, p.ex, Sub Macro() Plan1.Range("Z1").Copy Plan1.Range("A1:A3,A23").PasteSpecial Paste:=xlPasteValues Plan1.Range("B1:B3,B23").Value = Format(Time, "hh:mm") End Sub -
Excel não estou conseguindo fazer a cópia de uma macro
Midori respondeu ao tópico de Magnos Rodrigues em Microsoft Office e similares
Se possível anexe a planilha ou um modelo onde seja possível testar para ficar mais claro qual é o problema. -
Excel Tabela de contagem excel
Midori respondeu ao tópico de Gustavo1313 em Microsoft Office e similares
Remova os dois pontos dos nomes da coluna E (ou use alguma fórmula de texto para isso) e aplique a fórmula cont.ses, p.ex em F20, =CONT.SES($B$19:$B$24;$E20;$C$19:$C$24;F$19) -
Excel vba - incluir novo cadastro/consultar cadastro
Midori respondeu ao tópico de RAIMUNDO LIMA DE ARAUJO em Microsoft Office e similares
@RAIMUNDO LIMA DE ARAUJO Nativamente o Excel não tem esse recurso, mas você pode tentar com sendkeys que é um procedimento que simula o teclado. Se procurar vai encontrar tópicos sobre isso aqui no fórum. -
Excel Substituir palavras via macro
Midori respondeu ao tópico de Fuedba em Microsoft Office e similares
Dê alguns exemplos do que quer fazer. O que deve ser descrito e em qual condição? -
Excel Contagem se todas as células estão preenchidas
Midori respondeu ao tópico de GENECIOFICIAL em Microsoft Office e similares
@GENECIOFICIAL Se aí está diferente então deve ser como a sua versão trata a forma como usei ÉCÉL.VAZIA. Talvez consiga com Ctrl+Shift+Enter, mas veja se assim resolve, =SE(CONTAR.VAZIO(B2:G2)=6;"V A Z I O - "&TEXTO(CONT.SE($A$1:A1;"*V A Z I O*")+1;"00");SE(CONTAR.VAZIO(B2:G2)>0;"INCOMPLETO - "&TEXTO(CONT.SE($A$1:A1;"*INCOMPLETO*")+1;"00"); "Item - " & TEXTO(CONT.SE($A$1:A1;"*Item*")+1;"00"))) -
Excel Contagem se todas as células estão preenchidas
Midori respondeu ao tópico de GENECIOFICIAL em Microsoft Office e similares
@GENECIOFICIAL Nas fórmulas ÉCÉL.VAZIA da sua planilha tem um @ na frente do range e não estava retornando os resultados corretos, mas depois que removi isso deu certo. -
Excel Contagem se todas as células estão preenchidas
Midori respondeu ao tópico de GENECIOFICIAL em Microsoft Office e similares
Aqui ficou como no exemplo da sua planilha. Pode anexar o arquivo com a fórmula? -
Excel Contagem se todas as células estão preenchidas
Midori respondeu ao tópico de GENECIOFICIAL em Microsoft Office e similares
Com essas condições ficou assim, =SE(E(ÉCÉL.VAZIA(B2:G2));"V A Z I O - "&TEXTO(CONT.SE($A$1:A1;"*V A Z I O*")+1;"00");SE(OU(ÉCÉL.VAZIA(B2:G2));"INCOMPLETO - "&TEXTO(CONT.SE($A$1:A1;"*INCOMPLETO*")+1;"00"); "Item - " & TEXTO(CONT.SE($A$1:A1;"*Item*")+1;"00"))) -
Excel vba - incluir novo cadastro/consultar cadastro
Midori respondeu ao tópico de RAIMUNDO LIMA DE ARAUJO em Microsoft Office e similares
@RAIMUNDO LIMA DE ARAUJO Sua planilha pode ter os dois procedimentos. Só é preciso definir um evento para chamar cada um, pode ser por meio de um botão ou Change da planilha. O procedimento de Consulta deve ser o primeiro a ser chamado, já que se em contrar o CPF na base retornará os dados no formulário, caso contrário será o critério para cadastrar o novo registro, p.ex, Sub Ordem() Dim PlanOrdem As Worksheet Dim Registro As Range Dim Tabela As ListObject Set Tabela = ThisWorkbook.Sheets("CADASTRO MOTORISTA").[Tabela8].ListObject Set PlanOrdem = ThisWorkbook.Sheets("ORDEM DE CARREGAMENTO") Set Registro = Consulta(Tabela.ListColumns("CPF"), PlanOrdem.[C14]) If Registro Is Nothing Then Call Cadastra(Tabela, _ PlanOrdem.[C11], _ PlanOrdem.[C14], _ "1111111111", _ PlanOrdem.[J11], _ PlanOrdem.[L11], _ PlanOrdem.[N11]) Else PlanOrdem.[C11] = Registro.Offset(0, -1) PlanOrdem.[J11] = Registro.Offset(0, 2) PlanOrdem.[L11] = Registro.Offset(0, 3) PlanOrdem.[N11] = Registro.Offset(0, 4) End If End Sub Function Consulta(Coluna As ListColumn, Texto As String) As Range If Not Coluna.DataBodyRange Is Nothing Then Dim Registro As Range Set Registro = Coluna.DataBodyRange.Find( _ What:=Texto, LookIn:=xlValues, LookAt:=xlWhole) If Not Registro Is Nothing Then Set Consulta = Registro End If End If End Function Sub Cadastra(Tabela As ListObject, Nome As String, _ CPF As String, Telefone As String, _ Cavalo As String, Carreta1 As String, Carreta2 As String) Dim Linha As ListRow Set Linha = Tabela.ListRows.Add Linha.Range = Array(Nome, CPF, Telefone, Cavalo, Carreta1, Carreta2) End Sub Assim você pode adaptar o código, execute a Sub Ordem para testar. -
Excel vba - incluir novo cadastro/consultar cadastro
Midori respondeu ao tópico de RAIMUNDO LIMA DE ARAUJO em Microsoft Office e similares
Para retornar os dados da planilha de cadastro você pode usar um Procv ou Procx para fazer a busca pelo CNPJ. Sobre incluir um novo cadastro, você pode dar essa opção caso a fórmula não encontre. -
C programa não ler contador e incrementa contador!
Midori respondeu ao tópico de Edinei Almeida em C/C#/C++
Que tipo de problema pode dar? Essa talvez não seja a melhor forma de tratar aquela questão do buffer, mas normalmente isso resolve.
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