[VBA] Problème ajout de liste de validation

Fermé
micaub Messages postés 32 Date d'inscription lundi 9 mars 2009 Statut Membre Dernière intervention 18 juin 2015 - 7 mai 2009 à 11:20
micaub Messages postés 32 Date d'inscription lundi 9 mars 2009 Statut Membre Dernière intervention 18 juin 2015 - 13 mai 2009 à 14:16
Bonjour à tous et excusez-moi de venir vous déranger une fois de plus.

Je suis actuellement en train de rédiger une macro qui a pour but de remplir une feuille (CFR) à partir d'un Userform (Nouvelle Garniture) préalablement rempli par l'utilisateur. C'est assez simple, il va piocher les données rentrées dans les 2 TextBox de mon formulaire qu'il va insérer dans 2 colonnes différentes, et ensuite, il va remplir les colonnes suivantes avec des listes de validations.
Après quelques heures acharnées à corriger tous les bogues, j'ai enfin réussi à faire fonctionner mon programme à merveille.

Private Sub BoutonValider_Click()

Application.ScreenUpdating = FalseSheets("CFR").Activate

num = Sheets("CFR").Range("B65536").End(xlUp).Row + 1
If Sheets("CFR").Range("B" & num - 1 & ":B" & num).MergeCells = True Then
num = num + 1
End If

Set Colonne_OR = Sheets("CFR").Range("F" & num & ":G" & num)
Set Colonne_IR = Sheets("CFR").Range("I" & num & ":J" & num)
Set Colonne_Cage = Sheets("CFR").Range("L" & num & ":M" & num)
Set Colonne_RE = Sheets("CFR").Range("O" & num & ":P" & num)
Set Colonne_Bearing = Sheets("CFR").Range("Q" & num)

With Sheets("CFR").Range("B" & num & ":U" & num)
.Validation.Delete
.FormatConditions.Delete
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With

Sheets("CFR").Range("B" & num).Value = TxtPN_SNR.Value
Sheets("CFR").Range("C" & num).Value = TxtPN_Client.Value

Colonne_OR.Validation.Add xlValidateList, xlValidAlertStop, xlBetween, "=OR_list"
Colonne_IR.Validation.Add xlValidateList, xlValidAlertStop, xlBetween, "=IR_list"
Colonne_Cage.Validation.Add xlValidateList, xlValidAlertStop, xlBetween, "=Cage_list"
Colonne_RE.Validation.Add xlValidateList, xlValidAlertStop, xlBetween, "=RollingElements_list"
Colonne_Bearing.Validation.Add xlValidateList, xlValidAlertStop, xlBetween, "=Bearing_list"

Unload NouvelleGarniture
End Sub


Petit hic, je viens de rajouter sur la feuille CFR un bouton "Version Client" dont la macro sert à masquer certaines colonnes, puis à les faire réapparaitre lorsque je clique à nouveau sur le bouton.

Private Sub BoutonVersionClient_Click()
Set Plage = Application.Union(Columns("H:H"), Columns("K:K"), Columns("N:N"), Columns("T:T"))
If BoutonVersionClient.Caption = "Version Client" Then
Plage.EntireColumn.Hidden = True
BoutonVersionClient.Caption = "Version SNR"
Else
Plage.EntireColumn.Hidden = False
BoutonVersionClient.Caption = "Version Client"
End If
End Sub


Mon programme de remplissage de feuille fonctionne a merveille tant que je n'ai pas utiliser le bouton "Version Client", mais une fois ce bouton utiliser, si je tente de continuer à remplir mes cellules, un sublime message d'erreur apparait.
Erreur d'exécution '-2147417848(80010108)'
La méthode 'Add' de l'objet 'Validation' a échoué.


Si je supprime dans mon 1er code la mise en place des validation, tout se passe de nouveau bien. J'avoue ne pas comprendre ce qu'il se passe. Quelqu'un aurait-il une idée ?

D'avance merci pour tous ceux qui auront eu la patience de lire mon message jusqu'au bout.

Cordialement.

MA

1 réponse

micaub Messages postés 32 Date d'inscription lundi 9 mars 2009 Statut Membre Dernière intervention 18 juin 2015
13 mai 2009 à 14:16
Petite précision : même lorsque je stoppe complètement la macro de remplissage de feuille, que je réinitialise le projet et que je relance la macro de remplissage, le même message d'erreur apparait. Je dois obligatoirement fermer le logiciel et le relancer pour pouvoir réutiliser ma macro remplissage sans soucis.
J'ai même tenté, sans conviction, un petit Application.EnableEvents = False mais ça n'a rien donné...
Je ne suis pas sûr qu'il y ait une solution... :(
Merci d'avance.
Cordialement.
MA
0