XL 2010 VBA - Décalage tableau + Pb valeur #N/A dans VLOOKUP

excelnoob

XLDnaute Nouveau
Bonjour à tous,


Je fais appel à votre gentillesse et vos compétences pour m'aider à résoudre 2 problèmes dans un fichier que j'ai récupéré (fichier attaché avec les macros inclues)


Les 2 problèmes sont les suivants :

1) Pour le tableau dans l'onglet "extract supplies", lorsque j'applique la macro "Extraire_Supplies" (dans l'onglet Preleq bouton "extraction des suppliers") , un décalage des lignes de la dernière colonne apparait (mis en évidence en orange) --> macro associée "Extraire_Supplies"

2) Pour le tableau dans l'onglet "analyse des consommables", lorsque une valeur n'est pas retrouvée selon les formules en colonne E et F , la valeur #N/A apparaît : Ici je souhaiterais qu'à la place il apparaisse la valeur 0 à la place --> macro associée "Bouton_Control"


Principe du fonctionnement du tableau:
- Intégration de la liste analysée mise dans l'onglet "Prelreq"
- dans l'onglet PrelReq : bouton "Mise en forme du Preleq" puis bouton "extraction des supplies"
- Apparition de l'onglet "Extract supplies" --> le 1er problème apparait (décalage des lignes de la dernière colonne)
- Onglet "Analyse des Consommables", bouton "contrôler le Prelreq" --> le 2ème défaut apparait (valeur non retrouvée apparait en #N/A)
- Bouton "Lancer un nouveau contrôle..": reinit du fichier

Je tiens d'avance à vous remercier pour votre aide.
 

Pièces jointes

  • FICHIER test.xls
    1 MB · Affichages: 67

lupin

XLDnaute Junior
Voilà comme prévu beaucoup plus facile avec des données.
En fait le problème se situe dans l'utilisation de SIERREUR (IFERROR en vba).
Comme le premier SI teste l'existence de la désignation pour détecter Consommable OK, lorsque la désignation est vide en colonne F, il y a erreur #NA et l'affichage est logique "Elément non connu: A ANALYSER".
Il faut donc changer la logique de la formule et mettre le test DTR OK DESIGNATION NOK comme second argument de la fonction IFERROR !
Voici donc la formule corrigée :
Range("i5").Select
ActiveCell.FormulaR1C1 = _
"=IFERROR(IF(INDEX('Rappel Liste CITADIS'!C[-7],MATCH(RC[-3],'Rappel Liste CITADIS'!C[-6],0))=""Commerce"",""Consommable OK"",IF(AND(RC[-2]=""DTR OK"",RC[-1]=""Désignation OK""),""Elément connu: OK"",IF(AND(RC[-2]=""DTR NOK"",RC[-1]=""Désignation OK""),""DTR manquant mais libellé connu"",""Elément non connu: A ANALYSER""))),IF(AND(RC[-2]=""DTR OK"",RC[-1]=""Désignation NOK""),""DTR connu: Problème libellé"",""Elément non connu: A ANALYSER""))"


Attention aussi qu'il y a un souci avec le range B5:J10000. La macro déclenche une erreur pour range trop grand.
Mais je pense que le code que j'avais envoyé travaillait sur la sélection des lignes existantes.
Cdlt,
 

excelnoob

XLDnaute Nouveau
Effectivement ça va bien mieux cette fois -ci : ça fonctionne!!

Pour l'histoire de la range, je viens de regarder et ton fichier ne le gérait pas

Si tu as une solution à cette histoire de range je prends, au pire je ferais sans.

Merci à toi Mr Lupin , tu es un génie!!
(que c'est agréable d'avoir une communauté d'entraide pfiouuu)
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote