Ir ao conteúdo
  • Cadastre-se

edcronos

Membro Pleno
  • Posts

    271
  • Cadastrado em

  • Última visita

Tudo que edcronos postou

  1. Então basicamente eu tenho 4 opções variaveis publicas embutir tudo em um unico array usar iF's e replicar as partes tacar gosub renomear as variaveis Loi *Loi2 vai me dar uma dor de cabeça e confundir minha logica variaveis publicas somente para essa parte do codigo seria sem noção a array vai dificultar saber o que que está sendo feito Oarray(0)=Oarray(1)+Oarray(4) replicar as partes vai multiplicar as linhas em 60X gosub não tem em C/C++, mas acho que tem como criar um método e agora? uma duvida em vb eu posso usar o mesmo nome de variavel em duas sub ou funções diferentes, mesmo se essas sub ou funções se auto chamam isso porque o vb cria instancias separadas ou talvez até renomeie essas variaveis para sabe a quem pertence tipo sub placar() bola=gol função gol() as bola=1 gol=bola talvez variavel bola é renomeada para algo como gol_bola, isso facilitaria ao interpretador saber a qual procedimento pertence a variavel no caso no C eu vou ter que ter nomes de variaveis diferentes para cada procedimento quando elas interagirem?
  2. nem sei direito como fazer a pergunta eu tenho uma macro (VBA EXCEL) que apesar de ser simples usa muitas variaveis para não ter que ficar mandando as variaveis por referencia eu preferi usar o gosub basicamente é um loop passando de uma função para outra for (w = 1; w <= k; w++) { if (Op == 0) { OcoL(Loi, OLi, OLf, Lig, Op, OZig_L, OqL, Oquadante_L, T, Coi, Oci, Ocf, Zig, Op, OZig_C, OqC, Oquadante_C); if (t == 1) { t = 0; OLin(Loi, OLi, OLf, Lig, Op, OZig_L, OqL, Oquadante_L, T, Coi, Oci, Ocf, Zig, Op, OZig_C, OqC, Oquadante_C); } } if (Op == 1) { OLin(Loi, OLi, OLf, Lig, Op, OZig_L, OqL, Oquadante_L, T, Coi, Oci, Ocf, Zig, Op, OZig_C, OqC, Oquadante_C); if (t == 1) { t = 0; OcoL(Loi, OLi, OLf, Lig, Op, OZig_L, OqL, Oquadante_L, T, Coi, Oci, Ocf, Zig, Op, OZig_C, OqC, Oquadante_C); } } ... }...} e nelas próprias tem chamada para as outras void OLin(long long &Loi, long long &OLi, long long &OLf, long long &Lig, long long &Op, bool OZig_L, long long OqL, bolean *Oquadante_L, long long &T, long long &Coi, long long &Oci, long long &Ocf, long long &Zig, long long Op, bool OZig_C, long long OqC, bolean *Oquadante_C){ if (Op == 0) { if (T == 1) { Loi = Loi + Lig; } if (OZig_L == false) { if (Loi == OLf) { if (Oquadante_L == true) { OLf = OLf + OqL; OLi = OLi + OqL; } Loi = OLi + Lig; } } else { if (Loi == OLi || Loi == OLf) { if (Oquadante_L == true) { OLf = OLf + OqL; OLi = OLi + OqL; Loi = Loi + OqL; } Lig = -Lig; Loi = Loi + Lig; } } } if (Op == 1) { T = 0; Loi = Loi + Lig; if (OZig_L == false) { if (Loi == OLf) { T = 1; if (Oquadante_L == true) { OcoL(Loi, OLi, OLf, Lig, Op, OZig_L, OqL, Oquadante_L, T, Coi, Oci, Ocf, Zig, Op, OZig_C, OqC, Oquadante_C); if (T == 1) { OLf = OLf + OqL; OLi = OLi + OqL; T = 0; ... } } Loi = OLi + Lig; } } else { if (Loi == OLi || Loi == OLf) { T = 1; if (Oquadante_L == true) { OcoL(Loi, OLi, OLf, Lig, Op, OZig_L, OqL, Oquadante_L, T, Coi, Oci, Ocf, Zig, Op, OZig_C, OqC, Oquadante_C); if (T == 1) { OLf = OLf + OqL; OLi = OLi + OqL; Loi = Loi + OqL; T = 0; } } Lig = -Lig; Loi = Loi + Lig; ... } } }} com vba e o gosub foi fácil organizar a logica (a minha pelo menos) mas isso está me dando um nó no cérebro para reescrever, ainda mais que tem as outras partes que usa mais variaveis e tem uma logica mais complicada pergunta, 1º se pode usar o mesmo nomes em um ponteiro de ponteiro? não sei se isso que eu fiz funcionaria ainda mais que tem as outras partes que tem 4 niveis de chamadas para ajustar os valores "função1 chama função2 que chama função3 que chama função4 ou função5" existe uma maneira diferente de passar essas variaveis ou ponteiros ? "ainda estou perdido nisso" ou melhor, existe maneira melhor de fazer esse fluxo de ida e volta entre as partes?
  3. concordo com o @ em uma sala de aula o professor faz é passar o que ele sabe da maneira que ele quer ou sabe passar e no mais é tirar as duvidas na internet se tem os tutoriais , livros, video aulas, que vai fazer o papel do professor que vai passar o que ele sabe da maneira que ele quer ou "sabe ensinar" as duvidas se tira no foruns ou em alguns casos com própria pessoa que escreveu ou filmou a aula a diferença está apenas na vontade na sala de aula se tem o ensino induzido, é igual a assistir a tv "paga ou aberta", você liga e já tem uma programação fixa, reportagens e tudo mais tudo definido por outras pessoas na internet nós escolhemos aquilo que melhor nos adaptamos, mas temos que sair buscando o que e como e a partir daí vontade de continuar ou não, seria como sair de escola em escola assistindo aulas antes de se matricular para ver quais tem os melhores professores e de quebra poder ir para outras tirar duvidas auto ditada para mim é a pessoa que pega um canivete e começa esculpir um pedaço de madeira sem nunca alguém ensinar, ou le as técnicas ou pega um violão e começa a tocar sem ter noções de notas musicais ou monta maquinas sem ter lido ou aprendido sobre mecânica o idioma "falado" também é algo natural de se aprender por instinto já o escrito tem que ser ensinado, a não ser que a pessoa crie o próprio vocabulário
  4. Na expectativa de minha mente largar algum dos ossos que insiste em ficar roendo quero aprender C para converter algumas macros de vba e transformar em DLL mas como já tenho um monte de coisa na cabeça e já estou cansado de tudo estou tentando fazer comparação das macros que fiz com o codigo convertido para ter uma base Sub contaYtoXtoY(ByVal ValorIni As Long, ByVal ValorFim As Long, ByRef Coluno() as variant) Dim DL As Long, DCx As Long, VL As Long, N1 As Long, Ctx As Long, Cix As Long, Lix As Long, Lfx As Long, Nx As Long N1 = ValorIni Ctx = ValorFim Dim ColunO(N1 To Ctx, N1 To Ctx)' o original seria Redim ColunO(N1 To Ctx, N1 To Ctx) Lix = LinhaIni: Cix = 1: Lix = 1 DCx = 1: VL = 1 Nx = N1: Cx = Cix Lfx = Lix + Ctx - 1 For lx = Lix To Lfx Do If Nx > Ctx Or Nx < N1 Then VL = VL * -1: Nx = (Nx + VL) + VL End If ColunO(lx, Cx) = Nx Nx = Nx + VL Cx = Cx + DCx Loop Until Cx < Cix Or Cx > Lfx DCx = DCx * -1 Cx = Cx + DCx NextEnd Sub o programa converteu nisso public:void contaYtoXtoY(long long ValorIni, long long ValorFim, variant *Coluno[]){ long long DL = 0; long long DCx = 0; long long VL = 0; long long N1 = 0; long long Ctx = 0; long long Cix = 0; long long Lix = 0; long long Lfx = 0; long long Nx = 0; N1 = ValorIni; Ctx = ValorFim; Object ColunO[(N1 To Ctx) + 1][(N1 To Ctx) + 1]; Lix = LinhaIni; Cix = 1; Lix = 1; DCx = 1; VL = 1; Nx = N1; Cx = Cix; Lfx = Lix + Ctx - 1; for (void *lx = Lix; lx <= Lfx; lx++) { do { if (Nx > Ctx || Nx < N1) { VL = VL * -1; Nx = (Nx + VL) + VL; } ColunO[lx][Cx] = Nx; Nx = Nx + VL; Cx = Cx + DCx; } while ( ! (Cx < Cix || Cx > Lfx)); DCx = DCx * -1; Cx = Cx + DCx; }} o que eu quero é mais converter algumas macro de trabalho em arrays de analises , os arrays são do tipo variant
  5. hum, switchs são os Case certo, vb também tem Obs. eu não faço VB é apenas VBA ( PARA EXCEL) limitado ao programa sobre erros de programação eu já escutei(Li) alguns discursos acalorados sobre goto, gosub e variáveis publicas, nomes de variaveis muito curtos "a maioria com apenas 2 ou 3 letras até mesmo em uma macro de quase 500 linha, umas 50 variáveis de 3 letras , um punhado de Gosub que controla o fluxo e apenas 1 For mas não vou entrar em discussão sobre meu achismo sobre o assunto. Mas como você sairia de um monte de linhas desnecessárias ? For 1 if for 2 if fi for 3 fof 4 for 5 if true --->>>--- pule para o for 3 " no caso a contagem de for 4 e 5 é zerada if false --->>--- pule para o for 1 " no caso a contagem de for 2, 3 , 4 e 5 é zerada eu ainda não descobri uma maneira de se fazer isso facilmente sem usar o goto claro que tem o exit if, exit for ... mas para se sair da cascata seria trabalhoso Até
  6. "Se você fala que vb é de outro mundo, o que eu digo quando vejo os programas em C ?" mas é uma barreira linguística que estou querendo quebrar se bem que para mim é muito mais intuitivo "for n=1 to 10" contar de 1 até 10 e colocar o valor em n, do que for (i=0; i<5; i++) se bem que pelo que vi o C dá muito mais ferramentas e opções para loop arrays e comparações que é o que eu mais gosto de brincar, mas em contra partida de maneira muito mais complexa Bem em vb também desaconselham o uso do goto e do gosub mas é da época que o pessoal programava tipo espaguete como eu faço muito o uso de loops arrays e if then acabo usando o goto para pular todas as instruções quando não são mais necessárias mas explicando o codigo seria mais ou menos isso Ou: <<<Label para o gosub que chama o trecho ouLxO=10 For L = LxO To 1 Step -1 '<<--- for (L = LxO; L >= 1; L--) "acho que seria isso" If ResulFolm(L, 1) <> 2 Then <<-- if (ResulFolm[L][1]<>2) For c = Cid To Cfd '<<---for (c = Cid ; L < Cfd ; L++) v = ColunO(L, c) '<<--- V == ColunO[L][1] If Tipo <> "" Then <<-- if ( Tipo <> "" ) call Convert_tipo( v, Tipo)'é uma função de conversão de valor, "essa não descobri" End If For C2 = 1 To UBound(Comand) '<<---Conta de 1 até o final da array comand, como saber o tamanho de um array ? If v = Comand(C2) Then '<<-- se valor de v = ao valor de comand ResulFolm(L, 1) = 1 'adiciona o valor 1 na array ResulFolm GoTo pula_Ou <<--- pula os loop que não são mais necessários (função (OU) qualquer valor verdadeiro já passa no teste) End If Next Next ResulFolm(L, 1) = 2 <<-- se varrer todas as colunas e não achar algum valor maque como false(valor2) End Ifpula_Ou: Label(badeira) para o goto que pula os loops desnecessarios Next Return retorna para depois do Gosub que chamou estou fazendo uma macro que funciona como o Select do SQL para trabalhar com os dados da minha planilha mas ainda estou perdido nas formulas apesar de conseguir separar as partes
  7. cara não sei em C mas end normalmente é para finalizar algo scanf("%s",&c[i].end); já tive problemas no vba com nomes de funções e variarei que eram iguais a instruções já existentes que eu desconhecia, algumas somente davam erro com certos valores bem posso estar enganado, mas poderia tentar trocar o nome para ende *metendo o nariz em algo que nem sei que cheiro tem
  8. somente por motivo de curiosidade e já me preparando Como ficaria esse tipo de codigo em C ? é vba Ou: '------------------------------------------------------------------- '@Ou(#Data,%Semana,1,2,3) For L = LxO To 1 Step -1 If ResulFolm(L, 1) <> 2 Then For c = Cid To Cfd v = ColunO(L, c) If Tipo <> "" Then call Convert_tipo( v, Tipo)'é uma função de conversão de valor End If For C2 = 1 To UBound(Comand) If v = Comand(C2) Then ResulFolm(L, 1) = 1 ' True GoTo pula_Ou End If Next Next ResulFolm(L, 1) = 2 ' False End Ifpula_Ou: Next ReturnE: '------------------------------------------------------------------------------ Desculpa o uso do Goto , mas ainda não descobri uma maneira de pular todas as linhas quando não forem mais necessárias
  9. não entendi muito bem, e sou péssimo em matematica mas ve se é isso Private Sub btnCalcular_Click() If txta = "" Or txtb = "" Or txtc = "" Then MsgBox ("Todos os campos devem ser preenchidos!!!") ElseIf Val(txta) + Val(txtb) < Val(txtc) Or Val(txtc) + Val(txta) < Val(txtb) Or Val(txtc) + Val(txtb) < Val(txta) Then MsgBox ("Triangulo não existe ") ElseIf txta = txtb And txta = txtc Then MsgBox ("Triangulo Equilatero") ElseIf txta = txtb Or txta = txtc Or txtb = txtc Then MsgBox ("Triangulo Isosceles") Else MsgBox ("Triangulo Escaleno") End IfEnd Sub mas eu apliquei val() do vba que converte valor numerico em texto para numero não sei se funciona no VB
  10. Decidi fazer uma varredura completa dos dados para cada parte da formula e adicionar o resultado em, um array a parte, que tem a mesma quantidade de linhas em vez de colocar funções separadas e ter que definir varios atributos a cada vez, fiz numa mesma macro com chamada com Gosub " isso porque eu raciocino melhor assim", depois dependendo se pode separar para funções a parte mas a tradução da formula ainda está me dando uma surra ' simbolos dos comandos $ = plan ! = Setor # = coluna, Coluna do array de dados que vai ser analisada @ = Funções Expl. E,OU,Lin,Col,Retorno,"ou algo assim" % = Tipo 'Expl. If Tipo = "dia" Then Valor = Day(Valor) _ = Retorno "pensei em ter apenas o valor de uma das colunas como resultado para se filtrar outro setor por esse resultado !Despesas,@E(@E(#custo,@>,100,@Ou(#Data,%Semana,1,2,3)),@Ou(#Data,%Dia,1,4,12,31))_#Data,!Entradas seria algo assim : pega o setor !Despesas verifica se na linha na (coluna "#Data" a "%Semana" é igual a ( 1 ou 2 ou 3) e a coluna #custo o valor é maior "@ >" que 100) E (o dia da coluna #Data é igual a 1 ou 4 ou 12 ou 31) SE verdadeiro retorna a linha do Setor !Entradas que a data seja igual mas ainda estou enrolado numa melhor organização da formula e como fazer a leitura dela alguem teria uma ideia de como organizar melhor e como fazer a leitura por nó prioritário da formula?
  11. Ainda quebrando a cabeça com o Filtro "TIPO" Select de SQL mas (feito em vba para o excel) como são varia colunas e milhares de linhas a serem verificadas ficou algo moroso isso porque cada parte da formula tem que ser separada criada array e varrer as colunas de cada linha isso X a quantidade de linhas então pensei em criar um array com a mesma quantidade de linhas do setor a ser filtrado nisso apenas seria necessário definir cada parte da formula 1 vez e varrer todas as linhas do setor e marcar o array de saida com true ou false na proxima parte da formula somente varreria as linhas que fossem true e no final da formula apenas pegaria as linhas que tivessem como true ou até na criação da array do setor se definir uma coluna a mais para colocar o resultado das formulas será uma boa solução, e será que não limitaria a expansão do filtro futuramente ?
  12. Depois de uma boa dor de cabeça e seguindo para a execução do filtro e ser obrigado a mudar a sintaxe novamente me veio a cabeça se não era melhor executar a formula sequencialmente "!Despesas,@E(@Ou(#Data,%Semana,1,2,3,@E(nada,tudo)),@Ou(%Dia,1,4,12,31))" !Despesas>passa o setor para um array @E aciona o operador (E) qualquer valor falso descarta o resto da formula pertencente a ele @Ou Aciona o operador (OU) qualquer valor verdadeiro valida o resto da formula pertencente a ele ... eu consegui fazer um teste de filtragem aqui, mas não estou conseguindo elaborar questões mais complexas, tipo (filtrar a linha do setor se na mesma data o outro setor tiver certo valor) varredura sequencial facilitaria testes mais complexos, mas deixaria mais lento a operação a não ser que eu transformasse os operadores em numéricos e passasse para um array bem o fato é, ainda estou totalmente enrolado com isso
  13. bem acho que defini uma sintaxe apropriada para o que eu quero @E(!Despesas,1,2,3,@Ou(#Data,%Semana,1,2,3),@Ou(%Dia,1,4,12,31))@E(@Ou(!Despesas,#Data,%Semana,1,2,3,@E(nada,tudo)),@Ou(%Dia,1,4,12,31)) fiz uma função para separar as partes da formula 1º pela chave @ e depois por (***) Public Function Contfor(ByVal TextoX As String, Optional ByVal OcorrenciaX As Long) As String Dim pos As Long, Ax As Long, ltx As Long, ax2 As Long lent1 = Len(TextoX) For Ax = 1 To lent1 lety = Mid(TextoX, Ax, 1) If lety = "@" Then pos = pos + 1 If pos = OcorrenciaX Then nucle = 0: ax2 = Ax dd = 0 GoTo tex: End If Next Contfor = "Erro" Exit Functiontex: For Ax = ax2 To lent1 lety = Mid(TextoX, Ax, 1) If lety = "(" Then nucle = nucle + 1: dd = 1 If lety = ")" Then nucle = nucle - 1 If nucle = 0 And dd = 1 Then Contfor = Mid(TextoX, ax2, Ax - ax2 + 1) Exit Function End If Next End Function MsgBox Contfor(@E(@Ou(!Despesas,#Data,%Semana,1,2,3,@E(nada,tudo)),@Ou(%Dia,1,4,12,31)), 2)=@Ou(!Despesas,#Data,%Semana,1,2,3,@E(nada,tudo)) MsgBox Contfor(@E(@Ou(!Despesas,#Data,%Semana,1,2,3,@E(nada,tudo)),@Ou(%Dia,1,4,12,31)), 3)=@E(nada,tudo) MsgBox Contfor(@E(@Ou(!Despesas,#Data,%Semana,1,2,3,@E(nada,tudo)),@Ou(%Dia,1,4,12,31)), 4)=@Ou(%Dia,1,4,12,31) ainda preciso ajeitar alguns pontos importantes como as sub formulas que fazem parte das internas ou externas mas daqui para frente creio ser mais fácil
  14. é , está brabo pensei em deixar do jeito que estava para E e ou mas não acho uma maneira de quebrar a formula e que fique fácil executar por estágios corretos função que separa por estágios em uma array que uso para o antigo e para outras coisas Sub SplitVALArray(ByVal StringsVal As String, ByVal Separador As String, ByRef nomeArrayRetorno) cotin = Split(StringsVal, Separador) ReDim nomeArrayRetorno(1 To UBound(cotin) + 2) For h = 0 To UBound(cotin) v = cotin(h) If IsNumeric(v) = True Then nomeArrayRetorno(h + 1) = Val(v) Else nomeArrayRetorno(h + 1) = v End If NextEnd Sub Dim Comand() Aaaa = "!Despesas(#Data(@E(@Ou(%Semana,1,2,3))(@Ou(%Dia,1,4,12,31)))))" Call SplitVALArray(Aaaa, "(", Comand) ficaria assim: !Despesas --- #Data --- @E --- @Ou --- %Semana,1,2,3)) --- @Ou --- %Dia,1,4,12,31))))) --- pensando agora enquanto escrevo uma nova ideia pode ver como a posição e a simbologia é importante para facilitar a programação " ainda mais para quem sabe quase nada" ""|@E:@Ou(!Despesas,#Data,%Semana,1,2,3): @Ou(%Dia,1,4,12,31)]|""""|@Ou:@E(!Despesas,#Data,%Semana,1,2,3): @Ou(%Dia,1,4,12,31)]|"" = "!,@,#,$,%" ' simbolos dos comandos $ =plan ou BD, !=setor ou tabela, # =coluna,@ =comandos Ainda está difícil separar corretamente, mas já facilita Se a primeira letra for um @ ele separa por ":" no array se varre o array a partir da 2ª e verifica a primeira letra, se for novamente um @ o valor é novamente dividido se for ! define um array de dados do setor se for # define a coluna do setor a ser varrido se for % converte o valor da coluna na função especificada e usa a função de varredura no caso E,Ou se a função retornar true prosegue com a formula senão dependendo se for E ou OU para bem, seguindo com os testes e adaptações
  15. Achar uma sintaxe que facilite está mais difícil do que eu imaginei estou fazendo funções para quebrar a formula estou mudando a sintaxe de acordo para facilitar !Despesas ( @E ( #Data (@ E (@ Ou ( %Semana (1,2,3 ) ),@ Ou (% Dia(1,4,12,31 )))) essa macro é apenas para teste e desenvolvimento das funções e ordem de execução Sub testesdfsadf() Dim Comandx As String, Aaaa As String Aaaa = "!Despesas(@E(#Data(@E(@Ou(%Semana(1,2,3)),@Ou(%Dia(1,4,12,31))))" MsgBox FormulaPart(Aaaa, 1) Comandx = Left(Aaaa, 1) If Comandx = "$" Then Nome_Plan = Mid(Aaaa, 2, Postring(Aaaa, "(", 1) - 2) If Comandx = "!" Then Nome_Setor = Mid(Aaaa, 2, Postring(Aaaa, "(", 1) - 2) If Comandx = "#" Then Nome_Coluna = Mid(Aaaa, 2, Postring(Aaaa, "(", 1) - 2) If Comandx = "@" Then Nome_funcao = Mid(Aaaa, 2, Postring(Aaaa, "(", 1) - 2)End Sub estou fazendo essa para quebrar a formula, mas a sintaxe da formula que está me quebrando Public Function FormulaPart(ByVal FormulaX As String, ByVal OcorrenciaX As Long) As String v = ContLetra(FormulaX, "(", ")") FormulaPart = Left(FormulaX, Postring(FormulaX, ")", v))End Function retorna quantidade de letras da frase com opção de contar até achar uma letra especifica ContLetra("casa","a") =2 ContLetra("casa de ferias","a","s") =1 Public Function ContLetra(ByVal TextoX As String, ByVal LetraX As String, Optional ByVal Ate_Letrab As String) As Long Dim pos As Long, Ax As Long, ltx As Long ltx = Len(LetraX) lty = Len(Ate_Letrab) For Ax = 1 To Len(TextoX) If LetraX = Mid(TextoX, Ax, ltx) Then pos = pos + 1 If Ate_Letrab = Mid(TextoX, Ax, lty) Then ContLetra = pos: Exit Function Next ContLetra = posEnd Function função que retorna a posição de uma letra ou conjunto pela ocorrência Postring("casa","a",2) =4 Public Function Postring(ByVal TextoX As String, ByVal LetraX As String, ByVal OcorrenciaX As Long) As Long Dim pos As Long, Ax As Long, ltx As Long pos = 0 ltx = Len(LetraX) For Ax = 1 To Len(TextoX) If LetraX = Mid(TextoX, Ax, ltx) Then pos = pos + 1 If pos = OcorrenciaX Then Postring = Ax: Exit Function End If Next Postring = 0End Function parece que para não complicar muito vou ter que colocar algumas coisas como obrigatórias
  16. Ola, Fiquei em duvida em onde colocar a pergunta, mas como tem a ver com estrutura Estou fazendo um filtro em VBA que funciona como formulas com E, OU , >= , <= , = ,< , SE no momento somente tem a estrutura de E e OU No caso esse filtro vai funcionar como o select do SQL, trazendo apenas as informações pertinentes Estrutura da planilha se assemelha a um Banco de Dados Abas = BD Setores = Tabelas "limitado em 10" Colunas dos setores = colunas das tabelas "Min=3 colunas [dados] (Mais colunas Fixas [ cod , data , 2 aux ] ), Max =500 colunas (não vi motivo para ter mais)" para o E e o OU usei ":" e ";" como símbolos no caso eu uso um userform com caixas de textos e combo box para escolher a aba e o setor que eu quero filtrar e para onde vai o resultado(qualquer setor da aba ativa) exemplo Ana:Saída:25;1200 vai retornar todas as linhas do setor escolhido que tenha( (Ana "E" Saída) "E" (25 "OU" 1200 )) no excel seria =E("Ana";"Saída";Ou(25;1200)) agora vou refazer o filtro e deixar mais dinâmico e completo Vou adicionar o uso de ( ) para separar conjuntos de regras Pois bem, Não tenho dificuldades para fazer as macros, mas... Que tipo de simbologia usar e que tipo de estrutura usar para não criar conflito entre dados e comandos e ficar fácil de escrever e de entender ? Pensei em usar & para a aba ! para iniciar nomes de setores # para ficar na frente de nomes de colunas e virgula como separador padrão algo como &Controle,!Despesas, #Data, >= , 06/05/2015 : <= , 05/12/2015 filtraria todas as linha do setor Despesas da aba controle em que a coluna Data tivesse valor >= 06/05/2015 E <= 05/12/2015 Certo, seria algo simples se fosse somente isso , mas eu quero colocar alguns comandos para valores fragmentados tipo Filtrar dias da semana que o dia fosse um dia especifico algo como @ para comandos !Despesas, #Data,( @ Semana,1;2;3) : ( @ Dia,1;4;12;31) não sei se ficaria legal e fácil de lembrar a estrutura ainda tem os comandos de estrutura como coluna, linha e retorno @ Se,( !Despesas, #Data,( @ Semana,1;2;3) : ( @ Dia,1;4;12;31) ), @ Lin ,!Renda seria Se dia da semana for ( 1 ou 2 ou 3 ) E o dia for (1 ou 2 ou 12 ou 31) então retorne valor da mesma linha do setor renda @ Se,( !Despesas, #Data, ( @ Semana,1;2) : ( @ Dia,1) : # Tipo, carro ), @ data , ! manutenção retornaria a linha do setor manutenção que tivesse a mesma data carro aparece no setor despesas nos dias de semana 1 ou 2 e que o sia do mes fosse 1 a estrutura da macro eu já sei como fazer mas antes tenho que definir como fica a escrita das "Formulas" o que eu coloquei aí em cima seria apenas uma ideia padrão sem nada definido ainda para a macro eu não tenho duvidas uso arrays loops for next , if then, e funções e macros que já fiz Se alguém que tenha base e que possa me ajudar nessa estruturação Olha, qualquer ajuda é bem vinda, o que eu não quero é ter que ficar remendando depois pode parecer algo bobo mas eu sempre tenho problemas com isso, tudo que eu faço funciona e de maneira bem otimizada, mas acaba ficando uma bagunça só
  17. O problema que eu enfrento é de chamadas, vira e volta eu fico com conexões abertas e/ou dá erro pela falta da conexão no geral não enfrento problemas com o banco de dados, mas pelo projeto ser genérico e ter que se adaptar a planilha criei módulos de comandos para se comunicar ao banco de dados estou ajustando aos poucos para evitar os erros, o difícil é conciliar com outras pendencias que já tenho o acces pelas limitações que eu li não caberia os dados que eu estou querendo , claro que facilitaria não ter que ficar instalando e configurando outros programas, mas sobre comunicação é praticamente a mesma coisa, com ressalva com certos parâmetros que pelo que vi cada banco tem suas particularidades para falar a verdade nem a pergunta que fiz faz sentido
  18. vamos ser sinceros né, é maluquice sim mas como eu me conheço e sei que se não definir algo robusto e que eu goste para iniciar eu logo iria desistir e tem o fato de somente aprender lendo o basico tentar fazer algo e implementar e mudar até funcionar "método de aprendizagem nada otimizado" bem nem seria um banco de dados, seria mais como uma tabela estou definindo um rumo a estrutura de um programa em C e do uso da ide DEV os principais comandos entender a estrutura das variáveis e arrays da linguagem a estrutura dos laços e os tipos de comparação de valores como criar um arquivo para guardar os dados depois disso eu consigo ir brincando mais facilmente e me divertir enquanto aprendo
  19. Ola a todos Estou pensando em aprender a programar em C e para não perder o foco e o interesse tenho que definir um projeto para ir aprendendo e implementando pensei em tentar fazer um banco de dados simples como projeto, não que eu tenha a pretensão de fazer um, é a pena para estudo e aprendizagem Tá, sei, é meio "muita" maluquice começar com algo assim, sendo que não tenho nem base da linguagem C nem da estrutura de um banco de dados mas como tem a ver com meu projeto inicial com o qual aprendi a mexer com excel e vba e estou implementando o postgres como banco de dados vai me fazer ter um maior esfosso na aprendizagem pesquisando aqui sobre a estrutura achei um link com algo para poder ter uma ideia por onde começar "acho que o cara perdeu o interesse pelas criticas aleias" http://www.hardware.com.br/comunidade/banco-desenvolvendo/317794/ então se alguem tiver algo de estruturação e programação em cima do assunto para me passar eu agradeço lembrando que apenas estou tentando aprender, somente vou usar para ter um rumo Até
  20. Enquanto não consigo fazer a programação pelo próprio sql " nada parece ter padrão naquilo, nem os comandos" estou montando o controle do postgres pelo vba mesmo já consigo fazer bastante coisa: criar bd já com um usuario ou sem usuario vinculado "pelo ativo" criar usuario "por algum motivo não consegui excluir pelo vba, mas deve ser pelas associações" listar usuários todos ou apenas conectados criar tabela, listar tabelas inserir coluna inserir valores em colunas buscar valores e alguns intermediários, tipo trocar usuario ativo, trocar banco Mas antes de dar sequencia preciso estruturar os comandos e suas sequencias, pelo menos para conectar e desconectar tipo, eu deixo isoladas para serem chamadas em cascata ou defino já a macro de maneira completa? modo independente firaria sub test() desconecta_sql Call Conecta_Banco("teste", "edcron", "123") MsgBox Tabela_existe("casa")end subdessa forma tem a facilidade de se fazer varias coisas dentro do banco sem precisar ficar definindo o nome do bando usuario e senha para cada ação sendo que a senha vai estar no proprio banco e não no excel e para não dar erro se verifica se o usuario existe tem a possibilidade de em cada ação se ter que entrar todos os dados sub test() if Tabela_existe("casa", "teste", "edcron", "123")=true thenend sub mesmo eu fazendo o controle pelo vba do excel, muitas verificações vai ter que ser pelo sql, tipo se o usuario existe, que tem que ser com permissão de superusuário por isso quero "tentar " criar funções que tenham permissões interna de superusuarios mas que possam ser chamados por qualquer um deles apenas para ter true ou false como retorno
  21. estou começando agora a mexer com banco de dados estou usando o postgresql quero incorporar o controle multidirecional entre excel(vba) e o bd então gostaria de saber como criar funções no sql que retorne por exemplo "False" ou "True" para o vba ou uma array com dados? tipo, fiz essa função para verificar se usuario existe e assim evitar erros por usuário não existente Function Usuario_existe(ByVal Nome_Usuario As String) As Boolean Conecta_Banco Set Rs = New ADODB.Recordset Rs.Open "SELECT usename FROM pg_user", Cn ' Do Until Rs.EOF ' If Rs(0).value = Nome_Usuario Then Usuario_existe = True: GoTo termina ' Rs.MoveNext ' Loop Coluno = Rs.GetRows For Each vn In Coluno If vn = Nome_Usuario Then Usuario_existe = True Rs.Close Set Rs = Nothing Exit Function End If Next Usuario_existe = False Rs.Close Set Rs = NothingEnd Function como poderia chamar o mesmo tipo de função no proprio BD pelo vba e pegar o resultado? pode ser um exemplo do sql, não precisa ser criado pelo vba --------------------------------------------------------------------------------------------------------------------------------- pelo vba eu consigo de varias maneiras, mas no próprio sql está difícil fazer algo que funcione estou achando muito confuso a sintaxe e os comandos
  22. eu pensei nisso, mas olhando a parte que apareceu me deparei com componentes que não sei se tem aqui ou se vou ter algum equivalente, provavelmente tenho, mas procurar vai ser uma dor de cabeça.
  23. eu estou disposto a comprar os LM, mas tenho muitos componentes aqui, e muitos nunca foram usados ci´s trasistores diodos e por aí vai, a maioria é sim de sucata eu gostava de fazer montagens, mas desanimei da eletronica e larguei de lado a alguns anos, ainda gosto de consertar alguns aparelhos "principalmente aqueles em que nunca mexi"
  24. achei interessante o assunto, mas você´s me deixaram confuso funciona ou não seria bom porque são componentes que talvez eu já possua
  25. primeiramente obrigado pela indicação da loja. ------------------------------------------------------- ------------------------------------------------------------ E, estamos falindo mesmo, menos os brasileiros estelionatários no poder mas é R$20 já montado com todas as outras peças imagina o preço de 1 tripot multivolta desse "tá vi o preço e não é tão caro assim" mais aquela bobina , quem não tiver vai ter que comprar eu tenho alguns núcleos toroidal de placa mãe "nem sei se serve" o fato é, não é apenas os altos impostos, é toda a burocracia envolvida já vi relatos de gente esperando 90 dias para ter a encomenda, e isso sendo que ela levou menos de 1 semana para chegar ao brasil, e além dos imposto e frete, ainda é obrigado a pagar uma taxa nos correios. Sim, petrobras, aqui no rio teve gente fazendo passeata, fechando ruas, com chamado pelo governo, o governador queria os royalties já vi cidades que ganhava uma fortuna com isso e apenas fez pracinhas enquanto a população tinha que ir na cidade vizinha que não tinha as regalias para ter tratamento medico. todos falam, a petrobras é nossa. nossa quem? eu nunca tive nenhum lucro dela, nem mesmo passagens baratas para ir trabalhar por que o combustível era em conta, já que era extraido aqui por uma empresa brasileira. mas é daí para pior, sim vai piorar cada vez mais, em parte por causa da ganancia dos brasileiros que governam o brasil e não estão nem aí para melhorias "nem mesmo para poder roubar mais" outra parte por culpa dos brasileiros que somente pesam em curto prazo e ganhos imediatos. professores, caminhoneiros, policiais, bombeiros, motoristas, ... que apenas fazem greve para melhorias dos próprios salarios, e esquecem que com o aumento dos salarios vem o aumento dos custos, e isso cria um circulo vicioso, no final somente ganha quem aumenta seus salarios como quer e não sofre com possiveis perdas (quem???) ... bem, vai chegar ao case caos até ter mudanças que realmente mude alguma coisa para melhor, "leis que puna severamente quem rouba dinheiro publico, impostos justos e selecionados por por setores setores de importância, deveres junto das regalias, uma pessoa ou empresa não pode ter apegas regalias mas deveres para cumprir para se receber as regalias, educação de nossas crianças, criança não é outra especie, é um futuro adulto, e todo adulto já foi uma criança " e por aí vai.

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!