Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
[Resolvido]Formulário "Out of range"
-
- Colaborador
- Mensagens: 61
- Registrado em: Dom Set 02, 2012 3:00 pm
[Resolvido]Formulário "Out of range"
Boa noite minha boa gente
Podem ajudar-me na solução do problema que tenho com o userform4, pois, não consigo que ele execute, dá erro 9, "out of rage", por mais voltas que faça não chego lá. O que pretendo com este formulário é das abas de 1 a 12 retirar quais os clientes que estão em falta na coluna "G", tendo por base a palavra "Vencido" da coluna "H".
Desde já obrigado e grato pela vossa paciência e amabilidade.
RMaciel
Podem ajudar-me na solução do problema que tenho com o userform4, pois, não consigo que ele execute, dá erro 9, "out of rage", por mais voltas que faça não chego lá. O que pretendo com este formulário é das abas de 1 a 12 retirar quais os clientes que estão em falta na coluna "G", tendo por base a palavra "Vencido" da coluna "H".
Desde já obrigado e grato pela vossa paciência e amabilidade.
RMaciel
- Anexos
-
- Contas-a-receber.7z
- (95.58 KiB) Baixado 230 vezes
Editado pela última vez por Rui Maciel em Dom Nov 10, 2019 10:38 am, em um total de 3 vezes.
-
- Colaborador
- Mensagens: 61
- Registrado em: Dom Set 02, 2012 3:00 pm
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: Formulário "Out of range"
Primeiro suas palnilhas tem numeros "01"/"02".. e combobox recebe/devolve 1/2/3/....
é preciso ajustar/compatibilizar isso.
é preciso ajustar/compatibilizar isso.
-
- Colaborador
- Mensagens: 61
- Registrado em: Dom Set 02, 2012 3:00 pm
Re: Formulário "Out of range"
Bom dia e obrigado Reinaldo, era isso mesmo, grato.
No entanto, aparecem todas as linhas e somente queria que só devolvesse as linhas onde tem "Vencido".
RMaciel
No entanto, aparecem todas as linhas e somente queria que só devolvesse as linhas onde tem "Vencido".
RMaciel
- Anexos
-
- Contas-a-receber.7z
- (97.97 KiB) Baixado 231 vezes
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: Formulário "Out of range"
Experimente utilizar a rotina <ComboBox1_Change> alterada conforme abaixo:
Código: Selecionar todos
Private Sub ComboBox1_Change()
Dim REGISTROS(8 To 154, 2 To 8) As String
Dim linha As Long, LINHA2 As Long
Dim R As Integer
If Me.ComboBox1.ListIndex >= 0 Then
ListBox1.ColumnCount = 6
LINHA2 = 8
For linha = 9 To Sheets(ComboBox1.Value).Cells(Rows.Count, 8).End(xlUp).Row
If UCase(CStr(Sheets(ComboBox1.Value).Cells(linha, "H").Value)) = "VENCIDO" Then
For R = 2 To 8
REGISTROS(LINHA2, R) = CStr(Sheets(ComboBox1.Value).Cells(linha, R).Value)
Next R
LINHA2 = LINHA2 + 1
End If
Next linha
ListBox1.List = REGISTROS
End If
End Sub[/code~]
-
- Colaborador
- Mensagens: 61
- Registrado em: Dom Set 02, 2012 3:00 pm
Re: Formulário "Out of range"
Boa noite e obrigado Reinaldo, você é muito bom em vba, obrigado.
Só precisava de mais uma ajudinha, ou seja, através do userform pesquisar, pretendia que ao selecionar o nome na combobox (que estão na coluna 3 das folhas), a pesquisa percorresse as folhas de 1 a 12 e lançasse na listbox os meses vencidos do nome selecionado na combobox.
Agradecido grato,
RMaciel
Só precisava de mais uma ajudinha, ou seja, através do userform pesquisar, pretendia que ao selecionar o nome na combobox (que estão na coluna 3 das folhas), a pesquisa percorresse as folhas de 1 a 12 e lançasse na listbox os meses vencidos do nome selecionado na combobox.
Agradecido grato,
RMaciel
- Anexos
-
- Contas-a-receber.7z
- (112.35 KiB) Baixado 213 vezes
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: Formulário "Out of range"
Experimente alterando a rotina "ComboBox1_Change" do Formulario <ufm_pesquisar> conforme abaixo:
Código: Selecionar todos
Private Sub ComboBox1_Change()
Dim REGISTROS(8 To 154, 2 To 8) As String
Dim linha As Long, LINHA2 As Long
Dim X As Integer, R As Integer
If Me.ComboBox1.ListIndex >= 0 Then
ListBox1.ColumnCount = 7
LINHA2 = 8
For X = 1 To 12
For linha = 9 To Sheets(X).Cells(Rows.Count, 3).End(xlUp).Row
If UCase(CStr(Sheets(X).Cells(linha, "C").Value)) = ComboBox1.Value And UCase(CStr(Sheets(X).Cells(linha, "H").Value)) = "VENCIDO" Then
For R = 2 To 8
REGISTROS(LINHA2, R) = CStr(Sheets(X).Cells(linha, R).Value)
Next R
LINHA2 = LINHA2 + 1
End If
Next linha
Next X
ListBox1.List = REGISTROS
End If
End Sub
-
- Colaborador
- Mensagens: 61
- Registrado em: Dom Set 02, 2012 3:00 pm
Re: Formulário "Out of range"
Muito obrigado Reinaldo, muito bom, você é mestre.
Eu estava a consolidar para uma folha e depois pesquisava, mas a forma como você implementou é muito boa.
Agradecido,
RMaciel
Eu estava a consolidar para uma folha e depois pesquisava, mas a forma como você implementou é muito boa.
Agradecido,
RMaciel
-
- Colaborador
- Mensagens: 61
- Registrado em: Dom Set 02, 2012 3:00 pm
Re: [Resolvido]Formulário "Out of range"
Só alterei no código o seguinte para formatar algumas colunas da listbox para moeda:
Dim REGISTROS(8 To 154, 2 To 8) As String
Dim linha As Long, LINHA2 As Long
Dim X As Integer
If Me.ComboBox1.ListIndex >= 0 Then
LINHA2 = 8
For X = 1 To 12
For linha = 9 To Sheets(X).Cells(Rows.Count, 3).End(xlUp).Row
If UCase(Sheets(X).Cells(linha, "C").Value) = ComboBox1.Value And UCase(Sheets(X).Cells(linha, "H").Value) = "VENCIDO" Then
REGISTROS(LINHA2, 2) = Sheets(X).Cells(linha, 2).Value
REGISTROS(LINHA2, 3) = Sheets(X).Cells(linha, 3).Value
REGISTROS(LINHA2, 4) = Format(Sheets(X).Cells(linha, 4).Value, "currency")
REGISTROS(LINHA2, 5) = Format(Sheets(X).Cells(linha, 5).Value, "currency")
REGISTROS(LINHA2, 6) = Sheets(X).Cells(linha, 6).Value
REGISTROS(LINHA2, 7) = Format(Sheets(X).Cells(linha, 7).Value, "currency")
REGISTROS(LINHA2, 8) = Sheets(X).Cells(linha, 8).Value
LINHA2 = LINHA2 + 1
End If
Next linha
Next X
ListBox1.List = REGISTROS
End If
End Sub
Obrigado mais uma vez.
RMaciel
Dim REGISTROS(8 To 154, 2 To 8) As String
Dim linha As Long, LINHA2 As Long
Dim X As Integer
If Me.ComboBox1.ListIndex >= 0 Then
LINHA2 = 8
For X = 1 To 12
For linha = 9 To Sheets(X).Cells(Rows.Count, 3).End(xlUp).Row
If UCase(Sheets(X).Cells(linha, "C").Value) = ComboBox1.Value And UCase(Sheets(X).Cells(linha, "H").Value) = "VENCIDO" Then
REGISTROS(LINHA2, 2) = Sheets(X).Cells(linha, 2).Value
REGISTROS(LINHA2, 3) = Sheets(X).Cells(linha, 3).Value
REGISTROS(LINHA2, 4) = Format(Sheets(X).Cells(linha, 4).Value, "currency")
REGISTROS(LINHA2, 5) = Format(Sheets(X).Cells(linha, 5).Value, "currency")
REGISTROS(LINHA2, 6) = Sheets(X).Cells(linha, 6).Value
REGISTROS(LINHA2, 7) = Format(Sheets(X).Cells(linha, 7).Value, "currency")
REGISTROS(LINHA2, 8) = Sheets(X).Cells(linha, 8).Value
LINHA2 = LINHA2 + 1
End If
Next linha
Next X
ListBox1.List = REGISTROS
End If
End Sub
Obrigado mais uma vez.
RMaciel
-
- Colaborador
- Mensagens: 61
- Registrado em: Dom Set 02, 2012 3:00 pm
Re: Formulário "Out of range"
Bom dia
Reabri o tópico, pois, nos userform´s 1 e 4 quando pretendo saber o que cada cliente pagou ou quanto se recebeu naquele mês, não sai a informação correta, isto é, se algum cliente pagou só uma parte dos seus honorários (valor inscrito na coluna ""E") e como na coluna "H" está inscrito "Vencido", não aparece na listbox do userform. Tem forma de como solucionar, é que já pesquisei e não encontro uma hipótese para finalizar.
Grato desde já,
RMaciel
Reabri o tópico, pois, nos userform´s 1 e 4 quando pretendo saber o que cada cliente pagou ou quanto se recebeu naquele mês, não sai a informação correta, isto é, se algum cliente pagou só uma parte dos seus honorários (valor inscrito na coluna ""E") e como na coluna "H" está inscrito "Vencido", não aparece na listbox do userform. Tem forma de como solucionar, é que já pesquisei e não encontro uma hipótese para finalizar.
Grato desde já,
RMaciel
- Anexos
-
- Contas-a-receber.7z
- (254.63 KiB) Baixado 226 vezes