Ir ao conteúdo
  • Cadastre-se

Edson Luiz Branco

Membro Pleno
  • Posts

    844
  • Cadastrado em

  • Última visita

  1. O ideal em seu caso seria você criar um Modelo do Word (.dot ou .dotx) e não um Documento (.doc ou .docx) já com todos os campos que são variáveis posicionados nos locais apropriados. Dê uma pesquisada no assunto "Mala Direta" do Word usando como base um intervalo de planilha do Excel.
  2. Há várias divergências entre o que está no código e a realidade de seu arquivo, pois provavelmente o arquivo original do qual você copiou tinha outra estrutura (uma planilha cujo CodeName era Motor onde havia uma Tabela = ListObject nomeada "proposmac" e não um Intervalo = Range com esse nome), talvez por isso seu código não mais tenha funcionado no novo arquivo. Faça um teste com o código abaixo: Sub proposmac() With New Word.Application .Visible = True .Activate With .Documents.Add Excel.Application.Range("proposmac").Copy .Application.Selection.PasteExcelTable LinkedToExcel:=True, WordFormatting:=False, RTF:=True With .Tables(.Tables.Count) .AllowAutoFit = False .AutoFitBehavior wdAutoFitWindow End With End With End With Excel.Application.CutCopyMode = False End Sub
  3. O que é "Motor"? Esse objeto não está definido em seu código. Qual a mensagem de erro? O ideal seria você disponibilizar seu arquivo aqui mesmo para sermos mais assertivos. Limpe ou distorça quaisquer informações confidenciais antes de anexar.
  4. Boa noite, @vicente barcelos. No VBA, marque referência à biblioteca do Word como indicado na figura abaixo para poder usar Early Binding dos objetos do Word. O número 16.0 corresponde à versão instalada no PC que no meu caso é do Office 2016. No seu caso possivelmente seja outro número.
  5. No teste que fiz rapidamente aqui, não houve problema o app estar visível ou não.
  6. Sua variável é "ulinha" (ulinha =...) ou "linha" (.Cells(linha, 2)...)? Dica: sempre coloque no topo de seus códigos a instrução Option Explicit. Isso obriga o programador a declarar todas as variáveis que irá utilizar antes de rodar o código o que evita esse tipo de erro.
  7. Se seu Office está no idioma português de Portugal, tente CONTAR.SE ao invés de CONT.SE. [Ops, não percebi que o @Patropi tinha acabado de responder...]
  8. Um CONT.SE já deve fornecer o resultado desejado, @Bikke. =SE(CONT.SE(FeriasBaixasOutros!BQ8:BX38;A11)>0;"Acidente Serviço";"")
  9. Boa noite, @Kadu Du Sua planilha "Linha 5" tem mais de 20.000 pequenas caixas de texto transparentes sobrecarregando quaisquer operações, provavelmente provenientes de repetidas operações de Cópia x Colagem de alguma página internet ou outro sistema. Este problema é idêntico ao do tópico abaixo, daqui do fórum. Siga as mesmas orientações que sugeri na ocasião e provavelmente esse delay desaparecerá.
  10. @Midori tem razão, @Joannes. Esse é um suplemento ("AddIn") tipo "Aplicativo do Office", recentemente rebatizado para "Suplementos do Office", diferente portanto dos suplementos do VBA e os suplementos COM. Você deve ter instalado meio sem querer talvez... Para desinstalar, pode seguir pela guia Arquivo, pela guia Página Inicial ou, se sua guia Desenvolvedor estiver sendo exibida, pode ser por ali também, lembrando que estou me referindo ao Excel 2016 que é o que tenho aqui, mas que deve ser semelhante nas versões mais recentes. Siga os passos da figura abaixo.
  11. Na verdade não te passei nenhum código, apenas expliquei com um exemplo o parâmetro FieldInfo do método Workbooks.OpenText. Mas como você já conseguiu resolver o problema, isso é o que importa.
  12. Em seu código, o parâmetro FieldInfo abaixo: ..., FieldInfo:=Array(Array(5, 2))... Está dizendo que somente a 5ª coluna (Array(5, 2)) do seu CSV será forçada a ser do tipo Texto (xlTextFormat tem o valor = 2) e as demais, como não especificadas, serão tratadas como do tipo "Geral". Se desejar que mais alguma coluna seja tratada como texto, aninhe mais um array para incluí-la também. Por exemplo, se além da 5ª coluna também quiser a 7ª coluna como texto, altere a partícula destacada para: ..., FieldInfo:=Array(Array(5, 2), Array(7,2))...
  13. Na etapa 3 da importação, na caixa de diálogo selecione a coluna correspondente e defina os valores como texto antes de concluir a importação. Veja na figura abaixo:
  14. Seu código não está pegando os diálogos que começam numa linha e terminam em outra, mas apenas os que têm o <i> e o </i> na mesma linha. Uma alternativa ao seu código poderia ser: Sub ExtrairTextos2() Dim text As String, i As Long text = Join(Application.Transpose(Intersect(Columns("A"), ActiveSheet.UsedRange)), " ") With CreateObject("VBScript.RegExp") .Pattern = "<i>([\s\S]+?)</i>": .Global = True If .Test(text) Then For i = 1 To .Execute(text).Count Cells(i, "B").Value = .Execute(text)(i - 1).SubMatches(0) If i = 1000 Then i = i + 1 Exit For End If Next i MsgBox ("Foram extraídos " & i - 1 & " textos em inglês de um total de " _ & .Execute(text).Count) & " textos." End If End With End Sub
  15. Na guia "Exibir", grupo "Janela" clique em "Reexibir" e procure se sua Pasta de Trabalho Excel não aparece ali como oculto.

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

×
×
  • Criar novo...