nunoquelhas
07-02-2015, 10:40 AM
Hi there! I'm new to his forum, so I don't know if I'm posting in the right section, but I'm a bit desperate... i've been struggling with a run-time error 91 all day, without understanding where it is. I'm also new to the vba programming, so the code may seem a bit amateur to the most experts... PLEASE HELP!!! it only errors on leaving the form. until I click the cmdCLOSE_click() it works great!
here's the code:
Private Sub UserForm_initialize()
With Me
.dropRESPinterno.TabIndex = 1
.boxDATArecDOC.TabIndex = 2
.dropCLT.TabIndex = 3
.boxCEprev.TabIndex = 4
.boxLOCALchave.TabIndex = 5
.dropLEVANTAchave.TabIndex = 6
.boxARTIGO.TabIndex = 7
.boxREGISTO.TabIndex = 8
.boxMORADA.TabIndex = 9
.boxFRACAO.TabIndex = 10
.boxDISTRITO.TabIndex = 11
.boxCONCELHO.TabIndex = 12
.boxFREGUESIA.TabIndex = 13
.boxCOORDENADAS.TabIndex = 14
.dropELEMENTOSfornecidos.TabIndex = 15
.dropTIPO.TabIndex = 16
.dropTIPOLOGIA.TabIndex = 17
.dropTECcalc.TabIndex = 18
.dropTEClevant.TabIndex = 19
.boxDATAenvioDOC.TabIndex = 20
.cmdALTERAR.TabIndex = 21
.cmdCLOSE.TabIndex = 22
End With
Dim aCell1 As Range
For Each aCell1 In Range("RESPONSAVEL")
dropRESPinterno.AddItem (aCell1.Value)
Next
Dim aCell2 As Range
For Each aCell2 In Range("CLIENTES")
dropCLT.AddItem (aCell2.Value)
Next
Dim aCell3 As Range
For Each aCell3 In Range("CHAVES")
dropLEVANTAchave.AddItem (aCell3.Value)
Next
Dim aCell4 As Range
For Each aCell4 In Range("ELEMENTOS")
dropELEMENTOSfornecidos.AddItem (aCell4.Value)
Next
Dim aCell5 As Range
For Each aCell5 In Range("TIPO")
dropTIPO.AddItem (aCell5.Value)
Next
Dim aCell6 As Range
For Each aCell6 In Range("TIPOLOGIA")
dropTIPOLOGIA.AddItem (aCell6.Value)
Next
Dim acell7 As Range
For Each acell7 In Range("CALCULO")
dropTECcalc.AddItem (acell7.Value)
Next
Dim aCell8 As Range
For Each aCell8 In Range("LEVANTAMENTO")
dropTEClevant.AddItem (aCell8.Value)
Next
Dim CODprocesso As String
Dim row_CODproc As Single
CODprocesso = InputBox("Insere o CÓDIGO DE PROCESSO a pesquisar e editar")
row_CODproc = Application.Match(CODprocesso, Worksheets("GESTÃO PROCESSOS").Range("CODproc"), 0)
fieldCODprocesso = CODprocesso
fieldIDprocessoCLT = Worksheets("GESTÃO PROCESSOS").Range("IDprocessoCLT").Item(row_CODproc).Value
fieldCODoutrosCLT = Worksheets("GESTÃO PROCESSOS").Range("outrosCODclt").Item(row_CODproc).Value
fieldRESPinterno = Worksheets("GESTÃO PROCESSOS").Range("RESPinterno").Item(row_CODproc).Value
fieldDATArecDOC = Worksheets("GESTÃO PROCESSOS").Range("DATArecDOC").Item(row_CODproc).Value
fieldCLT = Worksheets("GESTÃO PROCESSOS").Range("CLT").Item(row_CODproc).Value
fieldCEprevistos = Worksheets("GESTÃO PROCESSOS").Range("CEprevistos").Item(row_CODproc).Value
fieldLOCALchaves = Worksheets("GESTÃO PROCESSOS").Range("LOCALchaves").Item(row_CODproc).Value
fieldquemLEVANTA = Worksheets("GESTÃO PROCESSOS").Range("quemLEVANTA").Item(row_CODproc).Value
fieldARTIGO = Worksheets("GESTÃO PROCESSOS").Range("ARTIGO").Item(row_CODproc).Value
fieldREGISTO = Worksheets("GESTÃO PROCESSOS").Range("REGISTO").Item(row_CODproc).Value
fieldMORADA = Worksheets("GESTÃO PROCESSOS").Range("MORADA").Item(row_CODproc).Value
fieldFRACAO = Worksheets("GESTÃO PROCESSOS").Range("FRACAO").Item(row_CODproc).Value
fieldDISTRITO = Worksheets("GESTÃO PROCESSOS").Range("DISTRITO").Item(row_CODproc).Value
fieldCONCELHO = Worksheets("GESTÃO PROCESSOS").Range("CONCELHO").Item(row_CODproc).Value
fieldFREGUESIA = Worksheets("GESTÃO PROCESSOS").Range("FREGUESIA").Item(row_CODproc).Value
fieldCOORDENADAS = Worksheets("GESTÃO PROCESSOS").Range("COORDENADAS").Item(row_CODproc).Value
fieldELEMENTOSfornecidos = Worksheets("GESTÃO PROCESSOS").Range("ELEMENTOSfornecidos").Item(row_CODproc).Value
fieldTIPO = Worksheets("GESTÃO PROCESSOS").Range("TIPOimovel").Item(row_CODproc).Value
fieldTIPOLOGIA = Worksheets("GESTÃO PROCESSOS").Range("TIPOLOGIAimovel").Item(row_CODproc).Value
fieldTECcalc = Worksheets("GESTÃO PROCESSOS").Range("TECcalculo").Item(row_CODproc).Value
fieldTEClevanta = Worksheets("GESTÃO PROCESSOS").Range("TEClevanta").Item(row_CODproc).Value
fieldDATAenvioDOC = Worksheets("GESTÃO PROCESSOS").Range("DATAenvioDOC").Item(row_CODproc).Value
UserForm1.Show
End Sub
Private Sub cmdALTERAR_click()
'alteracao dos valores da tabela, caso os campos (editaveis) nao estejam vazios
novoresp:
If IsEmpty(dropRESPinterno) Then
MsgBox ("RESPONSAVEL nao atribuido!")
GoTo nova_data
End If
Worksheets("GESTÃO PROCESSOS").Range("RESPinterno").Item(row_CODproc + 2).Value = dropRESPinterno.Value
nova_data:
If IsEmpty(boxDATArecDOC) Then
GoTo novo_clt
End If
Worksheets("GESTÃO PROCESSOS").Range("DATArecDOC").Item(row_CODproc + 2).Value = boxDATArecDOC
novo_clt:
If IsEmpty(dropCLT) Then
GoTo novo_ceprevistos
End If
Worksheets("GESTÃO PROCESSOS").Range("CLT").Item(row_CODproc + 2).Value = dropCLT
novo_ceprevistos:
If IsEmpty(boxCEprevistos) Then
GoTo novo_local
End If
Worksheets("GESTÃO PROCESSOS").Range("CEprevistos").Item(row_CODproc + 2).Value = boxCEprevistos
novo_local:
If IsEmpty(boxLOCALchaves) Then
GoTo novo_quemLEVANTA
End If
Worksheets("GESTÃO PROCESSOS").Range("LOCALchaves").Item(row_CODproc + 2).Value = boxLOCALchaves
novo_quemLEVANTA:
If IsEmpty(dropquemLEVANTA) Then
GoTo novo_artigo
End If
Worksheets("GESTÃO PROCESSOS").Range("quemLEVANTA").Item(row_CODproc + 2).Value = dropquemLEVANTA
novo_artigo:
If IsEmpty(boxARTIGO) Then
GoTo novo_registo
End If
Worksheets("GESTÃO PROCESSOS").Range("ARTIGO").Item(row_CODproc + 2).Value = boxARTIGO
novo_registo:
If IsEmpty(boxREGISTO) Then
GoTo nova_morada
End If
Worksheets("GESTÃO PROCESSOS").Range("REGISTO").Item(row_CODproc + 2).Value = boxREGISTO
nova_morada:
If IsEmpty(boxMORADA) Then
GoTo nova_fracao
End If
Worksheets("GESTÃO PROCESSOS").Range("MORADA").Item(row_CODproc + 2).Value = boxMORADA
nova_fracao:
If IsEmpty(boxFRACAO) Then
GoTo novo_distrito
End If
Worksheets("GESTÃO PROCESSOS").Range("FRACAO").Item(row_CODproc + 2).Value = boxFRACAO
novo_distrito:
If IsEmpty(boxDISTRITO) Then
GoTo novo_concelho
End If
Worksheets("GESTÃO PROCESSOS").Range("DISTRITO").Item(row_CODproc + 2).Value = boxDISTRITO
novo_concelho:
If IsEmpty(boxCONCELHO) Then
GoTo nova_freguesia
End If
Worksheets("GESTÃO PROCESSOS").Range("CONCELHO").Item(row_CODproc + 2).Value = boxCONCELHO
nova_freguesia:
If IsEmpty(boxFREGUESIA) Then
GoTo nova_coord
End If
Worksheets("GESTÃO PROCESSOS").Range("FREGUESIA").Item(row_CODproc + 2).Value = boxFREGUESIA
nova_coord:
If IsEmpty(boxCOORDENADAS) Then
GoTo novo_elementos
End If
Worksheets("GESTÃO PROCESSOS").Range("COORDENADAS").Item(row_CODproc + 2).Value = boxCOORDENADAS
novo_elementos:
If IsEmpty(dropELEMENTOSfornecidos) Then
GoTo novo_tipo
End If
Worksheets("GESTÃO PROCESSOS").Range("ELEMENTOSfornecidos").Item(row_CODproc + 2).Value = dropELEMENTOSfornecidos
novo_tipo:
If IsEmpty(dropTIPO) Then
GoTo nova_tipologia
End If
Worksheets("GESTÃO PROCESSOS").Range("TIPOimovel").Item(row_CODproc + 2).Value = dropTIPO
nova_tipologia:
If IsEmpty(dropTIPOLOGIA) Then
GoTo novo_TECcalc
End If
Worksheets("GESTÃO PROCESSOS").Range("TIPOLOGIAimovel").Item(row_CODproc + 2).Value = dropTIPOLOGIA
novo_TECcalc:
If IsEmpty(dropTECcalc) Then
GoTo novo_TEClevanta
End If
Worksheets("GESTÃO PROCESSOS").Range("TECcalculo").Item(row_CODproc + 2).Value = dropTECcalc
novo_TEClevanta:
If IsEmpty(dropTEClevanta) Then
GoTo nova_DATAenvio
End If
Worksheets("GESTÃO PROCESSOS").Range("TEClevanta").Item(row_CODproc + 2).Value = dropTEClevanta
nova_DATAenvio:
If IsEmpty(boxDATAenvioDOC) Then
Exit Sub
End If
Worksheets("GESTÃO PROCESSOS").Range("DATAenvioDOC").Item(row_CODproc + 2).Value = boxDATAenvioDOC
End Sub
Private Sub cmdCLOSE_Click()
Unload Me
End Sub
here's the code:
Private Sub UserForm_initialize()
With Me
.dropRESPinterno.TabIndex = 1
.boxDATArecDOC.TabIndex = 2
.dropCLT.TabIndex = 3
.boxCEprev.TabIndex = 4
.boxLOCALchave.TabIndex = 5
.dropLEVANTAchave.TabIndex = 6
.boxARTIGO.TabIndex = 7
.boxREGISTO.TabIndex = 8
.boxMORADA.TabIndex = 9
.boxFRACAO.TabIndex = 10
.boxDISTRITO.TabIndex = 11
.boxCONCELHO.TabIndex = 12
.boxFREGUESIA.TabIndex = 13
.boxCOORDENADAS.TabIndex = 14
.dropELEMENTOSfornecidos.TabIndex = 15
.dropTIPO.TabIndex = 16
.dropTIPOLOGIA.TabIndex = 17
.dropTECcalc.TabIndex = 18
.dropTEClevant.TabIndex = 19
.boxDATAenvioDOC.TabIndex = 20
.cmdALTERAR.TabIndex = 21
.cmdCLOSE.TabIndex = 22
End With
Dim aCell1 As Range
For Each aCell1 In Range("RESPONSAVEL")
dropRESPinterno.AddItem (aCell1.Value)
Next
Dim aCell2 As Range
For Each aCell2 In Range("CLIENTES")
dropCLT.AddItem (aCell2.Value)
Next
Dim aCell3 As Range
For Each aCell3 In Range("CHAVES")
dropLEVANTAchave.AddItem (aCell3.Value)
Next
Dim aCell4 As Range
For Each aCell4 In Range("ELEMENTOS")
dropELEMENTOSfornecidos.AddItem (aCell4.Value)
Next
Dim aCell5 As Range
For Each aCell5 In Range("TIPO")
dropTIPO.AddItem (aCell5.Value)
Next
Dim aCell6 As Range
For Each aCell6 In Range("TIPOLOGIA")
dropTIPOLOGIA.AddItem (aCell6.Value)
Next
Dim acell7 As Range
For Each acell7 In Range("CALCULO")
dropTECcalc.AddItem (acell7.Value)
Next
Dim aCell8 As Range
For Each aCell8 In Range("LEVANTAMENTO")
dropTEClevant.AddItem (aCell8.Value)
Next
Dim CODprocesso As String
Dim row_CODproc As Single
CODprocesso = InputBox("Insere o CÓDIGO DE PROCESSO a pesquisar e editar")
row_CODproc = Application.Match(CODprocesso, Worksheets("GESTÃO PROCESSOS").Range("CODproc"), 0)
fieldCODprocesso = CODprocesso
fieldIDprocessoCLT = Worksheets("GESTÃO PROCESSOS").Range("IDprocessoCLT").Item(row_CODproc).Value
fieldCODoutrosCLT = Worksheets("GESTÃO PROCESSOS").Range("outrosCODclt").Item(row_CODproc).Value
fieldRESPinterno = Worksheets("GESTÃO PROCESSOS").Range("RESPinterno").Item(row_CODproc).Value
fieldDATArecDOC = Worksheets("GESTÃO PROCESSOS").Range("DATArecDOC").Item(row_CODproc).Value
fieldCLT = Worksheets("GESTÃO PROCESSOS").Range("CLT").Item(row_CODproc).Value
fieldCEprevistos = Worksheets("GESTÃO PROCESSOS").Range("CEprevistos").Item(row_CODproc).Value
fieldLOCALchaves = Worksheets("GESTÃO PROCESSOS").Range("LOCALchaves").Item(row_CODproc).Value
fieldquemLEVANTA = Worksheets("GESTÃO PROCESSOS").Range("quemLEVANTA").Item(row_CODproc).Value
fieldARTIGO = Worksheets("GESTÃO PROCESSOS").Range("ARTIGO").Item(row_CODproc).Value
fieldREGISTO = Worksheets("GESTÃO PROCESSOS").Range("REGISTO").Item(row_CODproc).Value
fieldMORADA = Worksheets("GESTÃO PROCESSOS").Range("MORADA").Item(row_CODproc).Value
fieldFRACAO = Worksheets("GESTÃO PROCESSOS").Range("FRACAO").Item(row_CODproc).Value
fieldDISTRITO = Worksheets("GESTÃO PROCESSOS").Range("DISTRITO").Item(row_CODproc).Value
fieldCONCELHO = Worksheets("GESTÃO PROCESSOS").Range("CONCELHO").Item(row_CODproc).Value
fieldFREGUESIA = Worksheets("GESTÃO PROCESSOS").Range("FREGUESIA").Item(row_CODproc).Value
fieldCOORDENADAS = Worksheets("GESTÃO PROCESSOS").Range("COORDENADAS").Item(row_CODproc).Value
fieldELEMENTOSfornecidos = Worksheets("GESTÃO PROCESSOS").Range("ELEMENTOSfornecidos").Item(row_CODproc).Value
fieldTIPO = Worksheets("GESTÃO PROCESSOS").Range("TIPOimovel").Item(row_CODproc).Value
fieldTIPOLOGIA = Worksheets("GESTÃO PROCESSOS").Range("TIPOLOGIAimovel").Item(row_CODproc).Value
fieldTECcalc = Worksheets("GESTÃO PROCESSOS").Range("TECcalculo").Item(row_CODproc).Value
fieldTEClevanta = Worksheets("GESTÃO PROCESSOS").Range("TEClevanta").Item(row_CODproc).Value
fieldDATAenvioDOC = Worksheets("GESTÃO PROCESSOS").Range("DATAenvioDOC").Item(row_CODproc).Value
UserForm1.Show
End Sub
Private Sub cmdALTERAR_click()
'alteracao dos valores da tabela, caso os campos (editaveis) nao estejam vazios
novoresp:
If IsEmpty(dropRESPinterno) Then
MsgBox ("RESPONSAVEL nao atribuido!")
GoTo nova_data
End If
Worksheets("GESTÃO PROCESSOS").Range("RESPinterno").Item(row_CODproc + 2).Value = dropRESPinterno.Value
nova_data:
If IsEmpty(boxDATArecDOC) Then
GoTo novo_clt
End If
Worksheets("GESTÃO PROCESSOS").Range("DATArecDOC").Item(row_CODproc + 2).Value = boxDATArecDOC
novo_clt:
If IsEmpty(dropCLT) Then
GoTo novo_ceprevistos
End If
Worksheets("GESTÃO PROCESSOS").Range("CLT").Item(row_CODproc + 2).Value = dropCLT
novo_ceprevistos:
If IsEmpty(boxCEprevistos) Then
GoTo novo_local
End If
Worksheets("GESTÃO PROCESSOS").Range("CEprevistos").Item(row_CODproc + 2).Value = boxCEprevistos
novo_local:
If IsEmpty(boxLOCALchaves) Then
GoTo novo_quemLEVANTA
End If
Worksheets("GESTÃO PROCESSOS").Range("LOCALchaves").Item(row_CODproc + 2).Value = boxLOCALchaves
novo_quemLEVANTA:
If IsEmpty(dropquemLEVANTA) Then
GoTo novo_artigo
End If
Worksheets("GESTÃO PROCESSOS").Range("quemLEVANTA").Item(row_CODproc + 2).Value = dropquemLEVANTA
novo_artigo:
If IsEmpty(boxARTIGO) Then
GoTo novo_registo
End If
Worksheets("GESTÃO PROCESSOS").Range("ARTIGO").Item(row_CODproc + 2).Value = boxARTIGO
novo_registo:
If IsEmpty(boxREGISTO) Then
GoTo nova_morada
End If
Worksheets("GESTÃO PROCESSOS").Range("REGISTO").Item(row_CODproc + 2).Value = boxREGISTO
nova_morada:
If IsEmpty(boxMORADA) Then
GoTo nova_fracao
End If
Worksheets("GESTÃO PROCESSOS").Range("MORADA").Item(row_CODproc + 2).Value = boxMORADA
nova_fracao:
If IsEmpty(boxFRACAO) Then
GoTo novo_distrito
End If
Worksheets("GESTÃO PROCESSOS").Range("FRACAO").Item(row_CODproc + 2).Value = boxFRACAO
novo_distrito:
If IsEmpty(boxDISTRITO) Then
GoTo novo_concelho
End If
Worksheets("GESTÃO PROCESSOS").Range("DISTRITO").Item(row_CODproc + 2).Value = boxDISTRITO
novo_concelho:
If IsEmpty(boxCONCELHO) Then
GoTo nova_freguesia
End If
Worksheets("GESTÃO PROCESSOS").Range("CONCELHO").Item(row_CODproc + 2).Value = boxCONCELHO
nova_freguesia:
If IsEmpty(boxFREGUESIA) Then
GoTo nova_coord
End If
Worksheets("GESTÃO PROCESSOS").Range("FREGUESIA").Item(row_CODproc + 2).Value = boxFREGUESIA
nova_coord:
If IsEmpty(boxCOORDENADAS) Then
GoTo novo_elementos
End If
Worksheets("GESTÃO PROCESSOS").Range("COORDENADAS").Item(row_CODproc + 2).Value = boxCOORDENADAS
novo_elementos:
If IsEmpty(dropELEMENTOSfornecidos) Then
GoTo novo_tipo
End If
Worksheets("GESTÃO PROCESSOS").Range("ELEMENTOSfornecidos").Item(row_CODproc + 2).Value = dropELEMENTOSfornecidos
novo_tipo:
If IsEmpty(dropTIPO) Then
GoTo nova_tipologia
End If
Worksheets("GESTÃO PROCESSOS").Range("TIPOimovel").Item(row_CODproc + 2).Value = dropTIPO
nova_tipologia:
If IsEmpty(dropTIPOLOGIA) Then
GoTo novo_TECcalc
End If
Worksheets("GESTÃO PROCESSOS").Range("TIPOLOGIAimovel").Item(row_CODproc + 2).Value = dropTIPOLOGIA
novo_TECcalc:
If IsEmpty(dropTECcalc) Then
GoTo novo_TEClevanta
End If
Worksheets("GESTÃO PROCESSOS").Range("TECcalculo").Item(row_CODproc + 2).Value = dropTECcalc
novo_TEClevanta:
If IsEmpty(dropTEClevanta) Then
GoTo nova_DATAenvio
End If
Worksheets("GESTÃO PROCESSOS").Range("TEClevanta").Item(row_CODproc + 2).Value = dropTEClevanta
nova_DATAenvio:
If IsEmpty(boxDATAenvioDOC) Then
Exit Sub
End If
Worksheets("GESTÃO PROCESSOS").Range("DATAenvioDOC").Item(row_CODproc + 2).Value = boxDATAenvioDOC
End Sub
Private Sub cmdCLOSE_Click()
Unload Me
End Sub