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

Zone d'impression paramètrable

bigmousse

XLDnaute Occasionnel
Bonjour à tous,
Je rencontre encore un petit soucis que je ne comprends pas du tout.
J'ai une zone d'impression paramètrable via du code VBA puisque je ne peux pas faire autrement (voir le post :
https://www.excel-downloads.com/threads/zone-dimpression-parametrable.152210/)

Depuis ça fonctionne jusqu'à aujourd'hui, et je ne sais où chercher. Dans mon fichier j'ai plusieurs feuilles qui utilisent ce procédé et ça fonctionne sauf une, vous la trouverez dans le fichier joint, le fichier de base fait plus de 300ko.

Objectif :
Impression en fonction du numero de semaine (paramètre en haut à gauche)


Merci de m'éclairer
Salutations
Mousse
 

Pièces jointes

  • Zone d'impression.xls
    182 KB · Affichages: 69

ROGER2327

XLDnaute Barbatruc
Re : Zone d'impression paramètrable

Bonsoir bigmousse
Je suis étonné que ça ait pu fonctionner.

Essayez en écrivant
Code:
F = "=OFFSET(Personnel!R1C4,,MATCH(Personnel!R3C1,Personnel!R1C4:R1C213,0)-1,50,18)"

Dans votre classeur d'essai, ça fonctionne…​
ROGER2327
#4745


Samedi 14 Sable 138 (, )
24 Frimaire An CCXIX
2010-W50-2T22:05:18Z
 
Dernière édition:

bigmousse

XLDnaute Occasionnel
Re : Zone d'impression paramètrable

Merci ROGER2327, ça fonctionne..., cependant je ne comprends pas pourquoi les fonctions sont en Anglais et pourquoi le code précédent a fonctionné.
Peux-tu m'éclairer
Merci
Mousse
 

ROGER2327

XLDnaute Barbatruc
Re : Zone d'impression paramètrable

Re…
Je n'ai pas d'explication. Les formules doivent être construite en pseudo-anglais (je ne voudrais pas offenser nos amis britanniques en parlant d'Anglais à propos du charabia généralement employé en informatique) sauf lorsqu'on utilise FormulaLocal. Je ne vois vraiment pas comment votre procédure a pu fonctionner à un moment ou un autre.
D'autres sauront peut-être vous éclairer…​
ROGER2327
#4757


Dimanche 15 Sable 138 (Khurmookum du Dr Faustroll, SS)
25 Frimaire An CCXIX
2010-W50-3T23:46:30Z
 

Staple1600

XLDnaute Barbatruc
Re : Zone d'impression paramètrable

Bonsoir bigmousse, ROGER2327, job75 (par extension) , le fil, le forum

Extrait de l'aide VBA
bigmousse
Je te laisse adapter le code de Job75 en gardant ta formule en français pour voir ce qui se passe
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Zone d'impression paramètrable

Bonjour bigmousse, Roger, JM,

Bonjour à tous,
Je rencontre encore un petit soucis que je ne comprends pas du tout.

Il y a 2 raisons pour le souci :

1) Comme Roger l'a précisé, il faut rédiger la formule F en anglais, comme je l'avais fait :

Code:
F = "=OFFSET('Personnel'!$D$1,,MATCH('Personnel'!$A$3,'Personnel'!$D$1:$HE$1,0)-1,50,18)"

Noter qu'il n'est pas nécessaire d'utiliser la notation R1C1 pour les références.

2) Surtout, dans le fichier Exemple.xls du FIL QUE VOUS CITEZ, il y avait en A1 une formule volatile grâce à la fonction AUJOURDHUI().

De ce fait la feuille était toujours recalculée et la macro Worksheet_Calculate s'exécutait.

Ce n'est pas le cas avec votre fichier Zone d'impression.xls

Voyez donc le fichier joint avec en A1 la formule volatile :

Code:
=ENT(MOD(ENT((AUJOURDHUI()-2)/7)+0,6;52+5/28))+1

A+
 

Pièces jointes

  • Zone d'impression(1).zip
    42 KB · Affichages: 31

job75

XLDnaute Barbatruc
Re : Zone d'impression paramètrable

Re Jean-Marie,

Normalement on pourrait penser que la formule en français convienne en utilisant RefersToLocal.

Mais j'ai testé en exécutant dans le code de la feuille :

Code:
F = "=DECALER('Personnel'!$D$1;;EQUIV('Personnel'!$A$3;'Personnel'!$D$1:$HE$1;0)-1;50;18)"
Me.Names.Add Name:="Zone_d_impression", RefersToLocal:=F

Le nom n'est pas créé, erreur sur la 2ème ligne "La formule que vous avez tapée contient une erreur".

Par contre, si l'on crée manuellement le nom avec la même formule, ce code la renvoie correctement :

Code:
MsgBox Me.Names("Zone_d_impression").RefersToLocal

Allez savoir pourquoi

Nota : on pourrait utiliser le nom Print_Area à la place de Zone_d_Impression.

C'est même préférable si l'on veut utiliser la macro avec une version anglaise d'Excel.

A+
 

Discussions similaires

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