Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Adaptation d'un code qui fonctionne sur chng val manuel à chng val automatique.

Sb_OS

XLDnaute Junior
Bonjour,
J'ai un module qui fait que si je valide un produit par "Fait" dans la colonne E de la feuil 1, le code fait une recherchev puis la cellule qui correspond à la validation dans la colonne G sera n+1 ( i, G = (i, G)+1).
J'ai un code (private sub) de (suites) dans la feuil 2 qui assure l'égalité entre les numéros de plusieurs produits (les numéros sont dans la colonne G) que je défini sur le code mais cela est dans le cas de changement manuel des numéros (dans le cas de modification automatique grâce au module que j'exécute via un bouton j'ai erreur 13).

Est ce que quelqu'un d'entre vous peut me corriger cette erreur sur le code private sub !
(normalement c'est en utilisant for each rng in target ... mais je ne sais pas trop faire la décomposition de ce traitement).

Merci d'avance.
 

Pièces jointes

  • new.xlsm
    31.6 KB · Affichages: 26
Dernière édition:

Sb_OS

XLDnaute Junior
Bonjour pierrejean ,

merci pour la proposition, mais y a toujours l'erreur sur Val = ...
je croix qu'il faut décomposer le traitement sur chaque cellule en remplaçant target par Rng !!
 

Sb_OS

XLDnaute Junior
en effet, j'ai quelques produits qui doivent avoir le meme numéro (dans mon vrai cas se sont des pieces) donc une fois une modification du numéro d'un produit elle est faite le numéro de l'autre produit associé (que je défini par dans le code) ce met à jour meme si il est pas validé dans la feuil 1.
j'ai des moules et des contres moules qui ont logiquement le meme numéro tout le temps mais il y arrive des fois que dans la feuil 1 (de calcule) j'ai soit le moule ou le contre moule donc une fois je valide un des deux l'autre ce valide également et je saute sur le numéro suivant dans ma BDD dans la feuil 2 ( je ne peux pas faire une boucle car des fois j'ai 2 pièces moule c moule des fois j'ai plus).
 
Dernière édition:

Sb_OS

XLDnaute Junior
Emm toujours pas. à mon avis on laisse le module tel qu'il est et on modifier sur le private sub de la manière suivante :

For each rng in target

Lig = rng.Row 'N° ligne de chgt de valeur
' val = rng.offset(0, -2) 'Valeur de la cellule changé
ça peut etre quelque chose comme ça

NB : dans ce cas j'ai défini une égalité entre A1 A2 , B1 et B2 , C1 ET C2 donc si valide C1 par exemple le N de C1 sera N C1 + 1 et N C 2 fait pareil car je les ai associer dans le private Sub dans la suite 2
 
Dernière édition:

Sb_OS

XLDnaute Junior
Merci pierrejean pour ton accompagnement c'est très gentil de ta part.
Très bien et c est encore mieux de les mettre dans le meme code car avec la première méthode l'exécution est très lourde.
j'ai juste pas compris comment je puisse définir les numéros qui doivent etre égaux si par exemple je souhaite faire A1 =A2 =B1 et C1=C2.
je vois pas trop ou est ce qu'elle est la partie que je dois modifier.
 

Sb_OS

XLDnaute Junior
d'accord dans la 3eme colonne du tableau je vois maintenant et c'est un bon astuce dans le cas ou en rajoute des nouvelles pièce à la BDD donc on adapte pas le code c'est juste rajouter un symbole.
Tu m'as beaucoup aidé pierrejean merci bcp
 

Discussions similaires

Réponses
22
Affichages
1 K
Réponses
7
Affichages
686
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…