exécute malgré une erreur

A

Audrey

Guest
bonjour le forum,

Après quelque recherche, j'ai fini par trouver ce que cherchais depuis un bout de temps mais voilà, il faut que j'adapte ce fameux code à mes besoins, chose pas tout à fait évidente, la preuve:

Lorsque j'ai voulu tester le code que j'ai adapté, il m'a renvoyé le message d'erreur suivant: 'Propriété ou méthode non gérée par cette obet'.
Le débogueur me montre ce morceau du code:
.Range ('B5:H4' & _
.Range('B5').End(xlDown).Row + 1)

Ceci dit, malgré le message d'erreur et apparement un morceau du code qui n'est pas très correct, ce que je demande s'exécute quand même... :huh:

Qulqu'un pourrait m'expliquer ce qui se passe???
 
A

Audrey

Guest
Bonjour charly,

J'ai regarder ce que tu as fais et je te félicite c'est ce que je recherche en tous points.
Ceci dit, j'ai essayé de reprendre tes codes pour remettre dans mon appli mais il y en a que je ne trouve pas....
Notament le code grâce auquel losque tu entre un article, le stock actuel s'incrémente automatiquement dans l'inventaire...

Je trouve simplement

Private sub commandbutton1_click()
'bouton entrée article
entrée_sortie_stock (true)
ens sub

Pourrais-tu m'expliquer comment tu as fais?

Merci. ;)
 

Charly2

Nous a quittés en 2006
Repose en paix
Bonjour Audrey, bonjour à toutes et à tous :)

Je constate que mon précédent message n'est pas passé :sick:

Bon, je vais faire plus court. D'abord 2 erreurs à corriger, la première dans l'USF_Ajout, dans le code de la procédure CommandButton1_Click (bouton OK), place les instructions suivantes (situées juste après la mise à jour de la feuille Inventaire) :

Code:
    Sheets('Inventaire').Select
  End If
  Application.ScreenUpdating = True
  Unload Me
  Exit Sub

Voilà pour le code. La seconde erreur est un oubli de mise à jour dans la cellule F2 de la 'Fiche article', remplacer :

=SOMMEPROD((MAJUSCULE(A7:A200)='E')*G7:G200)-SOMMEPROD((MAJUSCULE(A7:A200)='S')*G7:G200)

par

=SOMMEPROD((MAJUSCULE(A7:A200)='Entrée')*G7:G200)-SOMMEPROD((MAJUSCULE(A7:A200)='Sortie')*G7:G200)

Sinon, pour ta question, c'est effectivement l'appel de cette procédure qui détermine s'il s'agit d'une entrée ou d'une sortie d'article, et la formule ci-dessus met à jour le stock. La mise à jour dans la feuille Inventaire est effectuée par formule aussi... Si par exemple tu as une feuille nommée 'Filtre à huile' et qu'elle soit inscrite en ligne 5 de la feuille 'Inventaire', en colonnes F,G et H, tu as des formules ; par exemple en F5 :

=SI($A5‹›'';INDIRECT('''&$A5&''!'&'$F$2');'')

qui est un lien direct avec la cellule F2 (Stock actuel) de la feuille 'Filtre à huile' (nom en colonne Désignation).

N'hésite pas si je n'ai pas été assez clair ;)

A+
 
A

Audrey

Guest
Charly,

Si j'ai bien compris, pour que mon stock se mette à jour automatiquement dans la feuille inventaire il faut que je créé un lien entre la fiche de mon article et mon inventaire.
Moi je cherchais vraiment trop compliqué je crois.

Mais comment on fait (si c'est bien comme ça que ça marche)?
 

Charly2

Nous a quittés en 2006
Repose en paix
Oui, Audrey, c'est bien comme ça que ça marche. Pour le lien, tu n'as rien de particulier à faire pour les nouveaux articles, puisque c'est fait dans les lignes suivantes (procédure CommandButton1_Clik - Bouton Ok - dans USF_Ajout) :

Code:
    With Sheets('Inventaire')
      .Range('A' & DerLigne) = ActiveSheet.Name
      .Range('C' & DerLigne) = TextBox2.Value
      .Range('F' & DerLigne).FormulaLocal = '=SI($A' & DerLigne & '‹›'''';INDIRECT('''''&$A' & DerLigne & '&'''!''&''$F$2'');'''')'
      .Range('G' & DerLigne).FormulaLocal = '=SI($A' & DerLigne & '‹›'''';INDIRECT('''''&$A' & DerLigne & '&'''!''&''$F$2'');'''')'
      .Range('H' & DerLigne).FormulaLocal = '=SI($A' & DerLigne & '‹›'''';INDIRECT('''''&$A' & DerLigne & '&'''!''&''$F$2'');'''')'
      
      .Range('A4:H' & DerLigne).Sort key1:=.Range('A4'), header:=xlYes
    End With

C'est vrai qu'un mélange de code et de formules, c'est pratique ;)

A+
 
A

Audrey

Guest
Merci CHarly c'est Nckel chrome je viens d'adapter le code à mon appli et ça marche!

Maintenant, il faut que je fasse la même chose (ou presque) quand je supprime un article.

Ne t'en va pas trop loin je pourrais à nouveau avoir besoin de tes compétences.

Merci encore.
 
A

Audrey

Guest
re Charly,

Comme je pensais avoir saisi ton code pour la suppression d'un article, j'ai tout repris et j'ai remplacer le code que j'avais.
Mais une chose ne passe pas:
sheets(NomFeuille).Delete
à chaque fois ça beug ici, pourtant, NomFeuille est défini plus haut donc ça devrait fonctionner...
J'ai bien dit que je pensais avoir compris... :whistle:
 

Charly2

Nous a quittés en 2006
Repose en paix
Re Audrey :)

Le choix de la feuille à supprimer est dans la ComboBox, tes articles commencent-ils en ligne 5 dans la feuille 'Inventaire' ?

S'ils sont saisis à partir d'une ligne différente, il faut écrire :

NomFeuille = Sheets('Inventaire').Cells(PremièreLigneDeDonnées + ComboBox1.ListIndex, 1)

Tiens nous au courant.

A+
 
A

Audrey

Guest
re Charly,

Je suis désolée mais j'ai fais ce que tu m'as dis et il me surligne toujours la même chose:
sheets(NomFeuille).delete
Et le message d'erreur me dis que l'indice n'appartiend pas à la sélection... :(
 

Charly2

Nous a quittés en 2006
Repose en paix
re Audrey,

Bon, apparemment le nom de l'article dans ta feuille Inventaire ne correspond pas à celui de la feuille. Tu avais créé ta feuille avant d'intégrer le code ?

Si tu ne parviens pas à trouver d'où vient le problème (je pense différence entre nom feuille de données Inventaire), je te donnerais mon @dresse ;)

Il y a toujours des solutions...

A+ :)
 
A

Audrey

Guest
bonjour charly,

(on se croirait dans Charly's angel!! lol)

Bon fini de plaisanter j'ai résolu le problème du 'NomFeuille' mais maintenant il y en a un autre peut-être moins facile à résoudre même pour toi:

à chaque fois que je veux supprimer un article, la procédure se fait correctement, je vois le feuille correspondant à l'article se supprimer mais aussitôt j'ai un message de microsoft qui me dis qu'un problème est survenu et qu'il faut fermer le fichier.
Il me demande si je veux envoyer le rapport d'erreur et le fichier se ferme.

Je ne sais pas d'où ça vient et je me dis que si ça se trouve je vais devoir tout recommencer. (aïe aïe aïe même pas drôle) :S
 
A

Audrey

Guest
Apparement je ne peux pas te l'envoyer le fichier est trop gros, je suis au boulot et le serveur ne permet pas d'envoyer des fichiers supérieur à 2K je crois.
Mais bon tant pis je vais effecer le code que j'ai repris sur toi et je vais recommencer cette partie en m'appliquant un maximum. :pinch:
J'y arriverais bien!
 
A

Audrey

Guest
Charly,

Tu sais quoi? et ben moi non plus.
Je viens d'effacer tout le code que j'avais pour la suppression d'un article et j'ai copier coller le tiens en modifiant les valeurs des cellules et rien d'autre et tu devine quoi?
Et ben ça marche je ne sais pas ce que j'avais traifiquer hier et ce matin mais j'avais vraiment du faire n'importe quoi!!
:) :) :lol: :) :woohoo:
Merci beaucoup en tut cas tu m'as énormément aidé et je t'en suis très reconnaissante.
Merci.


PS: Mais reste dans le coin quand même je n'ai pas tout à fais fini!
 

Discussions similaires

Statistiques des forums

Discussions
312 382
Messages
2 087 838
Membres
103 667
dernier inscrit
datengo