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

XL 2013 suppression de lignes = formules et plages modifiées

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

Me re-voilà devant un problème que j'ai depuis très longtemps.
Jusqu'à maintenant, je m'étais "débrouillé" en modifiant par ci et par là LOL , mais aujourd'hui, mes fichiers importants m'obligent à chercher une vraie solution.

Voici le problème ( dans le fichier joint) :
Quand je supprime des lignes entre la ligne 3 et 100, ma formule et ma plage sont modifiées

Mes recherches
J'ai fait des recherches et j'ai vu qu'il était possible de "bloquer", par exemple F3 à F100
avec ".End(xlUp)" ou que la plage de calculs ou de base soit toujours la dernière ligne NON vide

Mais je n'ai pas trouvé comment "adapter" pour que ça marche.

Encore une fois, je fais appel à vous pour m'aider (pj fichier test)
Un grand merci pour m'avoir lu.
Amicalement,
Lionel,
 

Pièces jointes

  • Test Formules et plage.xlsm
    10.7 KB · Affichages: 32

cathodique

XLDnaute Barbatruc
Est-il possible de le faire directement dans le gestionnaire de nom avec une formule ?

Essai avec cette formule pour définir un nom de plage:
Code:
=DECALER(Feuil1!$F$1;2;;NBVAL(Feuil1!$F:$F)-1)

En espérant que ça réponde à tes attentes.

Ci-joint ton fichier en retour, j'ai nommé la plage: PlageCol_F
 

Pièces jointes

  • Test Formules et plage.xlsm
    10.7 KB · Affichages: 26

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous,

Et pourquoi pas tout simplement sans nom dynamique défini ? :
VB:
=SOMME(INDIRECT("F3:F1048576"))

Même en allant jusqu'à la dernière cellule, c'est rapide. Si on connaît à peu près le nombre max de ligne, on peut réduire la limite 1048576.
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Mapomme,
Bonjour Yurperqod,
Bonjour le forum,

Merci Mapomme pour cette formule qui fonctionne bien également.
Même si j'ai une idée du nombre de lignes maxi, pour la gestion de mon fichier, il y a beaucoup de suppression et d'ajout de lignes.
Toutefois, effectivement, je peux remplacer 1048576 par 20000.

Cependant, grâce à vous et à Yurperqod, mon souci est sollutionné.

Un grand merci car c'était un gros problème.
Bonne journée à toutes et à tous,
Amicalement,
Lionel,
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
J'y revient un petit coup LOL
En fait, ce que j'aimerais mettre dans la formule le code : .End(xlUp) à la place de 1048576 pour que le calcul se fasse toujours jusqu'à la dernière cellule NON vide inclue.

Yurperqod me dit que ce n'est pas possible sans macro mais il me semble l'avoir vu dans une formule quand j'avais fait des recherches il y a quelques temps mais je n'arrive pas à le retrouver.
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Mapomme,
Bonjour Yurperqod,
Bonjour le forum,

Yurperqod désolé de ne pas avoir répondu plus tôt, mais j'étais absent.
Pour l'instant, grâce à toi et à Mapomme, les solutions proposées me conviennet.

Pour te répondre, mon souci était le suivant :
J'ai une plage, par exemple de F3:F102
si je supprime de 30 lignes à l'intérieur de la plage se trouve modifiée comme suite : F3:F72
Et si ensuite je saisi un chiffre en F102, il n'est pas pris en compte.
Bonne journée à toutes et à tous,
Amicalement,
Lionel,
 

job75

XLDnaute Barbatruc
Re,
Avec ta formule, je ne comprends pas pourquoi il y toujours deux lignes de plus dans base
Ce n'est guère gênant mais si l'on veut que la plage s'arrête exactement au dernier nombre :
Code:
=DECALER(Feuil1!$F$2;1;;EQUIV(9^99;Feuil1!$F:$F)-2)
ou si l'on veut pouvoir insérer ou supprimer des lignes au dessus de F2 :
Code:
=DECALER(Feuil1!$F$2;1;;EQUIV(9^99;Feuil1!$F:$F)-LIGNE(Feuil1!$F$2))
L'inconvénient est que si l'on efface tous les nombres sous F2 la formule renvoie une erreur, il faut alors compléter la formule en F2 :
Code:
=SI(NB(base);SOMME(base);0)
Avec la formule simple de mon post #28 il n'y a pas ce problème.

Dans tous les cas l'effacement des nombres entraîne un message de référence circulaire, on l'évite en activant le calcul itératif (menu Fichier, Options, Formules).

A+
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Yurperqod,

Oui, je suis obligé de supprimer "automatiquement" des lignes pour alléger mon lourd fichier.
Ces lignes sont supprimées quand nous n'avons plus à revenir dessus.

Mais, les solutions que vous m'avez donné ont solutionné mon souci
Je vais faire l'inventaire des formules et je réponds dès que j'ai un moment.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…