XL 2010 VBA : Erreur d'incompatibilité , Saisi chiffres

TheProdigy

XLDnaute Impliqué
Bonjour tout le monde,

Je vous expose mon problème où je suis confronté à deux soucis:
  1. Un bug d'incompatibilité de type: Quand je veux fermer la fenêtre "Nouveau produit" ( Userform3 ) et que je coche l'option button Société, une erreur d’exécution 13 apparaît;
  2. Textbox accepte aussi les lettres et espaces : Dans mes texbox 4 et 3 j'ai restreint la saisi à des chiffres, mais malheureusement parfois il n'applique pas la restriction, je ne sais pas pourquoi !
Je vous ai joint mon fichier pour consultation.

Merci
 

Pièces jointes

  • Test.xlsm
    173.7 KB · Affichages: 18
Dernière édition:

D.D.

XLDnaute Impliqué
Je me suis focalisé sur l'erreur 1.
Dans la
Private Sub ComboBox1_Change() 'au changement dans la ComboBox1
par exemple, tu as les 3 lignes de code suivantes:
Code:
For i = 2 To NL 'boucle sur toutes les lignes I du tableau des valeur TV (en partant de la seconde)
    'si la données ligne I colonne 1 de TV est égale à la Mutuelle M et la donnée ligne I colonne 2 de TV est égale à la ComboBox1, alimente de dictionnaire D avec la donnée en colonne 3
    If TV(i, 1) = M And Me.ComboBox1 = TV(i, 2) Then d(TV(i, 3)) = ""
Next i 'prochaine ligne de la boucle

donc le dictionnaire d est alimenté (Then d(TV(i, 3)) = "") seulement si TV(i, 1) = M (au moins).
Mais quand on regarde les valeurs que peut prendre TV(i, 1) on voit qu'il boucle sur la colonne X ("Type" qui contient "Ville1, Ville2, etc...) et que M a une valeur Société1 (donc plutôt le contenu de la colonne R.
Une fois toutes les lignes bouclées, le dictionnaire est vide car TV(i, 1) n'est jamais égal à M.

D'ou l'erreur, je pense.
 

D.D.

XLDnaute Impliqué
Pour completer:
Tu as
Private Sub UserForm_Initialize() 'à l'intialisation de l'UserForm 3
...
TV = OI.Range("X1").CurrentRegion 'définit le tableau des valeurs TV (variable déclarée publique dans le module [Module1])

Et

Private Sub UserForm_Initialize() 'à l'initialsisation de l'userForm 1
...
TV = OI.Range("R1").CurrentRegion 'définit le tableau des valeurs TV (variable déclarée publique dans le module [Module1])


Et ca se mélange un peu...
 

TheProdigy

XLDnaute Impliqué
Pour completer:
Tu as
Private Sub UserForm_Initialize() 'à l'intialisation de l'UserForm 3
...
TV = OI.Range("X1").CurrentRegion 'définit le tableau des valeurs TV (variable déclarée publique dans le module [Module1])

Et

Private Sub UserForm_Initialize() 'à l'initialsisation de l'userForm 1
...
TV = OI.Range("R1").CurrentRegion 'définit le tableau des valeurs TV (variable déclarée publique dans le module [Module1])


Et ca se mélange un peu...
Merci. Que dois je faire dans ce cas?
 

Statistiques des forums

Discussions
311 725
Messages
2 081 948
Membres
101 850
dernier inscrit
Danigra