XL 2013 Problème lors de changement de données

débutantplus

XLDnaute Junior
Bonjour à tous,
J'avais fait appel à certains d'entre vous pour une macro qui me permettait de rechercher et supprimer des lignes en fonctions de plusieurs critères. Les résultats de cette macro sont traités sur une autre feuille
Feuille contenant les lignes à analyser avec la macro:
1648042090697.png


Feuille d'analyse des résultats de la macro :
1648042154552.png


MAIS lorsque je change les données de départ par de nouvelles données avec le même agencement la macro fonctionne mais pas la feuille d'analyse des résultats:
1648042285169.png

1648042376451.png

Avez vous une solution à mon problème ?
Merci pour votre aide.
 
Solution
Bonjour à toutes & à tous, bonjour @débutantplus
Lors de ta mise à jour tu dois supprimer des lignes ou des colonnes de ta feuille SAP référencées dans tes formules d'où les #REF! .
Change de méthode pour la mise à jour (EFFACER plutôt que SUPPRIMER) ou utilise un biais avec la fonction DECALER pour ne pas perdre tes références
En supposant que tu ais une ligne de titre et qu'il n'ait pas de lignes vides et qu'il n'y ait que des valeurs que tu compte dans la colonne SAP!E:E (hors titre) ça peut donner cela :
VB:
=SOMME.SI.ENS(DECALER(SAP!$A$1;1;4;NBVAL(SAP!E:E)-1);DECALER(SAP!$A$1;1;2;NBVAL(SAP!E:E)-1);$B$2;DECALER(SAP!$A$1;1;3;NBVAL(SAP!E:E)-1);$B$3;DECALER(SAP!$A$1;1;6;NBVAL(SAP!E:E)-1);A79)
Ce qui fonctionnera sauf si tu...

AtTheOne

XLDnaute Accro
Supporter XLD
Bonjour à toutes & à tous, bonjour @débutantplus
Lors de ta mise à jour tu dois supprimer des lignes ou des colonnes de ta feuille SAP référencées dans tes formules d'où les #REF! .
Change de méthode pour la mise à jour (EFFACER plutôt que SUPPRIMER) ou utilise un biais avec la fonction DECALER pour ne pas perdre tes références
En supposant que tu ais une ligne de titre et qu'il n'ait pas de lignes vides et qu'il n'y ait que des valeurs que tu compte dans la colonne SAP!E:E (hors titre) ça peut donner cela :
VB:
=SOMME.SI.ENS(DECALER(SAP!$A$1;1;4;NBVAL(SAP!E:E)-1);DECALER(SAP!$A$1;1;2;NBVAL(SAP!E:E)-1);$B$2;DECALER(SAP!$A$1;1;3;NBVAL(SAP!E:E)-1);$B$3;DECALER(SAP!$A$1;1;6;NBVAL(SAP!E:E)-1);A79)
Ce qui fonctionnera sauf si tu supprimes la cellule SAP!$A$1 ou la colonne SAP!E:E

Amicalement
Alain
 

débutantplus

XLDnaute Junior
Bonjour ATTHEONE,
Merci pour ta réponse, j'ai essayé de remplacer les valeurs des cellules en utilisant la fonction "effacer contenu" avec la gomme dans Edition de l'onglet accueil puis en copiant mes nouvelles valeurs avec la fonction "copier que les valeurs" et malheureusement après avoir lancé la macro j'ai denouveau des #REF partout.
J'aimerais tester avec la fonction DECALER mais j'ai pas tout compris à votre explication, votre formule est à copier dans la cellule SAP!A1?
 

débutantplus

XLDnaute Junior
J'ai trouvé pourquoi il m'affichait des REF partout, après le lancement de la macro j'ai regardé mes définitions de liste et il y a un bien un REF qui apparaît dans la formule de ma liste, en le remplaçant tout est revenu à la normale, mais l'opération sera à répéter à chaque fois et c'est contraignant.
Le ref dans la formule est une cellule fixe qui permet de référencer toutes les autres listes.
1648134232242.png

c'est le "commandes!B8" qui s'efface ...
 

Pièces jointes

  • Classeur13 - Copie.xlsm
    613.8 KB · Affichages: 1

AtTheOne

XLDnaute Accro
Supporter XLD
Bonsoir à toutes & à tous, bonsoir @débutantplus
c'est le "commandes!B8" qui s'efface ...

Je suppose que d'une façon ou d'une autre tu supprimes la cellule COMMANDES!$B$8 ou la colonne COMMANDES!$B:$B entière.
Si c'est toujours cette cellule que tu référencies, remplace ta définition du nom DateDoc par :
VB:
=DECALER(INDIRECT("COMMANDES!$B$8");;;NBVAL(INDIRECT(COMMANDES!$B:$B))-1)
Comme cela même si tu as préalablement supprimer la cellule ou la colonne, ton nom pointera vers la "nouvelle" colonne B;B ou cellule B8 ...

Pour la question dans ton post #3 :
Code:
=SOMME.SI.ENS(DECALER(SAP!$A$1;1;4;NBVAL(SAP!E:E)-1);DECALER(SAP!$A$1;1;2;NBVAL(SAP!E:E)-1);$B$2;DECALER(SAP!$A$1;1;3;NBVAL(SAP!E:E)-1);$B$3;DECALER(SAP!$A$1;1;6;NBVAL(SAP!E:E)-1);A79)
votre formule est à copier dans la cellule SAP!A1?
Non c'est pour remplacer ta formule initiale
1648153178472.png

Puisqu'il me semblait que tu supprimais des cellules des plages concernées et que je supposais que tu ne supprimais ni la 1ère ligne ni la colonne E en entier.
Cette formule prend pour références fixes des cellules de la 1ère ligne et calcule le nombre de valeurs dans la colonnes E (moins un titre).

Amicalement
Alain
 

Discussions similaires

Statistiques des forums

Discussions
312 453
Messages
2 088 553
Membres
103 881
dernier inscrit
malbousquet