PDA

View Full Version : run-time error 91



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

SamT
07-02-2015, 11:12 AM
Dim aCell1 As Range
For Each aCell1 In Range("RESPONSAVEL")
dropRESPinterno.AddItem (aCell1.Value)
Next
Should be


dropRESPinterno.List = Range("RESPONSAVEL")
And then

If IsEmpty(dropRESPinterno) Then
MsgBox ("RESPONSAVEL nao atribuido!")
GoTo nova_data
End If

Should be

If dropRESPinterno = "" Then
MsgBox ("RESPONSAVEL nao atribuido!")
GoTo nova_data
End If