DocVariables

24/04/2006 - 13:41 por JPLujan | Informe spam
Estoy creando una plantilla en word con una serie de variables las cuales
relleno desde un formulario, cuando alguno de los cuadros de texto está vacío
el programa no funciona porque borra la variable.

He puesto control a cada cuadro de texto para saber si está vacío me dá
mensajes de que no puede estar vació pero me sigue sin funcionar.

Alguna ayuda Gracias

Preguntas similare

Leer las respuestas

#6 JPLujan
25/04/2006 - 08:20 | Informe spam
Hola:
Los botones están todos en el mismo formulario.
Al llamar al formulario puede pasar dos cosas una es que sea la primera vez
y entonces coge los valores "-",y otra esque ya haya definido los valores
anteriormente en las variables mediante los cuadros de texto y entonce coge
esos valores.

La cadena "-" la pongo para saber que hay campos que hay que rellenar.

Cuando sin querer o queriendo porque alguno de los campos no lo necesito si
lo dejo vacío el programa salta dando un error "5825" Se eliminó objeto y lo
que hace por lo que he podido ver esque si la variable está vácía (cuadro de
texto vacío) la variable se borra, con lo cual no puedo volver a llamar al
formulario para corregir el problema, tengo que volver a crear esa variable y
entonces va sin problemas.

Gracias



"Marta PM [MVP Office]" escribió:

Hola:
> Ni que decir tiene que mi experiencia en VBA es bastante pobre
Pues apañados vamos, yo tampoco es que sea una experta, pero a ver si entre
los dos conseguimos resolverlo y si alguien más se apunta, pues mejor que
mejor ¿no?

Bien, por partes, a ver si me aclaro. Corrígeme en lo que veas que me
equivoco.
Tienes un formulario con varios "botones" y a cada botón le asignas una
acción. ¿Pertenecen todos al mismo formulario?
Creo, que los cuadros de texto de entrada no están vacíos porque al
reiniciar el formulario ya les agregas una cadena "-" y supongo que esa
cadena no te sirve como texto ¿verdad?

> Aqui lo dejo, la parte que no funciona es cuando una vez que he llamado al
> formulario y le doy ok habiendo dejado un cuadro de texto vacío la segunda
> vez que lo llamo no funciona.
¿A qué te refieres con que "no funciona"? ¿No se carga? ¿Te da algún error?
Estuve haciendo pruebas y aparentemente debería funcionar.
Marta PM
Saúdos/Saludos
MVP Office


http://www.fermu.com


"JPLujan" wrote:

> Aqui lo dejo, la parte que no funciona es cuando una vez que he llamado al
> formulario y le doy ok habiendo dejado un cuadro de texto vacío la segunda
> vez que lo llamo no funciona.
>
>
>
> Option Explicit
>
> Private Sub cmbAcerca_Click()
> FrmAbout.Show
> End Sub
>
> Private Sub cmdcancel_Click()
> Unload Me
> 'Opcion por si quiero cerra el documento sin guardar:
> 'ActiveDocument.Close SaveChanges:=False
>
> End Sub
>
> Private Sub cmdLimpia_Click()
>
> 'Reinicio el formulario
>
> txtNombreCliente.Value = "-"
> TxtNombreAnteproyecto.Value = "-"
> TxtNumeroAnteproyecto.Value = "-"
> TxtRevision.Value = "-"
> TxtFechaRevision.Value = "-"
> TxtClienteFinal.Value = "-"
> TxtAutor1.Value = "-"
> TxtAutor2.Value = "-"
> CboComentarioRevision.Value = "-"
>
> txtNombreCliente.SetFocus
>
> End Sub
>
> Private Sub cmdOK_Click()
>
> Application.ScreenUpdating = False
>
>
> 'Las he comentado porque no consigo lo que quiero
>
> ''***** Controla cajas de texto vacías *****
> ''Cliente
> 'If Len(Trim(txtNombreCliente)) = 0 Then
> ' MsgBox ("Datos de cliente")
> ' Beep
> ' txtNombreCliente.SetFocus
> ' Else
> '
> ''Proyecto
> ' If Len(Trim(TxtNombreAnteproyecto)) = 0 Then
> ' MsgBox ("Datos de Proyecto")
> ' Beep
> ' TxtNombreAnteproyecto.SetFocus
> ' Else
> '
> ''Cliente final
> 'If Len(Trim(TxtClienteFinal)) = 0 Then
> ' MsgBox ("Datos de cliente final")
> ' Beep
> ' TxtClienteFinal.SetFocus
> ' Else
> '
> ''Numero anteproyecto
> 'If Len(Trim(TxtNumeroAnteproyecto)) = 0 Then
> ' MsgBox ("Número anteproyecto")
> ' Beep
> ' TxtNumeroAnteproyecto.SetFocus
> ' Else
> '
> ''Revision
> 'If Len(Trim(TxtRevision)) = 0 Then
> ' MsgBox ("Revision")
> ' Beep
> ' TxtRevision.SetFocus
> ' Else
> '
> ''Fecha de revisión
> 'If Len(Trim(TxtFechaRevision)) = 0 Then
> ' MsgBox ("Fecha de revision")
> ' Beep
> ' TxtFechaRevision.SetFocus
> ' Else
> '
> ''Autor1
> 'If Len(Trim(TxtAutor1)) = 0 Then
> ' MsgBox ("Proyecto mecánico")
> ' Beep
> ' TxtAutor1.SetFocus
> ' Else
> '
> ''Autor2
> 'If Len(Trim(TxtAutor2)) = 0 Then
> ' MsgBox ("Proyecto eléctrico")
> ' Beep
> ' TxtAutor2.SetFocus
> ' Else
> '
> 'End If
> 'End If
> 'End If
> 'End If
> 'End If
> 'End If
> 'End If
> 'End If
> '
> ''******************************************************
> '
> Dim Cadena1 As String
> Dim Cadena2 As String
> Dim Cadena3 As String
>
> ActiveDocument.Variables("NombreCliente").Value = (txtNombreCliente.Value)
> ActiveDocument.Variables("NombreAnteproyecto").Value =
> TxtNombreAnteproyecto.Value
> ActiveDocument.Variables("NumeroAnteproyecto").Value =
> TxtNumeroAnteproyecto.Value
> ActiveDocument.Variables("Revision").Value = TxtRevision.Value
> ActiveDocument.Variables("FechaRevision").Value = TxtFechaRevision.Value
> ActiveDocument.Variables("ComentarioRevision").Value =
> CboComentarioRevision.Value
> ActiveDocument.Variables("ClienteFinal").Value = TxtClienteFinal.Value
> ActiveDocument.Variables("Autor1").Value = TxtAutor1.Value
> ActiveDocument.Variables("Autor2").Value = TxtAutor2.Value
>
> Cadena1 = ActiveDocument.Variables("ClienteFinal").Value
> Cadena2 = ActiveDocument.Variables("NumeroAnteProyecto").Value
> Cadena3 = ActiveDocument.Variables("Revision").Value
>
> ActiveDocument.Variables("Nombrefile").Value = Cadena1 & "-" & Cadena2 & "-"
> & Cadena3
>
> Application.ScreenUpdating = True
> ActiveDocument.Fields.Update
> Unload Me
> End Sub
> Private Sub CmdTomaDatos_Click()
> 'CAMPOS DE DATOS DE PROYECTO
> txtNombreCliente.Value =
> ActiveDocument.Variables("NombreCliente").Value
> TxtNombreAnteproyecto.Value =
> ActiveDocument.Variables("NombreAnteproyecto").Value
> TxtNumeroAnteproyecto.Value =
> ActiveDocument.Variables("NumeroAnteproyecto").Value
> TxtRevision.Value = ActiveDocument.Variables("Revision").Value
> TxtFechaRevision.Value =
> ActiveDocument.Variables("FechaRevision").Value
> CboComentarioRevision.Value =
> ActiveDocument.Variables("ComentarioRevision").Value
> TxtClienteFinal.Value =
> ActiveDocument.Variables("ClienteFinal").Value
> TxtAutor1.Value = ActiveDocument.Variables("Autor1").Value
> TxtAutor1.Value = ActiveDocument.Variables("Autor2").Value
>
>
>
> End Sub
>
>
>
>
>
>
>
> Private Sub txtNombreCliente_Change()
> Me!CmdOK.Visible = Not (IsNull(Me!txtNombreCliente))
> End Sub
> Private Sub UserForm_Initialize()
> 'Esta creo que es la parte que no funciona cuando un cuadro de texto está
> vacío
>
>
> txtNombreCliente.Value = "-"
> TxtNombreAnteproyecto.Value = "-"
> TxtNumeroAnteproyecto.Value = "-"
> TxtRevision.Value = "-"
> TxtFechaRevision.Value = "-"
> TxtClienteFinal.Value = "-"
> TxtAutor1.Value = "-"
> TxtAutor2.Value = "-"
> CboComentarioRevision.Value = "-"
>
>
> ActiveDocument.Subdocuments.Expanded = True
>
> CboComentarioRevision.AddItem "New"
> CboComentarioRevision.AddItem "Revision"
> txtNombreCliente.Value = ActiveDocument.Variables("NombreCliente").Value
> TxtNombreAnteproyecto.Value =
> ActiveDocument.Variables("NombreAnteproyecto").Value
> TxtNumeroAnteproyecto.Value =
> ActiveDocument.Variables("NumeroAnteproyecto").Value
> TxtRevision.Value = ActiveDocument.Variables("Revision").Value
> TxtFechaRevision.Value = ActiveDocument.Variables("FechaRevision").Value
> CboComentarioRevision.Value =
> ActiveDocument.Variables("ComentarioRevision").Value
> TxtClienteFinal.Value = ActiveDocument.Variables("ClienteFinal").Value
> TxtAutor1.Value = ActiveDocument.Variables("Autor1").Value
> TxtAutor2.Value = ActiveDocument.Variables("Autor2").Value
> txtNombreCliente.SetFocus
>
>
> End Sub
>
> Ni que decir tiene que mi experiencia en VBA es bastante pobre
>
> Gracias
>
> "JPLujan" escribió:
>
> > Estoy creando una plantilla en word con una serie de variables las cuales
> > relleno desde un formulario, cuando alguno de los cuadros de texto está vacío
> > el programa no funciona porque borra la variable.
> >
> > He puesto control a cada cuadro de texto para saber si está vacío me dá
> > mensajes de que no puede estar vació pero me sigue sin funcionar.
> >
> > Alguna ayuda Gracias
Respuesta Responder a este mensaje
#7 Marta PM [MVP Office]
25/04/2006 - 22:39 | Informe spam
Bien, aquí estoy. No me había olvidado de tí :-)
Entiendo (con lo poco que yo se de esto) que el problema está en que si hay
algún textbox vacío da error y los textboxes no pueden quedar vacíos.
Entiendo también que el problema está en la validación de esos textboxes y
en el momento de inicializar el formulario y creo que el botón cmdTomaDatos
no debería estar activo hasta que todos los campos estuviesen rellenados.
Entonces te propongo este código a ver si te sirve.
Una primera función que nos servirá de validación de los textboxes del
formulario. También he modificado el código del botón OK y del evento al
iniciar el formulario. Te los pego aquí y ya comentarás. (Por favor, comenta
si te sirve de algo o no)

Public Function fCheckBlankFields()
Dim formulariocargado As Boolean
Dim formu As UserForm
Set formu = UserForm1
Dim ctl As Control
Dim ctlName As String
Dim Aviso As String
Dim PrimerBlanco As String
PrimerBlanco = ""
Dim Camposenblanco As String
Camposenblanco = ""
'Recorremos los textboxes
For Each ctl In formu.Controls
If TypeOf ctl Is TextBox Then
ctlName = ctl.Name
If Len(ctl.Value) = 0 Or ctl.Text = "-" Then
If Len(Camposenblanco) = 0 Then
PrimerBlanco = ctl.Name
Camposenblanco = ctlName & vbCrLf
Else
Camposenblanco = Camposenblanco & ctlName & vbCrLf
End If
End If
End If
Next ctl
'Ahora, avisamos sobre los campos que hemos encontrado en blanco
If Len(Camposenblanco) > 0 Then
Aviso = " Los siguientes campos están vacios: " & vbCrLf &
Camposenblanco & _
" No puedes continuar sin rellenarlos " & vbCrLf & _
"¿Deseas completarlos? Si no los rellenas y pulsas en cancelar sales del
formulario "
If MsgBox(Aviso, vbYesNo) = vbYes Then
cmdTomaDatos.Enabled = False
UserForm1.Controls(PrimerBlanco).SetFocus
Else
Unload Me
End If
Else
cmdTomaDatos.Enabled = True
End If
End Function

Private Sub cmdOK_Click()
fCheckBlankFields
Application.ScreenUpdating = False
Dim Cadena1 As String
Dim Cadena2 As String
Dim Cadena3 As String
ActiveDocument.Variables("NombreCliente").Value = txtNombreCliente.Value
ActiveDocument.Variables("NombreAnteproyecto").Value =
txtNombreAnteproyecto.Value
ActiveDocument.Variables("NumeroAnteproyecto").Value =
txtNumeroAnteproyecto.Value
ActiveDocument.Variables("Revision").Value = txtRevision.Value
ActiveDocument.Variables("FechaRevision").Value = txtFechaRevision.Value
ActiveDocument.Variables("ComentarioRevision").Value =
cboComentarioRevision.Value
ActiveDocument.Variables("ClienteFinal").Value = txtClienteFinal.Value
ActiveDocument.Variables("Autor1").Value = txtAutor1.Value
ActiveDocument.Variables("Autor2").Value = txtAutor2.Value
Application.ScreenUpdating = True
ActiveDocument.Fields.Update
formulariocargado = True
End Sub

Private Sub UserForm_Initialize()
If formulariocargado = False Then
cmdTomaDatos.Enabled = False
txtNombreCliente.Value = "-"
txtNombreAnteproyecto.Value = "-"
txtNumeroAnteproyecto.Value = "-"
txtRevision.Value = "-"
txtFechaRevision.Value = "-"
txtClienteFinal.Value = "-"
txtAutor1.Value = "-"
txtAutor2.Value = "-"
cboComentarioRevision.Value = "-"
ActiveDocument.Subdocuments.Expanded = True
cboComentarioRevision.AddItem "New"
cboComentarioRevision.AddItem "Revision"
Else
txtNombreCliente.Value = ActiveDocument.Variables("NombreCliente").Value
txtNombreAnteproyecto.Value =
ActiveDocument.Variables("NombreAnteproyecto").Value
txtNumeroAnteproyecto.Value =
ActiveDocument.Variables("NumeroAnteproyecto").Value
txtRevision.Value = ActiveDocument.Variables("Revision").Value
txtFechaRevision.Value = ActiveDocument.Variables("FechaRevision").Value
cboComentarioRevision.Value =
ActiveDocument.Variables("ComentarioRevision").Value
txtClienteFinal.Value = ActiveDocument.Variables("ClienteFinal").Value
txtAutor1.Value = ActiveDocument.Variables("Autor1").Value
txtAutor2.Value = ActiveDocument.Variables("Autor2").Value
End If
txtNombreCliente.SetFocus
End Sub
Marta PM
Saúdos/Saludos
MVP Office


http://www.fermu.com


"JPLujan" wrote:

Hola:

Respuesta Responder a este mensaje
#8 JPLujan
26/04/2006 - 08:26 | Informe spam
Hola:

Tengo dos dudas:
La función "fCheckBlankFields" la he puesto en el formulario, ¿es correcto?.
La misión del boton cmdTomaDatos es leer las variables del documento y
ponerlas en textboxes por si se quieren modificarlas, por lo que quiero que
esté siempre activo, he modificado el código comentando donde hace referencia
al boton pero no se me muestra activo, tampoco sé si ésto puede acarrear
nuevos errores te lo pongo de nuevo:


Option Explicit


Private Sub cmbAcerca_Click()
FrmAbout.Show
End Sub


Private Sub cmdcancel_Click()
Unload Me

'Opcion por si quiero cerra el documento sin guardar:
'ActiveDocument.Close SaveChanges:=False

End Sub

Public Function fCheckBlankFields()
Dim formulariocargado As Boolean
Dim formu As UserForm
Set formu = FrmDatos
Dim ctl As Control
Dim ctlName As String
Dim Aviso As String
Dim PrimerBlanco As String
PrimerBlanco = ""
Dim Camposenblanco As String
Camposenblanco = ""

'Recorremos los textboxes
For Each ctl In formu.Controls
If TypeOf ctl Is TextBox Then
ctlName = ctl.Name
If Len(ctl.Value) = 0 Or ctl.Text = "-" Then
If Len(Camposenblanco) = 0 Then
PrimerBlanco = ctl.Name
Camposenblanco = ctlName & vbCrLf
Else
Camposenblanco = Camposenblanco & ctlName & vbCrLf
End If
End If
End If
Next ctl

'Ahora, avisamos sobre los campos que hemos encontrado en blanco
If Len(Camposenblanco) > 0 Then
Aviso = "Los siguientes campos están vacios: " & vbCrLf & Camposenblanco
& _
" No puedes continuar sin rellenarlos " & vbCrLf & _
"¿Deseas completarlos? Si no los rellenas y pulsas en cancelar sales del
formulario """
If MsgBox(Aviso, vbYesNo) = vbYes Then
' CmdTomaDatos.Enabled = False
FrmDatos.Controls(PrimerBlanco).SetFocus
Else
Unload Me
End If
Else
CmdTomaDatos.Enabled = True
End If
End Function

Private Sub cmdLimpia_Click()
txtNombreCliente.Value = "-"
TxtNombreAnteproyecto.Value = "-"
TxtNumeroAnteproyecto.Value = "-"
TxtRevision.Value = "-"
TxtFechaRevision.Value = "-"
TxtClienteFinal.Value = "-"
TxtAutor1.Value = "-"
TxtAutor2.Value = "-"
CboComentarioRevision.Value = "-"

txtNombreCliente.SetFocus

End Sub

Private Sub cmdOK_Click()
'Propuesta por Marta MVP de las new de microsot

fCheckBlankFields
Dim formulariocargado As Boolean

Application.ScreenUpdating = False
Dim Cadena1 As String
Dim Cadena2 As String
Dim Cadena3 As String
ActiveDocument.Variables("NombreCliente").Value = txtNombreCliente.Value
ActiveDocument.Variables("NombreAnteproyecto").Value =
TxtNombreAnteproyecto.Value
ActiveDocument.Variables("NumeroAnteproyecto").Value =
TxtNumeroAnteproyecto.Value
ActiveDocument.Variables("Revision").Value = TxtRevision.Value
ActiveDocument.Variables("FechaRevision").Value = TxtFechaRevision.Value
ActiveDocument.Variables("ComentarioRevision").Value =
CboComentarioRevision.Value
ActiveDocument.Variables("ClienteFinal").Value = TxtClienteFinal.Value
ActiveDocument.Variables("Autor1").Value = TxtAutor1.Value
ActiveDocument.Variables("Autor2").Value = TxtAutor2.Value
Application.ScreenUpdating = True
ActiveDocument.Fields.Update
formulariocargado = True
End Sub


Private Sub CmdTomaDatos_Click()
'CAMPOS DE DATOS DE PROYECTO
txtNombreCliente.Value =
ActiveDocument.Variables("NombreCliente").Value
TxtNombreAnteproyecto.Value =
ActiveDocument.Variables("NombreAnteproyecto").Value
TxtNumeroAnteproyecto.Value =
ActiveDocument.Variables("NumeroAnteproyecto").Value
TxtRevision.Value = ActiveDocument.Variables("Revision").Value
TxtFechaRevision.Value =
ActiveDocument.Variables("FechaRevision").Value
CboComentarioRevision.Value =
ActiveDocument.Variables("ComentarioRevision").Value
TxtClienteFinal.Value =
ActiveDocument.Variables("ClienteFinal").Value
TxtAutor1.Value = ActiveDocument.Variables("Autor1").Value
TxtAutor1.Value = ActiveDocument.Variables("Autor2").Value
End Sub


Private Sub UserForm_Initialize()
'Propuesta por Marta MVP
Dim formulariocargado As Boolean

If formulariocargado = False Then
CmdTomaDatos.Enabled = False
txtNombreCliente.Value = "-"
TxtNombreAnteproyecto.Value = "-"
TxtNumeroAnteproyecto.Value = "-"
TxtRevision.Value = "-"
TxtFechaRevision.Value = "-"
TxtClienteFinal.Value = "-"
TxtAutor1.Value = "-"
TxtAutor2.Value = "-"
CboComentarioRevision.Value = "-"
ActiveDocument.Subdocuments.Expanded = True
CboComentarioRevision.AddItem "New"
CboComentarioRevision.AddItem "Revision"
Else
txtNombreCliente.Value = ActiveDocument.Variables("NombreCliente").Value
TxtNombreAnteproyecto.Value =
ActiveDocument.Variables("NombreAnteproyecto").Value
TxtNumeroAnteproyecto.Value =
ActiveDocument.Variables("NumeroAnteproyecto").Value
TxtRevision.Value = ActiveDocument.Variables("Revision").Value
TxtFechaRevision.Value = ActiveDocument.Variables("FechaRevision").Value
CboComentarioRevision.Value =
ActiveDocument.Variables("ComentarioRevision").Value
TxtClienteFinal.Value = ActiveDocument.Variables("ClienteFinal").Value
TxtAutor1.Value = ActiveDocument.Variables("Autor1").Value
TxtAutor2.Value = ActiveDocument.Variables("Autor2").Value
End If
txtNombreCliente.SetFocus
End Sub




"Marta PM [MVP Office]" escribió:

Bien, aquí estoy. No me había olvidado de tí :-)
Entiendo (con lo poco que yo se de esto) que el problema está en que si hay
algún textbox vacío da error y los textboxes no pueden quedar vacíos.
Entiendo también que el problema está en la validación de esos textboxes y
en el momento de inicializar el formulario y creo que el botón cmdTomaDatos
no debería estar activo hasta que todos los campos estuviesen rellenados.
Entonces te propongo este código a ver si te sirve.
Una primera función que nos servirá de validación de los textboxes del
formulario. También he modificado el código del botón OK y del evento al
iniciar el formulario. Te los pego aquí y ya comentarás. (Por favor, comenta
si te sirve de algo o no)

Public Function fCheckBlankFields()
Dim formulariocargado As Boolean
Dim formu As UserForm
Set formu = UserForm1
Dim ctl As Control
Dim ctlName As String
Dim Aviso As String
Dim PrimerBlanco As String
PrimerBlanco = ""
Dim Camposenblanco As String
Camposenblanco = ""
'Recorremos los textboxes
For Each ctl In formu.Controls
If TypeOf ctl Is TextBox Then
ctlName = ctl.Name
If Len(ctl.Value) = 0 Or ctl.Text = "-" Then
If Len(Camposenblanco) = 0 Then
PrimerBlanco = ctl.Name
Camposenblanco = ctlName & vbCrLf
Else
Camposenblanco = Camposenblanco & ctlName & vbCrLf
End If
End If
End If
Next ctl
'Ahora, avisamos sobre los campos que hemos encontrado en blanco
If Len(Camposenblanco) > 0 Then
Aviso = " Los siguientes campos están vacios: " & vbCrLf &
Camposenblanco & _
" No puedes continuar sin rellenarlos " & vbCrLf & _
"¿Deseas completarlos? Si no los rellenas y pulsas en cancelar sales del
formulario "
If MsgBox(Aviso, vbYesNo) = vbYes Then
cmdTomaDatos.Enabled = False
UserForm1.Controls(PrimerBlanco).SetFocus
Else
Unload Me
End If
Else
cmdTomaDatos.Enabled = True
End If
End Function

Private Sub cmdOK_Click()
fCheckBlankFields
Application.ScreenUpdating = False
Dim Cadena1 As String
Dim Cadena2 As String
Dim Cadena3 As String
ActiveDocument.Variables("NombreCliente").Value = txtNombreCliente.Value
ActiveDocument.Variables("NombreAnteproyecto").Value =
txtNombreAnteproyecto.Value
ActiveDocument.Variables("NumeroAnteproyecto").Value =
txtNumeroAnteproyecto.Value
ActiveDocument.Variables("Revision").Value = txtRevision.Value
ActiveDocument.Variables("FechaRevision").Value = txtFechaRevision.Value
ActiveDocument.Variables("ComentarioRevision").Value =
cboComentarioRevision.Value
ActiveDocument.Variables("ClienteFinal").Value = txtClienteFinal.Value
ActiveDocument.Variables("Autor1").Value = txtAutor1.Value
ActiveDocument.Variables("Autor2").Value = txtAutor2.Value
Application.ScreenUpdating = True
ActiveDocument.Fields.Update
formulariocargado = True
End Sub

Private Sub UserForm_Initialize()
If formulariocargado = False Then
cmdTomaDatos.Enabled = False
txtNombreCliente.Value = "-"
txtNombreAnteproyecto.Value = "-"
txtNumeroAnteproyecto.Value = "-"
txtRevision.Value = "-"
txtFechaRevision.Value = "-"
txtClienteFinal.Value = "-"
txtAutor1.Value = "-"
txtAutor2.Value = "-"
cboComentarioRevision.Value = "-"
ActiveDocument.Subdocuments.Expanded = True
cboComentarioRevision.AddItem "New"
cboComentarioRevision.AddItem "Revision"
Else
txtNombreCliente.Value = ActiveDocument.Variables("NombreCliente").Value
txtNombreAnteproyecto.Value =
ActiveDocument.Variables("NombreAnteproyecto").Value
txtNumeroAnteproyecto.Value =
ActiveDocument.Variables("NumeroAnteproyecto").Value
txtRevision.Value = ActiveDocument.Variables("Revision").Value
txtFechaRevision.Value = ActiveDocument.Variables("FechaRevision").Value
cboComentarioRevision.Value =
ActiveDocument.Variables("ComentarioRevision").Value
txtClienteFinal.Value = ActiveDocument.Variables("ClienteFinal").Value
txtAutor1.Value = ActiveDocument.Variables("Autor1").Value
txtAutor2.Value = ActiveDocument.Variables("Autor2").Value
End If
txtNombreCliente.SetFocus
End Sub
Marta PM
Saúdos/Saludos
MVP Office


http://www.fermu.com


"JPLujan" wrote:

> Hola:
>
Respuesta Responder a este mensaje
#9 Marta PM [MVP Office]
26/04/2006 - 22:51 | Informe spam
Hola:
Pues lo siento, pero yo no puedo ayudarte más.
El problema del error que tú comentas es cuando hay algún cuadro vacío e
intenta tomar los valores del mismo y por esto se produce el error. El
problema lo provoca el click en el botón Tomar Datos cuando los text boxes no
están todos con valores, ya que intenta tomar un valor que en realidad no
existe, por eso mi propuesta de no activarlo hasta que esté relleno. Si no es
la primera vez que se carga el formulario podrías ponerlo activo añadiendo el
código:
cmdTomaDatos.Enabled=true en la segunda parte del If de la inicialización
del formulario.
Lamento no poder ayudarte más. Puedes probarlo e intentar ajustarlo más a tu
caso concreto.
Marta PM
Saúdos/Saludos
MVP Office


http://www.fermu.com


"JPLujan" wrote:

Hola:

Tengo dos dudas:
La función "fCheckBlankFields" la he puesto en el formulario, ¿es correcto?.
La misión del boton cmdTomaDatos es leer las variables del documento y
ponerlas en textboxes por si se quieren modificarlas, por lo que quiero que
esté siempre activo, he modificado el código comentando donde hace referencia
al boton pero no se me muestra activo, tampoco sé si ésto puede acarrear
nuevos errores te lo pongo de nuevo:


Respuesta Responder a este mensaje
#10 JPLujan
27/04/2006 - 07:24 | Informe spam
Marta:
Muchas gracias de todas las maneras , tu aportación me ha servido de mucho,
si consigo hacer algo lo expondré.

Un saludo

"Marta PM [MVP Office]" escribió:

Hola:
Pues lo siento, pero yo no puedo ayudarte más.
El problema del error que tú comentas es cuando hay algún cuadro vacío e
intenta tomar los valores del mismo y por esto se produce el error. El
problema lo provoca el click en el botón Tomar Datos cuando los text boxes no
están todos con valores, ya que intenta tomar un valor que en realidad no
existe, por eso mi propuesta de no activarlo hasta que esté relleno. Si no es
la primera vez que se carga el formulario podrías ponerlo activo añadiendo el
código:
cmdTomaDatos.Enabled=true en la segunda parte del If de la inicialización
del formulario.
Lamento no poder ayudarte más. Puedes probarlo e intentar ajustarlo más a tu
caso concreto.
Marta PM
Saúdos/Saludos
MVP Office


http://www.fermu.com


"JPLujan" wrote:

> Hola:
>
> Tengo dos dudas:
> La función "fCheckBlankFields" la he puesto en el formulario, ¿es correcto?.
> La misión del boton cmdTomaDatos es leer las variables del documento y
> ponerlas en textboxes por si se quieren modificarlas, por lo que quiero que
> esté siempre activo, he modificado el código comentando donde hace referencia
> al boton pero no se me muestra activo, tampoco sé si ésto puede acarrear
> nuevos errores te lo pongo de nuevo:
>
>

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida