Bonjour,
Je viens vers vous car j'ai besoin d'aide. Je me suis lancé dans l'utilisation d'Userform, et je n'arrive pas à gérer la suppression d'une Checkbox dans l'Userform. Je m'explique : le bout de programme qui suit fait une boucle sur toutes les Checkbox contenues dans mon Userform. Lorsque j'ai créé cet Userform, j'ai aussi créé mes Checkbox une par une, et elles sont automatiquement numérotées par ordre croissant. Jusque là, mon programme fonctionnait parfaitement.
Mon problème est le suivant : j'ai supprimé une Checkbox car je n'en avais plus besoin, et la boucle ne fonctionne plus. Elle s'effectuait de i=1 à la dernière Checkbox créée. Comme j'ai supprimé une Checkbox, imaginons que ce soit la numéro 3, la boucle s'arrête lorsque i=3 car le programme ne trouve pas de "Checkbox3". Le programme se met donc en erreur. Pour palier à cette erreur, j'ai rajouté une boucle "IF" au début du bout de programme qui est censée faire un saut (saut1) au cas où la Checkbox soit inexistante. Cela ne fonctionne pas, j'ai essayé des tas de syntaxes différentes mais je ne m'en sors pas...
For i = 1 To CountCheckBoxes 'Boucle sur toutes les CheckBox de l'Userform
'Masque/Supprime les colonnes non voulues
If Controls("CheckBox" & i).Caption Is Nothing Then
GoTo saut1
Else
CheckBoxName = Controls("CheckBox" & i).Caption
Set SensorAddress = Rows(1).Find(CheckBoxName, , xlValues, xlWhole, xlByColumns, , True)
If SensorAddress Is Nothing Then
GoTo saut2
Else
If Controls("CheckBox" & i).Value = False Then
SensorCol = SensorAddress.Column
Columns(SensorCol).Select
Selection.EntireColumn.Hidden = True 'cache la colonne
Columns(SensorCol - 1).Select
Selection.EntireColumn.Hidden = True 'cache la colonne précédente (échantillonnage associé)
'Selection.Delete Shift:=xlToLeft 'supprime la colonne
End If
End If
End If
saut1:
saut2:
Next i
J'ai grand besoin de votre aide, et je vous remercie d'avance pour ça !