Ir ao conteúdo
  • Cadastre-se

Basole

Membro Pleno
  • Posts

    2.019
  • Cadastrado em

Tudo que Basole postou

  1. @yarao bom dia! Dê uma olhada neste link abaixo tem um exemplo: https://stackoverflow.com/questions/52989673/scraping-the-distances-between-two-cities-using-vba * Também é um site de ajuda e descendo mais abaixo tem a solução aí é só você adaptar a sua planilha.
  2. @Luciana Goes o erro e bem neste trecho do seu codigo: .List(linhalistbox, 0) = Sheets("listbox").Cells(linha, 1) Altere para: With ListBox1 .AddItem Sheets("listbox").Cells(linha, 1) End With
  3. @WalterM bom se for criar um novo documento, a partir do zero, voce precisa inserir o controle de conteúdos, o local onde a numeracao será inserida. Veja o video abaixo com as dicas: Se for aproveitar o documento (exemplo) que anexei no meu post acima, e caso precise editar. Siga os passos: Selecione o controle de conteúdos, em seguida na tab Desenolvedor e Modo Design (conf. imagem abaixo). E depois em propriedades : Crie um novo documento com extensão *TXT, ou aproveite o exemplo que disponibilizei no post acima, chamado "Autonure.txt" e altere a numeração inicial, desejada (conf. img. abaixo) Aperte as Teclas Alt+F11 para acessar o editor vba e altere o local (diretorio), onde estara armazenado o arquivo "Autonure.txt" , (conf. img abaixo, destaque me vermelho) * Caso o arquivo for armazenado na mesma pasta do Documento do Word, não é necessario alterar Caso a formatação da sua autonumeração for diferente do exemplo deste topico, ou seja sem o controle anual, edite no codigo (img. acima) removendo o trecho no codigo vba (em azul) => & "/" & VBA.Format(VBA.Now, "YYYY") Ficando desta forma: Word.ActiveDocument.SelectContentControlsByTitle("Autonumeração").Item(1).Range.Text = _ VBA.Format(oNum, "000#")
  4. @Luciana Goes veja se e isso que deseja * Acrescentei uma rotina para aceitar somente numeros e virgula nas textbox, para não gerar erros nos calculos textbox_1.zip
  5. @Thamires_Rezende vamos lá... veja se é isso... * Acrescentei um calendario para não gerar erros quando o usuario inserir a data em formato diferente estoque_v2 - Copia3.zip
  6. @Thamires_Rezende fiz por partes, eu acrentei um exemplo de procura, que em um mesmo campo (textbox) o usuario pode inserir o codigo, descricao ou qualquer dado do produto, se a necessidade de clicar no botao, apenas digitar * não entendi direito, a parte de inserir demais informações estoque_v2 - Copia2.zip
  7. @Luciana Goes veja se é isso que entendi, que voce precisa Cálculo automático_1.zip
  8. @jun1orp1m3n7a experimente alterar no código, em LookAt:= o valor xlParts por xlWhole
  9. @Luciana Goes no exemplo abaixo eu usei a propriedade .List ao invés da .RowSource do Listbox, desta forma são carregados somente as linhas com dados e não um intervalo. Ignorar vazias listbox_V1.zip
  10. @Luciana Goes esta dando erro ao tentar descompactar o arquivo. Tente compactar e anexar novamente !
  11. @jcgmcs na sua primeira postagem voce emitiu essas informações acima. Quanto mais dados e informações emitir facilita na pronta ajuda e a solução das suas questões. Segue as alterações, aproveitando a dica do colega Patropi Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Not Application.Intersect(Target, _ Range("L5:L" & Cells(Rows.Count, 12).End(xlUp).Row)) _ Is Nothing Then Target.Value = Target.FormulaR1C1 End If End Sub
  12. @jcgmcs veja se é isso que deseja: Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Not Application.Intersect(Target, Range("L2:L500")) _ Is Nothing Then Target.Value = Target.Value * 1 End If End Sub
  13. @NetobarbuioConforme prometido, segue exemplo... Aproveitei a rotina "ApagaFicheiro" do colega @AfonsoMira, que "destrói" a planilha * Copie e cole o codigo abaixo no modulo: EstaPasta_de_trabalho Private Sub Workbook_Open() Dim cnt As Long cnt = VBA.GetSetting("MyProjet", "Settings", "Open", 0) cnt = cnt + 1 VBA.SaveSetting "MyProjet", "Settings", "Open", cnt If cnt > 30 Then MsgBox "Esta é uma Versão de Avaliação e se expirou! " & VBA.vbNewLine & _ "E será fechada automaticamente.", vbCritical, "A T E N Ç Ã O" ApagaFicheiro End If End Sub Private Sub ApagaFicheiro() Dim xNomeCompleto As String xNomeCompleto = Application.ActiveWorkbook.FullName ActiveWorkbook.Saved = True Application.ActiveWorkbook.ChangeFileAccess xlReadOnly Kill xNomeCompleto Application.ActiveWorkbook.Close False End Sub
  14. @AfonsoMira @Netobarbuiomas no caso do usuário ter uma cópia da planilha, poderá utilizar infinitamente, só terá o trabalho de pegar a cópia novamente a cada 30 vezes de abertura. Acho que a solução para este caso é salvar as aberturas no registro do Windows. No momento não tenho acesso a um PC para testar um exemplo e postar aqui. @Netobarbuio se puder aguardar até o final da tarde...
  15. @Tatyh vamos lá....uma opção é usar a sua planilha incluindo caso não tenha menções informando que a efetivação do cadastro está condicionado a anexar os documentos RG/CPF ou CNH, ou seja quando o usuário clicar no botão a rotina VBA verifica se há 2 anexos, os referidos. Se estiver, envia um e-mail para seu endereço juntamente com uma cópia da planilha com os dados cadastrados. Caso contrário emite uma mensagem solicitando os documentos. A outra opção é a que você se referiu no seu primeiro post, utilização do Forms do Google que agora permite solicitar anexos. Desta forma os dados cadastrais serão salvos em uma única planilha do Google e os anexos em uma pasta do Google drive. * Para ambos casos não há como verificar se o conteúdo dos documentos anexados estão corretos, ou seja o usuário poderá enviar uma receita de bolo escaneada, por exemplo, por engano. Mas no FORMS tem como tornar os campos obrigatórios para efetivar o cadastro.
  16. @Tatyh preciso entender melhor essa questao... As unidades de trabalho citadas, estão no mesmo ambiente de rede, no mesmo local? Comente um pouco sobre como vai trabalhar com esta planilha, os proprios trabalhadores irão preencher os dados ou usuarios/funcionarios
  17. @Tatyh sim é possível, criar uma rotina VBA que cria uma nova pasta com o nome do trabalhador em um diretório previamente definido e salva os seus respectivos documentos anexados, isso em cada PC de cada unidade
  18. @ana.zampieri como no OneDrive, na atualizacao dos arquivos existe um delay, acredito haverá problemas com a sequencia de numeracao do arquivo *.TXT voce pode tentar armazenar o arquivo *.TXT em um servidor em rede, e em cada documento (Word), no codigo vba, direcionar o endereço (caminho) do respectivo arquivo.
  19. @maxwelvie pra mim ainda não ficou claro a relação entre os campos para obter o resultado desejado.
  20. @maxwelvie segue o codigo para carregar o combobox1 e a textbox. Nao entendi a questao das terras... por exemplo, na mesma linha há tres nomes, nao vi correspodência entre os nomes e as terras Private Sub ComboBox1_Change() Me.TextBox1 = Me.ComboBox1.List(Me.ComboBox1.ListIndex, 1) End Sub Private Sub UserForm_Activate() Dim final As Long Dim i As Long Dim j As Long Dim valueA As String Dim valueB As String For j = 1 To 7 If j Mod 2 <> 0 Then final = Cells(Rows.Count, j).End(xlUp).Row For i = 2 To final valueA = Planilha1.Cells(i, j).value2 valueB = Planilha1.Cells(i, j + 1).value2 If Not valueA = "" Then Call addIfUnique(Me.ComboBox1, (valueA), (valueB)) End If Next End If Next End Sub Sub addIfUnique(CB As ComboBox, value1 As String, value2 As String) Dim i As Integer If CB.ListCount = 0 Then GoTo doAdd For i = 0 To CB.ListCount - 1 If LCase(CB.List(i)) = LCase(value1) Then Exit Sub Next doAdd: CB.AddItem value1 CB.Column(1, CB.ListCount - 1) = value2 End Sub
  21. @Gueds na minha postagem : ...Eu corrigi este problema. Veja lá
  22. Desconsidere o código anterior. Este está testado: Sub AutoOpen() Dim oNum If VBA.MsgBox("Deseja atualizar a numeração novamente?", vbYesNo + VBA.vbQuestion, _ "Atenção muita calma nessa hora !") = VBA.vbYes Then oNum = System.PrivateProfileString(ThisDocument.Path & "\Autonure.txt", "InvNmbr", "oNum") If oNum = "" Then oNum = 1 Else oNum = oNum + 1 End If System.PrivateProfileString(ThisDocument.Path & "\Autonure.txt", "InvNmbr", "oNum") = oNum Word.ActiveDocument.SelectContentControlsByTitle("Autonumeração").Item(1).Range.Text = _ VBA.Format(oNum, "000#") & "/" & VBA.Format(VBA.Now, "YYYY") End If End Sub
  23. @Gueds Esse procedimento e feito no evento AutoOpen e atende o seu pedido para uma futura impressão de 2ª via. Segue as alterações: * Substitua o código abaixo no módulo1 do seu arquivo Sub AutoOpen() Dim oNum As Single If VBA.MsgBox("Deseja atualizar a numeração novamente?", vbYesNo + VBA.vbQuestion, _ "Atenção muita calma nessa hora !") = VBA.vbYesNo Then oNum = System.PrivateProfileString(ThisDocument.Path & "\Autonure.txt", "InvNmbr", "oNum") If oNum = "" Then oNum = 1 Else oNum = oNum + 1 End If System.PrivateProfileString(ThisDocument.Path & "\Autonure.txt", "InvNmbr", "oNum") = oNum Word.ActiveDocument.SelectContentControlsByTitle("Autonumeração").Item(1).Range.Text = _ VBA.Format(oNum, "000#") & "/" & VBA.Format(VBA.Now, "YYYY") End If End Sub
  24. @Gueds acrescentando outra possibilidade, é cólocar uma mensagem na abertura do arquivo, perguntando se deseja atualizar a numeração automática ou não. Desta forma você tem essas duas opções de atualizar ou não.
  25. @Gueds @Gueds é possível alterando para um evento BeforeSave, ou seja o incremento da auto numeração só vai acontecer antes de salvar o arquivo. Ou então você pode inserir um botão e dentro do evento, do botão, você acrescenta o rotina que está dentro da Sub Auto_Open e em seguida excluí está sub. E na propriedade deste botão desmarque imprimir o objeto, para não aparecer na impressão.

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!