une exception s'est produite ?

aze

XLDnaute Nouveau
Salut,

Je vous soumets un ptit pb:

j'utilise un formulaire (crée via VBA) pour modifier des valeurs de cellules. Dans ce formulaire, j'ai crée des champs qui ont pour ControlSource une valeur de cellule (Par exemple le champ Nom a la valeur de la cellule correspondante (Nom article) sur ma feuille Excel).

En fait, quand je veux modifier ce nom, une fenetre indiquant 'Une exception s'est produite' s'ouvre. :eek:

Quelqu'un peut-il me dire d'où vient cette fenêtre et comment y remédier ?

Merci bien pour vos réponses

A+
 

aze

XLDnaute Nouveau
oki

Je t'envoie le fichier excel c + parlant.

Quand tu l'ouvres, tu cliques sur 'Fichier articles', puis sur 'Modifier articles'. Un formulaire s'ouvre où tu peux modifier des champs avec les valeurs actuelles dedans(les valeurs sont affichées). Sur certains champs, le fait de modifier ouvre une fenetre 'une exception s'est produite' (notamment stock maxi, ref constructeur).
Par exemple, je veux modifier le stock maxi de l'article jupiter. je cliques sur 'Modifier article', et dans mon champ Stock maxi j'ai ma valeur actuelle qui est affichée (exemple 700). Je la modifie en 500, et quand je cliques sur 'Valider', la fenetre 'une exception s'est ouverte' s'affiche.

Voila, la je crois que je peux pas faire mieux
 

aze

XLDnaute Nouveau
dsl
avec le fichier joint c mieux.

merci
[file name=Stock.zip size=48668]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Stock.zip[/file]
 

Pièces jointes

  • Stock.zip
    12.6 KB · Affichages: 38
  • Stock.zip
    12.6 KB · Affichages: 45
  • Stock.zip
    12.6 KB · Affichages: 44

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Aze (JMB), Jean-Marie, le Forum

Je constate à priori deux choses

La première, tu as posé une question dans ce fil de discussion et tu n' y es jamais revenu :

=> Lien supprimé

Pourtant je t'y ai mis une réponse cohérente.

La seconde, dans ton Fichier 'Stock.xls', la feuille 'Jupiter' lancée par ton bouton 'Fichier articles' est protégée par mot de passe et, par conséquent, la propriété 'ControlSource' qui tente d'écrire sur cette feuille représente une action interdite.

Je reconnais que le message typiquement Microsoft 'Une Exception s'est Produite' n'est vraiment pas clair !!! lol

J'ai bien entendu vu et noter que dans ton code du CommandButton3 tu avais cette ligne de code : ActiveSheet.Unprotect Password:='bibibest2'... Mais c'est trop tard !!! En effet dès que tu changes de Valeur dans la TextBox 'MaxiStockBox' (ou une autre) et dès que cette TextBox perd le Focus (c'est à dire que l'on quitte pour passer sur un autre Control) c'est déjà trop tard...

Par Conséquent, sans faire de refonte totale de ton code, je suggère de passer ton password dans l'évenement UserForm_Initialize de ton UserForm, vu qu'il s'ouvre en Mode Modal (donc pas de risque), et d'utiliser l'évènement UserForm_QueryClose pour remettre en place la protection...

Bon App
@+Thierry

EDITION :
En me relisant et en te relisant, je me rends compte que ce qui te 'mets dedans', c'est cette propriété 'ControlSource' qui est un faux ami pour les débutants, facile à paramétrer en mode design, mais il faut bien en comprendre l'utilité et la porté... En effet cette propriété 'ControlSource' est à Double Sens vers la Cellule indiquée... Si on modifie la Valeur dans la Cellule liée, le Contrôle se mettra à jour automatquement, et Vice Versa du Contrôle vers la Cellule...

Message édité par: _Thierry, à: 23/03/2005 12:31
 

ChTi160

XLDnaute Barbatruc
Salut '@+Thierry'
grace à toi(les leçons) j'allais expliquer aà aze que l'utilisation du ControlSource était la cause de ses malheurs
c'est fait et par le maitre
pour ce qui est de la non réponse aux propositions faites ,il est vrais que celà n'encourage pas
mais bon on le sait et on fait avec
bon App
et encore merci
 
A

aze

Guest
Re

Tout a fait exact _Thierry, g vu ta réponse à mon post (merci d'ailleurs d'y avoir répondu..). Je n'ai malheureusement pas pu la mettre en place (dsl g pas répondu non plus g oublié :unsure: ), du fait de l'inconvénient dont tu parlais et de la relative urgence à traiter ce souci (mes bases en VBA sont très limitées et comme tout bon employé g un boss derrière mon dos qui me presse pour avoir une solution rapidement, et encore c'est un euphémisme :p lol).

Quant à la réponse concernant le pb 'exception', je te remercie de t'investir autant. A vrai dire je ne pensais pas que ce serait un truc dans ce genre (protection). Je pense que je vais donc laisser ça comme ça, c'était pour améliorer un peu plus le fichier.

En tout cas merci bien pour vos réponses (_Thierry et ChTi160). Malheureusement j'aurai du mal à vous renvoyer l'ascenseur, Excel et VBA n'étant pas ma tasse de thé (dsl, je l'avoue j'ai toujours eu horreur de la programmation, quelle qu'elle soit).

Par contre si par le plus grand des hasard vous voulez de l'aide sur les réseaux informatiques et OS (Cisco, Microsoft, concepts, etc), n'hésitez pas à me contacter, j'essayerai de vous répondre dans la mesure du possible (et surtout si j'ai accès à internet).

Encore une fois merci bien et a+

aze
 
A

aze

Guest
Re encore.

Juste par curiosité, comment se fait il que la modification du nom de l'article ainsi que le stock mini se fasse bien alors que celle de la reference constructeur ne passe pas ? (Ou alors g rien compris à ton explication, ce qui est possible aussi)
:huh:
 

_Thierry

XLDnaute Barbatruc
Repose en paix
RE bonjour Aze, Jean-Marie, le Forum

Je viens de ré-ouvrir ton fichier en 'déprotectant' manuellement la feuille 'jupiter', et je lance le Userform 'ModifArticle'.

En TextBox 'ReferenceBox' je tape 'Toto', en cellule 'C4' de cette feuille 'Jupiter' j'ai bien 'Toto' d'inscrit dès que je change le Focus vers un autre Contrôle...

J'ai aussi testé les autres TextBox de ce UserForm 'ModifArticle', sans aucun problème (mis à part plus bas pour les superpositions)... Mais bon, franchement je déteste utiliser la propriété 'ControlSource' !!!

Moi en fait je m'y prendrai comme ceci :

Ta Macro de lancement de UserForm :
Private Sub UserForm_Initialize()
   
With ActiveSheet
        .Unprotect Password:='bibibest2'
        DesignationBox.Value = .Range('C3')
        ReferenceBox.Value = .Range('C4')
        SudinfoRefBox.Value = .Range('C5')
'        EtcLesAutresTextBox = .EtcLesAutresRange('XX')
   
End With
End Sub


Ta Macro de CommandButton :
Private Sub CommandButton3_Click()
Dim OldName As String
Application.ScreenUpdating =
True
       
        Sheets('Liste articles').Unprotect Password:='bibibest2'
               
        OldName = ActiveSheet.Name
                             
       
With ActiveSheet
            .Range('C3') = DesignationBox.Value
            .Range('C4') = ReferenceBox.Value
            .Range('C5') = SudinfoRefBox.Value
'            .EtcLesAutresRange('XX') = EtcLesAutresTextBox
       
End With
       
       
With Sheets('Liste articles')
        .Select
        ligne = 1
           
For ligne = 1 To 500
                 
If .Range('A' & ligne).Value = OldName Then
                    .Range('A' & ligne).Formula = '=
'' & DesignationBox.Value & ''!$C$3'
                    .Range('B' & ligne).Formula = '=
'' & DesignationBox.Value & ''!$G$6'
                    .Range('C' & ligne).Formula = '=
'' & DesignationBox.Value & ''!$C$6'
                    .Range('D' & ligne).Formula = '=
'' & DesignationBox.Value & ''!$E$6'
                    .Range('E' & ligne).Formula = '=
'' & DesignationBox.Value & ''!$E$5'
               
End If
           
Next
       
End With
        Sheets('Liste articles').Protect Password:='bibibest2'
        Sheets(DesignationBox.Value).Protect Password:='bibibest2'
        Unload ModifArticle
Application.ScreenUpdating =
True
       
End Sub


Mais Avant Toute Chose,

1) Je supprimerai toutes ces TextBox Superposées dans le UserForm, car çà c'est vraiment le big mess !!!
2) Je supprimera toutes les références 'ControlSource'...

Bon Courage car tu vas en avoir besoin, la situation n'est pas désespérée, mais tu as un peu raté le premier virage avec ton UserForm...

Bon Aprèm
@+Thierry
 
A

aze

Guest
Re _Thierry

G essayé ta config, (copier/coller tout bete pour commencer) et à l'execution de la macro, g un message d'erreur qui s'affiche :
'erreur d'execution 424, Objet requis' sur la ligne DesignationBox.Value = .Range('C3')

le code que tu m'as filé est, disons, obscur pour moi. Sans doute que ca te parlera plus qu'à moi.

thx

aze
 

ChTi160

XLDnaute Barbatruc
Re 'aze'
re @+Thierry
en pièce jointe ma petite bidouille
tiens nous au courant [file name=StockV1.zip size=33375]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/StockV1.zip[/file]
 
Dernière édition:
A

aze

Guest
Re

ChTi160, ta 'bidouille' a l'air de ronronner comme un chat ! ça marche du feu de dieu !

Merci bien en tout cas de vous (ChTi160 et Thierry) être démenés sur ce truc, c super sympa à vous !

a+

aze
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
314 017
Messages
2 104 584
Membres
109 084
dernier inscrit
mizab