geraldo pereira Postado Fevereiro 15, 2021 Denunciar Share Postado Fevereiro 15, 2021 Bom dia a todos Preciso montar um sistema de preenchimento de nota fiscal e estou precisando de ajuda com o código para data em extenso e o de repetir as notas conforme as parcelas que será digitada no textbox1 desde já agradeço a ajuda geraldo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Alyson Ronnan Martins Postado Fevereiro 15, 2021 Denunciar Share Postado Fevereiro 15, 2021 Bom vamos dividir o problema em partes: Valores por extenso: Public Function EscrevePorExtenso(ByVal n As Double) As String Unid = Array("", "Um", "Dois", "Três", "Quatro", "Cinco", _ "Seis", "Sete", "Oito", "Nove", "Dez", "Onze", "Doze", _ "Treze", "Quatorze", "Quinze", "Dezesseis", "Dezessete", _ "Dezoito", "Dezenove", "Vinte") Dezen = Array("", "Dez", "Vinte", "Trinta", "Quarenta", _ "Cinquenta", "Sessenta", "Setenta", "Oitenta", "Noventa") Centen = Array("", "Cento", "Duzentos", "Trezentos", _ "Quatrocentos", "Quinhentos", "Seiscentos", _ "Setecentos", "Oitocentos", "Novecentos", "Mil") Num = n Escr = "" If n = 0 Then Escr = "Zero" End If If (n \ 1000) > 0 And n \ 1000 < 10 Then Escr = Unid(n \ 1000) & " Mil " End If n = n - (n \ 1000) * 1000 If n > 100 Then Escr = Escr & Centen(n \ 100) End If If n = 100 Then Escr = Escr & " Cem" GoTo Prossiga End If n = n - (n \ 100) * 100 If n >= 20 And n < 100 Then Escr = Escr & " " & Dezen(n \ 10) End If If n > 0 And n < 20 Then Escr = Escr & " " & Unid(n) GoTo Prossiga End If n = n - (n \ 10) * 10 If n > 0 Then Escr = Escr & " " & Unid(n) End If Prossiga: If Num Mod 10 <> 0 Then If InStr(1, Escr, "Vinte", 1) = 0 Then If InStr(1, Escr, "Trinta", 1) = 0 Then If InStr(1, Escr, "enta", 1) > 0 Then Escr = Application.Substitute(Escr, "enta", "enta e ") End If End If End If End If If Num Mod 10 <> 0 Then If InStr(1, Escr, "Vinte", 1) > 0 Then If InStr(1, Escr, "Trinta", 1) = 0 Then If InStr(1, Escr, "enta", 1) = 0 Then Escr = Application.Substitute(Escr, "Vinte", "Vinte e ") End If End If End If End If If Num Mod 10 <> 0 Then If InStr(1, Escr, "Vinte", 1) = 0 Then If InStr(1, Escr, "Trinta", 1) > 0 Then If InStr(1, Escr, "enta", 1) = 0 Then Escr = Application.Substitute(Escr, "Trinta", "Trinta e ") End If End If End If End If If Num Mod 100 <> 0 Then If InStr(1, Escr, "ento", 1) > 0 Then Escr = Application.Substitute(Escr, "Cento", "Cento e ") End If End If If Num Mod 100 <> 0 Then If InStr(1, Escr, "entos", 1) > 0 Then Escr = Application.Substitute(Escr, "entos", "entos e ") End If End If If Num Mod 1000 <> 0 Then If (Num - (Num \ 1000) * 1000) <= 100 Then If InStr(1, Escr, "Mil", 1) > 0 Then Escr = Application.Substitute(Escr, "Mil", "Mil e ") End If End If End If End Function Fonte: tomasvasquez Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 geraldo pereira Postado Fevereiro 16, 2021 Autor Denunciar Share Postado Fevereiro 16, 2021 22 horas atrás, Alyson Ronnan Martins disse: Bom vamos dividir o problema em partes: Valores por extenso: Public Function EscrevePorExtenso(ByVal n As Double) As String Unid = Array("", "Um", "Dois", "Três", "Quatro", "Cinco", _ "Seis", "Sete", "Oito", "Nove", "Dez", "Onze", "Doze", _ "Treze", "Quatorze", "Quinze", "Dezesseis", "Dezessete", _ "Dezoito", "Dezenove", "Vinte") Dezen = Array("", "Dez", "Vinte", "Trinta", "Quarenta", _ "Cinquenta", "Sessenta", "Setenta", "Oitenta", "Noventa") Centen = Array("", "Cento", "Duzentos", "Trezentos", _ "Quatrocentos", "Quinhentos", "Seiscentos", _ "Setecentos", "Oitocentos", "Novecentos", "Mil") Num = n Escr = "" If n = 0 Then Escr = "Zero" End If If (n \ 1000) > 0 And n \ 1000 < 10 Then Escr = Unid(n \ 1000) & " Mil " End If n = n - (n \ 1000) * 1000 If n > 100 Then Escr = Escr & Centen(n \ 100) End If If n = 100 Then Escr = Escr & " Cem" GoTo Prossiga End If n = n - (n \ 100) * 100 If n >= 20 And n < 100 Then Escr = Escr & " " & Dezen(n \ 10) End If If n > 0 And n < 20 Then Escr = Escr & " " & Unid(n) GoTo Prossiga End If n = n - (n \ 10) * 10 If n > 0 Then Escr = Escr & " " & Unid(n) End If Prossiga: If Num Mod 10 <> 0 Then If InStr(1, Escr, "Vinte", 1) = 0 Then If InStr(1, Escr, "Trinta", 1) = 0 Then If InStr(1, Escr, "enta", 1) > 0 Then Escr = Application.Substitute(Escr, "enta", "enta e ") End If End If End If End If If Num Mod 10 <> 0 Then If InStr(1, Escr, "Vinte", 1) > 0 Then If InStr(1, Escr, "Trinta", 1) = 0 Then If InStr(1, Escr, "enta", 1) = 0 Then Escr = Application.Substitute(Escr, "Vinte", "Vinte e ") End If End If End If End If If Num Mod 10 <> 0 Then If InStr(1, Escr, "Vinte", 1) = 0 Then If InStr(1, Escr, "Trinta", 1) > 0 Then If InStr(1, Escr, "enta", 1) = 0 Then Escr = Application.Substitute(Escr, "Trinta", "Trinta e ") End If End If End If End If If Num Mod 100 <> 0 Then If InStr(1, Escr, "ento", 1) > 0 Then Escr = Application.Substitute(Escr, "Cento", "Cento e ") End If End If If Num Mod 100 <> 0 Then If InStr(1, Escr, "entos", 1) > 0 Then Escr = Application.Substitute(Escr, "entos", "entos e ") End If End If If Num Mod 1000 <> 0 Then If (Num - (Num \ 1000) * 1000) <= 100 Then If InStr(1, Escr, "Mil", 1) > 0 Then Escr = Application.Substitute(Escr, "Mil", "Mil e ") End If End If End If End Function Fonte: tomasvasquez Muito Obrigado, fico no aguardo da outra parte Deus Lhe Abençoe Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
geraldo pereira
Bom dia a todos
Preciso montar um sistema de preenchimento de nota fiscal e estou precisando de ajuda com o código
para data em extenso e o de repetir as notas conforme as parcelas que será digitada no textbox1
desde já agradeço a ajuda
geraldo
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.