Validación de controles de texto sin texto.
Publicado por Claudio Pizarro (1 intervención) el 19/04/2013 08:39:07
Estoy automatizando unas plantillas de Word agregando un formulario VB y necesito validar que todos los campos de texto "enables" contengan información.
El siguiente código funciona pero si intento agregar una linea comentada para verificar solo los campos habilitados se despliega un mensaje (error 438) que indica que "El objeto no admite esta propiedad o método".
Private Function ListaCamposPorCompletar() As String
'On Error Resume Next
Dim EsteControl As Control
Dim ControlesPorCompletar() As String
Dim ListaTemporal As String
With UserForm1
ReDim ControlesPorCompletar(.Controls.Count)
For Each EsteControl In .Controls
If TypeName(EsteControl) = "TextBox" _
Or TypeName(EsteControl) = "ComboBox" Then
'AQUI DEBIERA IR EL FILTRO DE LOS CONTROLES ACTIVOS
'If EsteControl.Enable = True Then
If EsteControl.Text = "" _
Or EsteControl.Text = " " _
Or EsteControl.Text = EsteControl.ControlTipText Then
ControlesPorCompletar(EsteControl.TabIndex) = EsteControl.ControlTipText
End If
'End If
End If
Next
For i = 0 To .Controls.Count
If ControlesPorCompletar(i) <> "" Then
ListaTemporal = ListaTemporal & Chr(9) & ControlesPorCompletar(i) & Chr(13)
End If
Next i
End With
ListaCamposPorCompletar = ListaTemporal
End Function
Este código lo he utilizado antes en Word 2003 sin problemas. Ahora estoy trabajando en Word 2010 (o 2013). El archivo esta guardado con compatibilidad para Word 97/2003.
Desde ya agradezco cualquier ayuda,
Claudio
El siguiente código funciona pero si intento agregar una linea comentada para verificar solo los campos habilitados se despliega un mensaje (error 438) que indica que "El objeto no admite esta propiedad o método".
Private Function ListaCamposPorCompletar() As String
'On Error Resume Next
Dim EsteControl As Control
Dim ControlesPorCompletar() As String
Dim ListaTemporal As String
With UserForm1
ReDim ControlesPorCompletar(.Controls.Count)
For Each EsteControl In .Controls
If TypeName(EsteControl) = "TextBox" _
Or TypeName(EsteControl) = "ComboBox" Then
'AQUI DEBIERA IR EL FILTRO DE LOS CONTROLES ACTIVOS
'If EsteControl.Enable = True Then
If EsteControl.Text = "" _
Or EsteControl.Text = " " _
Or EsteControl.Text = EsteControl.ControlTipText Then
ControlesPorCompletar(EsteControl.TabIndex) = EsteControl.ControlTipText
End If
'End If
End If
Next
For i = 0 To .Controls.Count
If ControlesPorCompletar(i) <> "" Then
ListaTemporal = ListaTemporal & Chr(9) & ControlesPorCompletar(i) & Chr(13)
End If
Next i
End With
ListaCamposPorCompletar = ListaTemporal
End Function
Este código lo he utilizado antes en Word 2003 sin problemas. Ahora estoy trabajando en Word 2010 (o 2013). El archivo esta guardado con compatibilidad para Word 97/2003.
Desde ya agradezco cualquier ayuda,
Claudio
Valora esta pregunta


0