Léger problème sur une macro

Résolu/Fermé
palban53 Messages postés 44 Date d'inscription lundi 2 janvier 2017 Statut Membre Dernière intervention 31 mars 2020 - 6 juin 2017 à 20:43
palban53 Messages postés 44 Date d'inscription lundi 2 janvier 2017 Statut Membre Dernière intervention 31 mars 2020 - 7 juin 2017 à 20:45
Bonsoir,
Je me permets de vous déranger en raison d’un léger problème sur une macro que je n’arrive pas corrigé.

En effet, je suis en train de remplir une fiche qui permet de donner des informations sur les articles (fiche article)
Pour ce faire, j’ai décidé de mettre des boutons qui remplissent certaines cellules et pour d’autres elles sont en automatiques.

J’ai un problème pour le remplissage des cellules dans l’onglet « FABRICATION » (appuyer sur le bouton "Fabrication" dans l'onglet "choix" ou "retour au choix")
- ligne 165 (partie dédiée au « PCB (Carton) »)
- ligne 173 (partie dédiée au « PALETTE-BAC»)

J’ai un problème pour le remplissage des cellules dans l’onglet « NEGOCE»
- ligne 72 (partie dédiée au « PCB (Carton) »)
- ligne 80 (partie dédiée au « PALETTE-BAC»)

Par exemple pour l'onglet "FABRICATION"
Je clique sur le bouton « valider » que vous pouvez constater en ligne 163 et 171 ET il y a seulement la 1ere cellule qui se remplis (cellule C165 et C173) pour le reste (cellules F165 / I165 et F173/ I173) aucune donnée appairait.

Pour regarder ce que j’ai fait, aller voir les macros suivantes :
- « aide_cdt_carton_F » (lié à l’onglet « FABRICATION »)  CARTON
- « aide_cdt_carton_N » ( lié à l’onglet « NEGOCE »)  CARTON
- "aide_cdt_palette_F" (lié à l’onglet « FABRICATION »)  PALETTE
- "aide_cdt_palette_N" ( lié à l’onglet « NEGOCE »)  PALETTE




VOICI LE DEBUT DE LA 1ERE MACRO CONCERNEE

Sub aide_cdt_carton_N() 'vérifier dans quel type de vente on est pour negoce
“If ThisWorkbook.Sheets(2).Range("E127").Value = "1" Then
If ThisWorkbook.Sheets(2).Range("C70").Value <> "" Then

If ThisWorkbook.Sheets(2).Range("C70").Value = "EMB 003" Then
ThisWorkbook.Sheets(2).Range("C72").Value = "60"
ThisWorkbook.Sheets(2).Range("F72").Value = "40"
ThisWorkbook.Sheets(2).Range("I72").Value = ""
End »

Comme vous le voir j'ai un déclencheur en cellule E127 pour l'onglet "NEGOCE" et dés que la valeur est différente de l'ensemble vide et qu'il est noté "EMB 003" alors cela doit noté 60 dans la cellule C72 (longueur) puis 40 dans la cellule F72 (largeur) et rien dans la cellule I72 (hauteur)



Merci beaucoup pour votre aide, je ne sais pas pourquoi cela ne déclenche que pour la 1ere cellule et pas les 2 autres.

Merci beaucoup pour votre aide. Etant débutant, je pense que ce problème est très simple corriger vous concernant.

Si vous avez la moindre question n'hésitez pas à me recontacter.


Voici le lien du fichier : http://www.cjoint.com/c/GFgsQCrXjat

Merci beaucoup de votre aide

Cordialement
A voir également:

1 réponse

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié le 7 juin 2017 à 08:09
Bonjour,

Votre souci est lie au declanchement de la procedure evenementielle

Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Source As Range)

Call macro

End Sub

Qui se declanche systematiquement a chaque changement de valeur cellule ou clic sur un bouton et arrete la procedure en court d'excecution . Pour palier a ceci, vous devez utilise l'instruction suivant
Application.EnableEvents a false/true pour desactiver/activer le declanchement des evenements Excel et surtout ajouter un code qui sur erreur activera les evenements Excel sinon marche plus, obliger de fermer le fichier
Cette ligne d'instruction est a mettre en debut (a false)et fin (a true) des procedures qui modifient les feuilles NEGOCE et FABRICATION

Maintenant pourquoi :
Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Source As Range)

Call macro

End Sub

Car a chaque remplissage de cellule, elle s'execute

A+ pour plus d'explications si necessaire
0
palban53 Messages postés 44 Date d'inscription lundi 2 janvier 2017 Statut Membre Dernière intervention 31 mars 2020 1
7 juin 2017 à 20:45
Bonsoir,
Merci beaucoup pour votre aide si précieuse et si rapide.

Cela m'a permis de pallier à mes problèmes.

Le "call macro" permet de faire fonctionner toutes les macros en automatique dans le document.
Je les insère au fur et à mesure et cela permet d'avoir plusieurs qui fonctionnent en même temps.

Encore merci

Bonne soirée
0