Error de "compilacion" en macro

He creado una macro para cuando introduzco un valor en un textbox (ID) y pulse un botón me de el resto de valores en los demás textbox. El problema viene que me salta el error: "Error de compilación, el miembro ya existe".

Tengo otras macros y he seguido los mismos pasos

Sub BttCrew_Click()
Call frmCertificates.CertCrew1
End Sub

Sub CertCrew1()

frmCertificates.TxtName1 = Sheet5.Cells(FilaRegistro, 2)

frmCertificates.TxtSurname1 = Sheet5.Cells(FilaRegistro, 3)
frmCertificates.TxtVISA = Sheet5.Cells(FilaRegistro, 10)
frmCertificates.TxtCompetency = Sheet5.Cells(FilaRegistro, 11)
frmCertificates.TxtWatch = Sheet5.Cells(FilaRegistro, 12)
frmCertificates.TxtBasic = Sheet5.Cells(FilaRegistro, 13)
frmCertificates.TxtPax = Sheet5.Cells(FilaRegistro, 14)
frmCertificates.TxtCraft = Sheet5.Cells(FilaRegistro, 15)
frmCertificates.TxtFire = Sheet5.Cells(FilaRegistro, 16)
frmCertificates.TxtFRB = Sheet5.Cells(FilaRegistro, 17)
frmCertificates.TxtAid = Sheet5.Cells(FilaRegistro, 18)
frmCertificates.TxtCare = Sheet5.Cells(FilaRegistro, 19)
frmCertificates.TxtMedical = Sheet5.Cells(FilaRegistro, 20)
frmCertificates.TxtForklift = Sheet5.Cells(FilaRegistro, 21)
frmCertificates.TxtArpa = Sheet5.Cells(FilaRegistro, 22)
frmCertificates.TxtGmdss = Sheet5.Cells(FilaRegistro, 23)
frmCertificates.TxtHSC = Sheet5.Cells(FilaRegistro, 24)
frmCertificates.TxtAssist = Sheet5.Cells(FilaRegistro, 25)
frmCertificates.TxtSecurity = Sheet5.Cells(FilaRegistro, 26)
frmCertificates.TxtEcdis = Sheet5.Cells(FilaRegistro, 27)
frmCertificates.TxtEcdis2 = Sheet5.Cells(FilaRegistro, 28)
frmCertificates.TxtCook = Sheet5.Cells(FilaRegistro, 29)
frmCertificates.TxtFood = Sheet5.Cells(FilaRegistro, 30)
End Sub

1 respuesta

Respuesta
1

Lo único que veo es que no estás definiendo la variable 'FilaRegistro' y esta podría tener un valor que no sea un número válido. Más allá de eso habría que ver exactamente donde te está marcando el error.

Salu2

Gracias Gustavo.

He seguido trabajando con el fallo y he resuelto al anterior pero ahora me salta el 1004. y me señala el "Call..."

Estoy buscando el error pero los nombres están correctos, etc. Arreglo un fallo y aparece otro.

El Call esta asociado un botón para cuando introduzco el ID me de el resto de valores.

Sub Bttcrew_Click()
Call frmCertificates.Consultarone
End Sub

Sub Consultarone()

Sheet5.Visible = True
Sheet5.Unprotect ("231278")
frmCertificates.TxtName1 = Sheet5.Cells(FilaRegistro, 2)
frmCertificates.TxtSurname1 = Sheet5.Cells(FilaRegistro, 3)
frmCertificates.TxtVisa1 = Sheet5.Cells(FilaRegistro, 10)
frmCertificates.TxtCompet1 = Sheet5.Cells(FilaRegistro, 11)
frmCertificates.TxtWatch1 = Sheet5.Cells(FilaRegistro, 12)
frmCertificates.TxtBasic1 = Sheet5.Cells(FilaRegistro, 13)
frmCertificates.TxtPax1 = Sheet5.Cells(FilaRegistro, 14)
frmCertificates.TxtCraft1 = Sheet5.Cells(FilaRegistro, 15)
frmCertificates.TxtFire1 = Sheet5.Cells(FilaRegistro, 16)
frmCertificates.TxtFRB1 = Sheet5.Cells(FilaRegistro, 17)
frmCertificates.TxtFirst1 = Sheet5.Cells(FilaRegistro, 18)
frmCertificates.TxtMedical1 = Sheet5.Cells(FilaRegistro, 19)
frmCertificates.TxtFit1 = Sheet5.Cells(FilaRegistro, 20)
frmCertificates.TxtForklift1 = Sheet5.Cells(FilaRegistro, 21)
frmCertificates.TxtARPA1 = Sheet5.Cells(FilaRegistro, 22)
frmCertificates.TxtGmdss1 = Sheet5.Cells(FilaRegistro, 23)
frmCertificates.TxtHSC1 = Sheet5.Cells(FilaRegistro, 24)
frmCertificates.TxtAssist1 = Sheet5.Cells(FilaRegistro, 25)
frmCertificates.TxtSecurity1 = Sheet5.Cells(FilaRegistro, 26)
frmCertificates.TxtEcdis1 = Sheet5.Cells(FilaRegistro, 27)
frmCertificates.TxtCook1 = Sheet5.Cells(FilaRegistro, 29)
frmCertificates.TxtFood1 = Sheet5.Cells(FilaRegistro, 30)
Sheet5.Visible = False
Sheet5.Protect ("231278")
Sheet1.Select
End Sub

Ok, desde donde estoy ahora no puedo acceder a Dropbox, pero veo si mañana me fijo (en caso que no des con la solución antes). Lo único que te diría es que saques el código Consultarone del formulario y lo pongas en un módulo común y corriente...(no debería ser el problema, pero muchas veces sabemos que estos lenguajes fallan y no sabemos bien por qué :-))

Salu2

¿Desde dónde activas ese formulario?

En la hoja “Data” el botón último.

desde esa hoja abro el formulario deseado.

Efectivamente es lo que pensaba, la variable "FilaRegistro" está en blanco y por eso te está dando el error...

Tienes razón, lo he leído mil veces y no me di cuenta.

Pero he colocado todo (creo) y permanece el error 1004 y me señala nuevamente el "Call..."

Sub Bttcrew_Click()
Call frmCertificates.Consultarone
End Sub

Private Function filaexisteregistro(noIdentificacion As String, rangoconsulta As String) As Long
Dim numerofila As Long
numerofila = 0
With Sheet5.Range(rangoconsulta)
Set c = .Find(noIdentificacion, Lookat:=xlWhole)
If Not c Is Nothing Then
numerofila = c.Row
End If
End With
filaexisteregistro = numerofila
End Function

Sub Consultarone()

Sheet5.Visible = True
Sheet5.Unprotect ("231278")
Dim FilaRegistro As Long, rango As String

FilaRegistro = filaexisteregistro(frmCertificates.TxtID1, rango)
If FilaRegistro = 0 Then
ans = MsgBox("ID don´t exist", vbExclamation, "FRS")
Exit Sub
End If
frmCertificates.TxtName1 = Sheet5.Cells(FilaRegistro, 2)
frmCertificates.TxtSurname1 = Sheet5.Cells(FilaRegistro, 3)
frmCertificates.TxtVisa1 = Sheet5.Cells(FilaRegistro, 10)
frmCertificates.TxtCompet1 = Sheet5.Cells(FilaRegistro, 11)
frmCertificates.TxtWatch1 = Sheet5.Cells(FilaRegistro, 12)
frmCertificates.TxtBasic1 = Sheet5.Cells(FilaRegistro, 13)
frmCertificates.TxtPax1 = Sheet5.Cells(FilaRegistro, 14)
frmCertificates.TxtCraft1 = Sheet5.Cells(FilaRegistro, 15)
frmCertificates.TxtFire1 = Sheet5.Cells(FilaRegistro, 16)
frmCertificates.TxtFRB1 = Sheet5.Cells(FilaRegistro, 17)
frmCertificates.TxtFirst1 = Sheet5.Cells(FilaRegistro, 18)
frmCertificates.TxtMedical1 = Sheet5.Cells(FilaRegistro, 19)
frmCertificates.TxtFit1 = Sheet5.Cells(FilaRegistro, 20)
frmCertificates.TxtForklift1 = Sheet5.Cells(FilaRegistro, 21)
frmCertificates.TxtARPA1 = Sheet5.Cells(FilaRegistro, 22)
frmCertificates.TxtGmdss1 = Sheet5.Cells(FilaRegistro, 23)
frmCertificates.TxtHSC1 = Sheet5.Cells(FilaRegistro, 24)
frmCertificates.TxtAssist1 = Sheet5.Cells(FilaRegistro, 25)
frmCertificates.TxtSecurity1 = Sheet5.Cells(FilaRegistro, 26)
frmCertificates.TxtEcdis1 = Sheet5.Cells(FilaRegistro, 27)
frmCertificates.TxtCook1 = Sheet5.Cells(FilaRegistro, 29)
frmCertificates.TxtFood1 = Sheet5.Cells(FilaRegistro, 30)
Sheet5.Visible = False
Sheet5.Protect ("231278")
Sheet1.Select
End Sub

Buenas.

Pongo pantalla actualizada de los cambios que realizo pero sigo sin poder quitar el error.

reparado.

Muchas gracias

Excelente! Me alegro

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas