Hiyall,
I have this simple code running to calculate something in a Userform ; after filling some boxes, you click on a button to obtain the result - when clicking, it checks if all boxes have been filled :
Private Sub Valider_Click()
Dim Ctrl As Control, x1 As Long, x2 As Long
For Each Ctrl In Me.Controls
If TypeName(Ctrl) = "TextBox" Then
x1 = x1 + 1: If Ctrl.Text <> "" Then x2 = x2 + 1
End If
Next Ctrl
If x1 <> x2 Then
MsgBox "Veuillez remplir tous les champs", vbInformation, ""
Else
Sheets("Calculs").Range("C5").Value = NuCoaposX_texte.Value
Sheets("Calculs").Range("D5").Value = NuCoaposY_texte.Value
Sheets("Calculs").Range("C6").Value = NuCoasizeX_texte.Value
Sheets("Calculs").Range("D6").Value = NuCoasizeY_texte.Value
Sheets("Calculs").Range("C7").Value = NuCoadefX_texte.Value
Sheets("Calculs").Range("D7").Value = NuCoadefY_texte.Value
Sheets("Calculs").Range("C11").Value = NuSLIA0Y_texte.Value
Sheets("Calculs").Range("D11").Value = NuSLIA0Y_texte.Value
Sheets("Calculs").Range("C12").Value = NuSLIA1X_texte.Value
Sheets("Calculs").Range("D12").Value = NuSLIA1Y_texte.Value
Sheets("Calculs").Range("C13").Value = NuSLdefX_texte.Value
Sheets("Calculs").Range("D13").Value = NuSLdefY_texte.Value
End If
MoitieZoneNuX.Value = Sheets("Calculs").Range("F6").Value
Unload Me
End sub
The problem is that I want to populate some boxes with values from cells once everything has been calculated : of course it checks those boxes as well when I click the button. Is there a way to exclude some of those boxes from the check ?
I've tried seeking out the answer, but I'm unsure what exactly to look for
You can use the control's Tag
property to skip the length validation:
Private Sub Valider_Click()
Dim Ctrl As Control
For Each Ctrl In Me.Controls
If TypeName(Ctrl) = "TextBox" Then
'check tag and content...
If Ctrl.Tag <> "skip" And Len(Ctrl.Value) = 0 Then
MsgBox "Veuillez remplir tous les champs", vbInformation, ""
Exit Sub 'nothing else to do...
End If
End If
Next Ctrl
With Sheets("Calculs")
.Range("C5").Value = NuCoaposX_texte.Value
.Range("D5").Value = NuCoaposY_texte.Value
.Range("C6").Value = NuCoasizeX_texte.Value
.Range("D6").Value = NuCoasizeY_texte.Value
.Range("C7").Value = NuCoadefX_texte.Value
.Range("D7").Value = NuCoadefY_texte.Value
.Range("C11").Value = NuSLIA0Y_texte.Value
.Range("D11").Value = NuSLIA0Y_texte.Value
.Range("C12").Value = NuSLIA1X_texte.Value
.Range("D12").Value = NuSLIA1Y_texte.Value
.Range("C13").Value = NuSLdefX_texte.Value
.Range("D13").Value = NuSLdefY_texte.Value
End With
MoitieZoneNuX.Value = Sheets("Calculs").Range("F6").Value
Unload Me 'why do this after setting MoitieZoneNuX ?
End Sub