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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

Bonjour à tous

Est-ce que cette formule en F2 en remplacement de la tienne peut te convenir ?
=SOUS.TOTAL(9;F:F)/2

Et pour la plage nommée base, tu peux utiliser une macro qui recrée le nom
VB:
Sub MacroTest()
ActiveWorkbook.Names.Add Name:="base", RefersToR1C1:="=Feuil1!R3C6:R102C6"
End Sub
Il faut penser à remplacer Feuil1 par le vrai nom de la feuille.
 
Dernière édition:
Re-Bonjour,

ça marche super. je vais continuer de tester mais c'est bon. 😉

Sauriez-vous faire la même chose pour définir (nommer) une plage avec votre formule ?
INDIRECT("F3:F1048576"))

Mais déjà un grand merci,
Amicalement,
Lionel,
 
Je n'avais pas vu la macro. Mon fichier de travail est gros et avec un monbre de macros très importants.
LOL, moins j'en ajoute et mieux je me porte.

Est-il possible de le faire directement dans le gestionnaire de nom avec une formule ?
 
Avec une formule, en cas de suppression de lignes , la référence des cellules change dans la plage nommée.
Voila une formule pour nommée une plage de manière dynamique
=DECALER(Feuil1!$F$3;0;0;NBVAL(Feuil1!$F$3:$F$102);1)

mais comme je disais, si on supprime des lignes, la référence change.

C'est pour ca que je suis passé par une macro pour nommer la plage.
 
Merci pour ta gentillesse et pour ta volonté de m'aider.
Tu m'as déjà donné une formule qui fonctionne et c'est déjà beaucoup.

Concernant la définition de la plage, j'en ai tellement dans mon fichier que je préfère éviter les macros.
Je vais continuer à chercher une solution pour cela.
Amicalement,
Lionel,
 
Super, cette formule dans la sélection d'une plage fonctionne à merveille.
(=DECALER(Feuil1!$F$3;0;0;NBVAL(Feuil1!$F$3:$F$102);1))

Voilà un grand service que tu me rends.
Je t'en remercie vraiment 😉
Amicalement,
Lionel,
 
Plage nommée
J'ai re-testé la formule : =DECALER(Feuil1!$F$3;0;0;NBVAL(Feuil1!$F$3:$F$1048576);1)
En supprimant des tas de lignes = pas de changement de formule
En ajoutant des tas de lignes = pas de changement de formule
🙂
 
Si vraiment tu veux utiliser End(xlUp) pour ta formule, il faut passer par une macro
VB:
Sub MacroTest3()
Dim Ligne As Long
Ligne = Cells(Rows.Count, "F").End(xlUp).Row
ActiveWorkbook.Names.Add Name:="base", RefersToR1C1:="=OFFSET(Feuil1!R3C6,0,0,COUNTA(Feuil1!R3C6:R" & Ligne & "C6),1)"
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
22
Affichages
660
  • Question Question
Microsoft 365 Tableau
Réponses
24
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…