-
Posts
838 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que Edson Luiz Branco postou
-
Excel Extrair dados do Excel para um formulário do Word (VBE)
Edson Luiz Branco respondeu ao tópico de Selton Do Ramo em Microsoft Office e similares
-
Excel Extrair dados do Excel para um formulário do Word (VBE)
Edson Luiz Branco respondeu ao tópico de Selton Do Ramo em Microsoft Office e similares
Se você não vai usar o arquivo que enviei e sim começar do zero na pasta de sua empresa, acompanhe a imagem anexa e faça o seguinte: No VBE, copie o código que está na classe EstaPastaDeTrabalho (item 1 da figura), para a equivalente da de sua empresa. Ali tem o código para esconder o botão Voltar durante a impressão. Copie também o código que está na classe da planilha FormulárioImpressãoOS para a equivalente de seu modelo que abrigará o formulário Word com a O.S. (item 2 da figura). Ali está o código para o botão Voltar. Para não correr o risco de que caso a planilha com a O.S. fosse renomeada lá no Excel, dentro do código usei o CodeName (item 2b da figura) ao invés do Name (destacado logo abaixo da 2b) onde se referia a essa planilha. Portanto você deverá renomear na janela Propriedades (F4) o CodeName para wsWordForm. No Word, crie seu formulário de O.S. com os bookmarks já definidos, copie e cole no Excel conforme descrito no tópico #11. Anote em separado o nome que você deu a esses indicadores. Na planilha, crie o botão Voltar (tipo ActiveX) e renomeie ele para btnVoltar. Crie um módulo convencional e nele cole o código do módulo mdOSExcelToWord (item 3 da figura). dentro desse módulo, nas linhas semelhantes a: AtualizaIndicadores "bkmLoc", rg.Cells(11).Value altere cada nome do bookmark que está entre aspas (bkmLoc, por exemplo, foi usado no campo Localização) para o nome que você anotou no passo 2 acima. Altere também o índice da coluna que contém o valor correspondente (no caso acima, a 11ª coluna era a coluna "Localização" = coluna K). Crie, numa só das abas dos dias, digamos a planilha "1", o botão "GERAR O.S. DA LINHA SELECIONADA" e posicione-o como desejado. Aqui você deve usar ao invés de botões ActiveX, botões tipo "Controles de Formulários". Renomeie-o para btnGerarOS Clique com o botão direito sobre ele e escolha Atribuir Macro... Note que a macro btnGerarOS_Clique não aparece como disponível para escolha, então você terá que digitar na caixa esse nome. Isso ocorre porque a macro foi definida como Private, não Public. Copie o botão para a Área de Transferência Selecione a próxima planilha, digamos "2" e sem clicar em nenhuma célula dê CTRL+V pra colar na mesma posição relativa à planilha anterior. A vantagem de se usar botões legados (de Formulário) aqui é que não é necessário escrever no evento Click de cada um em cada módulo de planilha pra direcionar pra o procedimento único btnGerarOS_Clique. Inclusive ao copiar o botão o nome também ficou o mesmo e a macro atribuída a eles também. você também pode criar uma planilha modelo completa já com o botão e replicar a planilha, se elas ainda não existirem. _____________________________________ Obs: a macro leva em consideração a coluna F (OS/FMP) para definir qual a última linha que contém dados válidos para geração do formulário de OS. pode ser mais fácil dispensar os procedimentos do item 2 e ao invés disso copiar a planilha FormulárioImpressãoOS do arquivo que fizemos aqui para o seu Workbook da empresa. Para isso, mantenha os 2 arquivos abertos e nesse que fizemos clique com o botão direito sobre a "orelha" da planilha, selecione "Mover ou Copiar...", em "Para pasta:" clique na seta e escolha seu Workbook da empresa e por fim marque a caixa "Criar uma cópia". -
Excel Extrair dados do Excel para um formulário do Word (VBE)
Edson Luiz Branco respondeu ao tópico de Selton Do Ramo em Microsoft Office e similares
, acho que devo ter deletado sem querer um dos indicadores, o bkmDescr do campo Descrição da O.S. na janela do Word. Para se certificar disso, ao chegar nesse erro clique em Depurar e, na janela de "Verificação Imediata" digite: ?bkmNome veja qual o retorno. Se for, clique 2 vezes pra entrar no objeto Word e recrie o bookmark excluído, conforme descrito no passo nº 1, terceiro e quarto subitens do post #11 acima. _________ Edit: Realmente, foi o que ocorreu. Segue novamente o arquivo com essa correção. Exemplo de Ordem de Serviço Word Incorporada ao Excel v2_1.zip -
Excel Extrair dados do Excel para um formulário do Word (VBE)
Edson Luiz Branco respondeu ao tópico de Selton Do Ramo em Microsoft Office e similares
Veja agora, @Selton Do Ramo Disponibilizei 1 botão em cada planilha, eliminei a necessidade de fazer prévia referência ao Word e incluí um botão na planilha do relatório para voltar para a planilha de OS do dia que originou o chamado. Esse botão se oculta ao imprimir e reaparece depois. Exemplo de Ordem de Serviço Word Incorporada ao Excel v2_0.zip -
Excel extrair dados para o excel
Edson Luiz Branco respondeu ao tópico de -=|zami|=- em Microsoft Office e similares
A importação/conversão nativa pelo Word de documentos pdf's só teve início na versão 2013, infelizmente não faz parte de sua versão. Fiz essa importação aqui com esse pdf que você mandou no meu que é 2016 e ficou ótimo, sem nenhum caractere estranho. Inclusive as quebras de linha ficaram corretas, com o texto fluindo de uma linha pra outra sem as quebras que ocorrem ao se copiar em outro programa e colar como texto. Além disso, cabeçalhos e rodapés também são considerados como tais e não como parte do texto central. Depois disso, o trabalho é só o de eliminar figuras e quebras de sessão e fazer substituições usando coringas que chega no resultado tabular que você deseja. O melhor que eu já trabalhei foi, sem dúvida, o próprio Adobe Acrobat Pro (não o Reader) e não é free mas se não me engano tem versão de avaliação. Outro pago que considero bom é o PDFElement Pro, também tem versão de avaliação. Um que é gratuito e bem simplório mas que tem muita utilidade num caso específico é o "Tabula": quando seu pdf tem uma tabela mas os outros extratores não reconhecem muito bem aqueles dados como tabela, o aplicativo Tabula geralmente reconhece. Ele é online, apesar de ter um instalador. -
Excel desbloquear planilhas para modificação
Edson Luiz Branco respondeu ao tópico de LucasExcel em Microsoft Office e similares
Boa noite, colegas... @Luis Geraldo, pelo que entendi dos comentários do site Dicas do Excel em resposta a outra internauta, o criador desse projeto não liberou a exposição do código para alterações, quanto menos para republicarem/redistribuírem seu trabalho já com tudo exposto. E pela complexidade do projeto, muitas e muitas horas de desenvolvimento devem ter sido investidas nele. Então, penso eu, em respeito ao autor, deveria ter aguardado sua manifestação como a colega @Midori havia sugerido acima... -
Excel Extrair dados do Excel para um formulário do Word (VBE)
Edson Luiz Branco respondeu ao tópico de Selton Do Ramo em Microsoft Office e similares
Ok, continuemos amanhã... -
Excel Extrair dados do Excel para um formulário do Word (VBE)
Edson Luiz Branco respondeu ao tópico de Selton Do Ramo em Microsoft Office e similares
Isso mesmo. O passo-a-passo para fazer isso seria: No Word: Crie o formulário desejado no Word e formate como necessário, deixando ele pronto. Se não quiser, nem precisaria salvá-lo pois ele será incorporado no Excel ao final; Para facilitar a visualização da próxima etapa, vá no menu Arquivo > Opções > Avançado > role até a seção "Mostrar o conteúdo do documento" e marque a caixa "Mostrar indicadores"; Localize os pontos onde serão inseridas as variáveis, digite ali pelo menos um caractere qualquer (um espaço em branco, por exemplo) pra que o indicador a ser definido seja do tipo correto; De um por um, selecione cada um desses caracteres, vá no menu Inserir > grupo Links clique em "Indicador" e dê um nome a ele, de preferência relacionado ao conteúdo que terá aquele campo, por exemplo bkmEmpresa; Revise tudo e, estando ok, dê CTRL + T para selecionar tudo e CTRL + C para copiar para a Área de Transferência; No Excel: Clique com o botão direito na célula que você quer inserir o documento (planilha "FormulárioImpressãoOS"), em Opções de Colagem escolha Colar Especial... > Colar > Como: "Objeto Documento do Microsoft Word". Com o objeto selecionado, na Caixa de Nomes renomeie de "Objeto 1" para "objWord" que é o nome que ele está sendo referido no código. Ajuste a área de impressão conforme necessário. Pois é, por isso teria sido importante você anexar o arquivo mais próximo de sua realidade pra evitar retrabalho. O que poderia ser feito aqui seria inserir um botão em cada uma das 31 planilhas ou, talvez melhor, um atalho de teclado que chame o procedimento; então mover a macro da classe da planilha para um módulo convencional e readequar o código para identificar qual o range e de qual worksheet que o chamou (qual foi o Caller). Não seria necessário e nem desejável inserir um documento Word para cada uma das 31 planilhas. -
Excel Extrair dados do Excel para um formulário do Word (VBE)
Edson Luiz Branco respondeu ao tópico de Selton Do Ramo em Microsoft Office e similares
Talvez seu Office seja de uma versão mais nova ou mais antiga que a minha, então esqueci de dizer pra marcar a referência à biblioteca do Word de sua versão: no VBA vá no menu Ferramentas>Referências, veja se há alguma referência do Word cujo final esteja escrito "(ausente)" e desmarque. Role então abaixo até encontrar "Microsoft Word xx.x Object Library", onde xx.x é a versão de seu Office. Marque também, se já não estiver marcada, a referência à "OLE Automation" como na imagem abaixo. Obs.: Não fiz comentário linha a linha no código pra poupar tempo/trabalho pois não sabia se essa solução iria atender seu propósito. Mas no que você tive dúvida, só perguntar. -
Excel extrair dados para o excel
Edson Luiz Branco respondeu ao tópico de -=|zami|=- em Microsoft Office e similares
Bom dia, @-=|zami|=- Qual a versão de seu Office? São vários arquivos pdf desses ou é apenas esse? Se forem vários, todos terão a mesma estrutura? Se não forem muitos, eu sugeriria uma metodologia parcialmente manual, usando Localizar/Substituir no Word usando coringas, pois é mais avançado que no Excel, além do que o Word permite converter pdf em doc diretamente. Nesse caso não seria necessário usar VBA. De qualquer forma, dá um trabalhinho razoável... -
Excel Extrair dados do Excel para um formulário do Word (VBE)
Edson Luiz Branco respondeu ao tópico de Selton Do Ramo em Microsoft Office e similares
Bom dia, @Selton Do Ramo Diante disso, uma maneira interessante de fazer seria manter seu formulário do Word totalmente imobilizado numa das planilhas (embedding = incorporado no jargão técnico), num velho e bom objeto OLE. A atualização dos campos se faz através de Indicadores (bookmarks) inseridos manualmente (de maneira definitiva, 1 só vez) no documento, nas posições adequadas. Utilização: Selecione na planilha "TabelaControle" uma célula qualquer que esteja na linha que desejar gerar a OS e clique no botão "GERAR FORMULÁRIO WORD". Isso ativará a planilha com o doc incorporado e atualizará as posições com os valores daquela linha. Para preencher esses dados antes da impressão, clique duas vezes no quadro do documento incorporado e edite o que desejar . Exemplo de Planilha v1_1[EdsonBR].zip -
Excel extrair dados para o excel
Edson Luiz Branco respondeu ao tópico de -=|zami|=- em Microsoft Office e similares
Boa noite, colega @-=|zami|=- Provavelmente seja possível, mas sem ver seu pdf fica difícil avaliar. Anexe seu pdf e seu arquivo Excel de como ficariam distribuídos no final os conteúdos pelas células no final para termos uma ideia. Use um artifício: no arquivo original no Word, substitua o caractere de marca de parágrafo (pé-de-mosca) ou de quebra de linha manual por um caractere especial qualquer (um captcha) que dificilmente ocorreria no texto, por exemplo, o caractere "§" (pode até ser uma combinação de mais de um caracter complexo). Copie o texto e cole no Excel No Excel, dê CTRL+U pra abrir o diálogo Localizar e Substituir: em Localizar, insira o(s) caractere(s) especial(is) que você usou no passo anterior em Substituir, use CTRL + J ou, alternativamente, segure a tecla ALT e, sem soltá-la, digite 010 do teclado numérico. Obs.: nesse passo, visualmente você não perceberá que existe um caractere ali na caixa, porque ele é invisível, mas estará lá. Já respondido no item anterior: CTRL + J ou ALT + 010 -
Excel Planilha com Erro de compilação
Edson Luiz Branco respondeu ao tópico de Jmbs em Microsoft Office e similares
Não tenho como testar aqui porque o meu é 32bits, mas teste alterando o tipo do argumento hwnd das funções acima de Long para LongPtr. De: (ByVal hWnd As Long,... Para: (ByVal hwnd As LongPtr,... -
Excel Planilha com Erro de compilação
Edson Luiz Branco respondeu ao tópico de Jmbs em Microsoft Office e similares
você não disse ainda se seu Office é 32/64... -
Excel Planilha com Erro de compilação
Edson Luiz Branco respondeu ao tópico de Jmbs em Microsoft Office e similares
Boa noite, @Jmbs Essas funções que estão nesse trecho de código não são nativas do VBA, são API's do Windows e elas tem que ter sido declaradas no topo do seu código, logo nas primeiras linhas (fora dessa Sub), ou área de declaração. Procure por instruções Declare tais como: Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName ... etc Se não existirem veja novamente no código de onde foi copiado para ter certeza de que não foi deixado de fora. Também verifique se você está usando a versão do Office 32 ou 64bits, pois as API's têm que estarem convertidas para a arquitetura correta. -
Excel Alguma função para capturar a moda com parâmetros/critérios
Edson Luiz Branco respondeu ao tópico de rafael alcaraz em Microsoft Office e similares
Bem vindo ao fórum, @rafael alcaraz Teria que especificar qual a resposta esperada quando: Não houver nenhum registro na quantidade retornada (todos em branco): retornar 0? Ex.: =MODO.MULT({"";"";"";"";"";"";"";"";""}) normalmente retornaria #N/D - poderia retornar 0 ou em branco... Um único registro com valor: retornar esse valor mesmo havendo só ele (não seria propriamente uma "moda")? Ex.: =MODO.MULT({"";"";"";"";"";"";3;"";""}) normalmente retornaria #N/D - poderia retornar 3 ou em branco... Um único registro de um ou mais dos valores, por exemplo: uma ocorrência da qtd 1 e uma ocorrência da qtd 3 (novamente não seria moda pois não houve repetição): retornar mesmo assim?Ex.: =MODO.MULT({"";3;"";"";"";"";1;"";""}) normalmente retornaria #N/D - poderia retornar em branco ou 3 numa linha e o 1 em outra, ou concatenado 3/1 ou... Moda múltipla (empate entre valores repetidos): Ex.: =MODO.MULT({"";3;1;2;"";1;"";2;""}) exibiria 1 mas internamente estaria retornando a matriz {1;2} O problema aqui como no item anterior é na exibição em uma única célula, pois ele retornaria uma matriz, mas não se tem previamente ideia de qual tamanho dela e quantas linhas ocupariam. Aqui o retorno através de uma UDF poderia facilitar a exibição. Ou estipular uma quantidade e fazer um malabarismo com a função REPT, por exemplo... Para ilustrar com o exemplo que você postou na imagem de seu post, teria ficado como na figura abaixo, isso sem tratar os erros mencionados anteriormente. A fórmula usada na F2 é matricial (finalize com Ctrl Shift Enter). Depois arraste para baixo e para o lado para completar o quadro: =MODO.MULT(SE((F$1&$E2)=($A$2:$A$65&$B$2:$B$65);$C$2:$C$65;"")) -
Excel Extrair dados do Excel para um formulário do Word (VBE)
Edson Luiz Branco respondeu ao tópico de Selton Do Ramo em Microsoft Office e similares
Bom dia, @Selton Do Ramo! Esse arquivo do Word, após preenchido e impresso você deve salvá-lo ou ele é só pra servir de formulário impresso e pode ser descartado sem salvar? -
Excel Exibir duas linhas nas abas de planilha
Edson Luiz Branco respondeu ao tópico de minidonutgigante em Microsoft Office e similares
Bem vindo ao fórum do Clube do Hardware, @minidonutgigante! Que eu saiba isso não é possível, infelizmente. Mas se a quantidade de planilhas estiver muito grande e você quer navegar entre elas com mais facilidade, clique com o botão direito entre as setas logo à esquerda do nome da primeira aba, como na imagem anexa. Se dessa maneira você ainda não ficar satisfeito, outra forma, mais complexa, seria através de programação (VBA) gerando um formulário que você poderia acessar através de algum atalho de teclado ou de um botão personalizado inserido na faixa de opções, por exemplo. -
Outlook Outlook 2013 - Bloqueio de exclusão no servidor conta IMAP
Edson Luiz Branco respondeu ao tópico de Vinicius_barizao em Microsoft Office e similares
Boa tarde @Vinicius_barizao Não tenho o Outlook aqui, mas sei que o Outlook tem VBA e na versão que você trabalha existe o evento MailItem.BeforeDelete (Item, Cancel) que talvez você pudesse usar para cancelar a exclusão (definindo Cancel = True) e alertar o usuário que a exclusão não é permitida. No entanto, nada impediria que a mensagem fosse excluída pelo lado do servidor (através de um Webmail, por exemplo). -
Excel Utilizando VBA para filtrar data, filtrando em dia, mês e ano
Edson Luiz Branco respondeu ao tópico de ttake em Microsoft Office e similares
Bom dia colegas! O tópico já foi marcado como resolvido então vão desculpando o atraso e a intromissão ... O AutoFilter até tem algumas facilidades pra filtrar por datas, como por exemplo pegar só os dos meses de fevereiro: ActiveSheet.AutoFilter.Range.AutoFilter 2,xlFilterAllDatesInPeriodFebruray,xlfilterDynamic Ou usar xlFilterValues passando uma matriz de pares de valores direto pro Criteria2 como Array(núm, "data", núm, "data",...) onde núm vai de 0 a 5 (0 pra ano, 1 pra mês, ... 5 pra segundos) só que "data" tem que representar o final do período desejado (como o amigo @OswaldoMP usou no combobox3 acima), o que daria mais trabalho ainda se fosse fazer para todos os campos. Mas ainda assim daria pra fazer por AutoFilter passando uma matriz com os valores pré-filtrados como argumento para o Criteria1, por exemplo, como no código abaixo, tomando como base seu UserForm. Obs.: tomei a liberdade de renomear seus ComboBox de 1, 2 e 3 para cboDia, cboMês e cboAno... Option Explicit Dim rgDatas As Range Private Sub UserForm_Initialize() ActiveSheet.AutoFilter.ShowAllData Set rgDatas = ActiveSheet.AutoFilter.Range.Columns(2) End Sub Private Sub cboDia_Change() FiltrarValores End Sub Private Sub cboMês_Change() FiltrarValores End Sub Private Sub cboAno_Change() FiltrarValores End Sub Sub FiltrarValores() Dim diaOK As Boolean, mêsOK As Boolean, anoOK As Boolean, valoresOK() As String Dim i As Long, k As Long With rgDatas For i = 2 To .Cells.Count If cboDia = "" Then diaOK = True Else diaOK = (Day(.Cells(i)) = 1 * cboDia) If cboMês = "" Then mêsOK = True Else mêsOK = (Month(.Cells(i)) = 1 * cboMês) If cboAno = "" Then anoOK = True Else anoOK = (Year(.Cells(i)) = 1 * cboAno) If diaOK And mêsOK And anoOK Then ReDim Preserve valoresOK(k) valoresOK(k) = .Cells(i).Text k = k + 1 End If Next i Select Case k Case 0: .Parent.AutoFilter.Range.AutoFilter 2, "=", xlAnd, "<>" Case .Cells.Count - 1: .Parent.AutoFilter.ShowAllData Case Else: .Parent.AutoFilter.Range.AutoFilter 2, valoresOK, xlFilterValues End Select End With End Sub AutoFilterPartículasDeDatas.zip -
Excel Extrair dados do Excel para um formulário do Word (VBE)
Edson Luiz Branco respondeu ao tópico de Selton Do Ramo em Microsoft Office e similares
Bom dia, @Selton Do Ramo Seria importante anexar seus arquivos, tanto Excel quanto Word, para vermos como estão estruturados. Se necessário, descaracterize informações confidenciais mas mantenha a estrutura e alguns dados para teste. você já tentou Mala Direta no Word tendo como base sua pasta de trabalho Excel? Nesse caso envolveria pouca ou nenhuma programação VBA. Seu Formulário ou documento inicial (principal) Word tem que tipo de campos? Indicadores (bookmarks) ou campos de mala direta (MergeFields)? É um documento (docx/docm) ou um modelo (dotx/dotm)? O resultado final, no Word, será um documento único ou múltiplos documentos? Não conheço cursos para isso, mas na minha opinião para programar o Word à partir do Excel ou o Excel à partir do Word o importante é estar bem familiarizado com os principais objetos de cada um desses aplicativos e seus respectivos métodos e propriedades. Os fundamentais objetos do maior pro menor (na hierarquia), no Excel: Application, Workbook, Worksheet, Range, Shape. No Word: Application, Document, Selection, Range, Shape/InlineShape e pra uso em automação FormField, Bookmark, MailMerge, entre outros. Quanto à ligação entre um aplicativo e outro isso é o mais simples e geralmente é feito em umas 2 ou 3 linhas de código só para abrir e colocar o Documento ou Workbook de interesse numa variável. O restante é manipulação dos objetos e subobjetos destes. -
Excel Botao de Comando ActiveX
Edson Luiz Branco respondeu ao tópico de Stephanie Fernandes em Microsoft Office e similares
Isso mesmo, Patropi . Esse é o fundamento da primeira sugestão dada lá no Planilhando. O código com essa e as outras 2 alternativas estão no anexo daquele tópico... -
Excel Botao de Comando ActiveX
Edson Luiz Branco respondeu ao tópico de Stephanie Fernandes em Microsoft Office e similares
Bom dia, @Stephanie Fernandes Veja se o que foi discutido há um tempo atrás num tópico em outro fórum já não resolve: Botão de Controle Flutuante [Resolvido]. Há uma outra maneira além daquelas discutidas lá que é criando um Suplemento para Web e nele um novo Painel de Tarefas (ou Task Pane Add-in - aqueles que abrem uma janela encaixada na lateral, por exemplo ao clicar em Ajuda). No entanto, tem que ter noções de programação em JavaScript/HTML/CSS: não dá pra fazer por VBA e infelizmente não programo nessas linguagens. Caso queira ver do que se trata dê uma olhada no artigo: Criar um suplemento do painel de tarefas do Excel. Qualquer dúvida retorne. -
Excel Macro para Hiperlink e Copiar Linhas
Edson Luiz Branco respondeu ao tópico de crownics em Microsoft Office e similares
Alguma coisa deve estar errada no caminho ou no nome do arquivo retornado pela variável pra não estar abrindo. Façamos um teste: estando o código interrompido nesse ponto que você mostrou acima, no Editor do VBA exiba a Janela Imediata (Ctrl G) e digite: ?FicheiroPDF após dar Enter, copie o retorno, abra o Windows Explorer e cole na barra de endereços. Verifique o que acontece... -
Excel Macro para Hiperlink e Copiar Linhas
Edson Luiz Branco respondeu ao tópico de crownics em Microsoft Office e similares
Não tá faltando a última barra invertida entre a pasta e o nome do arquivo?
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