Renvoie à la ligne d'une formule

Bonjour,

Je dois faire contrôler les formules de mon fichier exel, je dois donc imprimer les données, et imprimer les formules associés.

Mon tableau dispose de nombreuse colonne, mais en nombre de ligne reste raisonnable, je peux donc facilement augmenter la hauteur de la cellule contenant la formule, mais cela ne sers à rien car je ne parviens pas à renvoyer la formule à la ligne, j'ai essayé de nombreuse façons sans succès. Je précise que j'ai besoin que ce tableau figure sur une seule feuille. Je suis dans l'impasse, soit j'imprime mon fichier en A4 est c'est illisible, soit en A3 et c'est quand même à peine lisible et surtout assez ridicule et problématique pour l'archivage et pour la planète.

Je joins un fichier d'exemple.

Si quelqu'un a une solution, notre service support informatique n'a pas trouvé de réponses, je commence à douter que cela soit possible, alors je tente sur un forum.

Merci infiniment pour votre aide, et la planète vous remerciera aussi si vous trouvé une solution.

Très bonne journée à tous.

Julie

9classeur3.xlsx (9.78 Ko)

Bonjour,

1) Pourquoi exclues-tu une valeur (6e ligne) du calcul de la moyenne ? On n'en voit pas la raison ! (Une formule plus courte réduirait tes largeurs de colonnes).

2) Tu peux mettre tes formules en commentaires.

3) Tu peux les reproduire sous forme texte sur une autre ligne, elles s'adapteront alors à la largeur des colonnes.

Cordialement.

Bonjour, et merci infiniment pour cette réponse rapide, mais il y a un mais....

1) J'ai exclue cette valeurs, car je dois l'exclure, et la formule dois justement montrer qu'elle n'est pas prise en compte dans le calcul, j'ai omis de le préciser...j'ai effectivement pas ce soucis lorsque je peux prendre l'intégralité des données dans d'autres fichiers, cela raccourcie la formule.

2) Je suis novice, mettre les formules en commentaires? Comment?

3) Les reproduire tous forme texte?, j'ai beaucoup de fichiers à faire, il faut que je copie le texte sans le "="?, ceci ne sera pas recevable, il faut que la formule soit exacte, intégrale, ou alors ajouter des termes qui ne modifie pas le résultats, c'est à dire que si je supprime "afficher la formule" je retombe sur mon résultat, sinon ce n'est pas recevable dans mon cas...

1) Ceci :

=MOYENNE(B2:B5;B7:B11)

serait alors déjà plus court.

Mais inconvénient de l'affichage formule, on ne voit plus le résultat. Les autres méthodes permettent de montrer d'un côté le résultat et de l'autre la formule.

2) On insère un commentaire, on y colle la formule, on rend le commentaire toujours visible et on le positionne judicieusement...

Un peu fastidieux, mais c'est globalement ton opération qui l'est...

3) On transforme la formule en texte en plaçant une apostrophe avant le = (apostrophe qui restera invisible).

Ce qui reste sans doute plus rapide à réaliser...

Bonjour à tous,

une idée.

Travailler sur une copie. Jai eu la flemme de faire une partie restauration alors que tu peux avoir l'original sous le coude.

La largeur l des colonnes demandées est en nombre de caractères de largeur du "0". Tu en auras plus ou moins selon les cas.

Sub test()
    affFormule Sheets("Feuil1"), 15
End Sub

Sub affFormule(sh As Worksheet, l As Long)
    Dim pl As Range
    Set pl = sh.Cells.SpecialCells(xlCellTypeFormulas)
    If pl Is Nothing Then Exit Sub
    With pl
        .HorizontalAlignment = xlGeneral
        .VerticalAlignment = xlBottom
        .WrapText = True
        .NumberFormat = "@"
        .Value = .FormulaLocal
        .EntireColumn.ColumnWidth = l
    End With
End Sub

eric

5classeur3.xlsm (19.40 Ko)

Bonjour,

Pour transformer une formule en texte, on peut aussi utiliser

=FORMULETEXTE( ),

Plus rapide que l'apostrophe.

@+

Bonjour,

Pour transformer une formule en texte, on peut aussi utiliser

=FORMULETEXTE( ),

Plus rapide que l'apostrophe.

@+

A partir de quelle version ? Je ne l'ai pas dans 2010...

Bonjour MFerrand,

Je suis avec Office Pro Plus 2013.

@+

Je dois faire contrôler les formules de mon fichier exel, je dois donc imprimer les données, et imprimer les formules associés.

bonjour à tous

Julie, pour contrôler un fichier Excel, on fournit le fichier Excel et non des impressions papier ou pdf qui pourraient cacher des choses (zones d'impression erronées...)

et surtout, le contrôleur sera incapable sur un papier de "suivre" le raisonnement de l'enchaînement des formules, alors qu'Excel dispose d'outils de vérifications

et aussi comment peut-il voir la structure d'un Tableau, d'un TCD, les données d'un graphique.

Bonjour MFerrand,

Je suis avec Office Pro Plus 2013.

@+

Dommage, j'ai exel 2010, ça aurait été la solution la plus simple...

Je dois faire contrôler les formules de mon fichier exel, je dois donc imprimer les données, et imprimer les formules associés.

bonjour à tous

Julie, pour contrôler un fichier Excel, on fournit le fichier Excel et non des impressions papier ou pdf qui pourraient cacher des choses (zones d'impression erronées...)

et surtout, le contrôleur sera incapable sur un papier de "suivre" le raisonnement de l'enchaînement des formules, alors qu'Excel dispose d'outils de vérifications

et aussi comment peut-il voir la structure d'un Tableau, d'un TCD, les données d'un graphique.

Merci, j'en parlerais à ma hiérarchie, pour le moment nous n'avons pas d'archives électronique, et nous devons donc archiver sur papier.

Nous utilisons des formules simples, avec pas mal de données mais sans graphique associés, donc ce n'est pas gênant.

1) Ceci :

=MOYENNE(B2:B5;B7:B11)

serait alors déjà plus court.

Mais inconvénient de l'affichage formule, on ne voit plus le résultat. Les autres méthodes permettent de montrer d'un côté le résultat et de l'autre la formule.

2) On insère un commentaire, on y colle la formule, on rend le commentaire toujours visible et on le positionne judicieusement...

Un peu fastidieux, mais c'est globalement ton opération qui l'est...

3) On transforme la formule en texte en plaçant une apostrophe avant le = (apostrophe qui restera invisible).

Ce qui reste sans doute plus rapide à réaliser...

La solution 1 me parait la mieux pour le moment, les solutions 2 et 3 me paraissent chronophage.

Merci!

Bonjour à tous,

une idée.

Travailler sur une copie. Jai eu la flemme de faire une partie restauration alors que tu peux avoir l'original sous le coude.

La largeur l des colonnes demandées est en nombre de caractères de largeur du "0". Tu en auras plus ou moins selon les cas.

Sub test()
    affFormule Sheets("Feuil1"), 15
End Sub

Sub affFormule(sh As Worksheet, l As Long)
    Dim pl As Range
    Set pl = sh.Cells.SpecialCells(xlCellTypeFormulas)
    If pl Is Nothing Then Exit Sub
    With pl
        .HorizontalAlignment = xlGeneral
        .VerticalAlignment = xlBottom
        .WrapText = True
        .NumberFormat = "@"
        .Value = .FormulaLocal
        .EntireColumn.ColumnWidth = l
    End With
End Sub

eric

Formidable, le fichier correspond exactement à ce que j'ai besoin, par contre, j'ai rien compris à sa mise en place...

Est que vous pourriez être plus explicite?

Il s'agit d'une macro en vba.

tu fais Alt+F11 pour ouvrir l'éditeur VBE.

Dans le projet de ton classeur à gauche tu fais un clic-droit et 'Insertion / Module'.

Dans ce module tu copie-colles le code (comme du simple texte)

Comme tu sembles ne pas connaitre, remplace test() par :

Sub test()
    Dim l As Long
    l = Application.InputBox("Cette macro mettra le texte des formules" & vbLf & "Largeur des colonnes ?", "Largeur", 20, , , , , 1)
    If l > 0 Then affFormule ActiveSheet, 1
End Sub

Elle traitera la feuille active après t'avoir demandé la largeur des colonnes si tu n'as pas fais Annuler.

eric

nous n'avons pas d'archives électronique, et nous devons donc archiver sur papier.

ah ben, comment deviner un truc pareil en 2018 ?

quoi que... c'est encore en vigueur dans certains secteurs "sensibles", c'est à dire à fort risque de piratage.

Ce me rappelle le passage à l'an 2000 et son fameux bug.

Chez nous, les consignes nationales pour le plan de secours étaient d'imprimer sur listing les données d'un fichier. Au bas mot plusieurs milliers de pages...

Je me serais bien vu tout ressaisir à la main en cas de pépin.

Je me suis contenté d'imprimer dans un fichier texte avec copie disquette les données du serveur.

C'était du lourd la cellule de crise montée pour l'occasion. Je me demande au bout de combien de réunions ils sont arrivés à trouver ce plan d'attaque imparable

Il s'agit d'une macro en vba.

tu fais Alt+F11 pour ouvrir l'éditeur VBE.

Dans le projet de ton classeur à gauche tu fais un clic-droit et 'Insertion / Module'.

Dans ce module tu copie-colles le code (comme du simple texte)

Comme tu sembles ne pas connaitre, remplace test() par :

Sub test()
    Dim l As Long
    l = Application.InputBox("Cette macro mettra le texte des formules" & vbLf & "Largeur des colonnes ?", "Largeur", 20, , , , , 1)
    If l > 0 Then affFormule ActiveSheet, 1
End Sub

Elle traitera la feuille active après t'avoir demandé la largeur des colonnes si tu n'as pas fais Annuler.

eric

Merci, je suis cependant trop novice, pour ne pas dire autre chose, pour y parvenir...le module ne semble pas vouloir s'appliquer dans la feuille...et d'ailleurs une fois crée, le texte copié, il faut faire quoi pour que ce soit appliqué? le monde parallèle VBA d'exel m'était jusqu'à ce jour totalement inconnu...

Une fois ta feuille activée tu fais Alt+F8 pour choisir la macro à lancer.

Tu peux aussi activer le ruban Développeur.

Clic-droit sur le ruban, Personnaliser le ruban, cocher Développeur dans la liste de droite.

Ca te donne accès à de nouvelles commandes, toutes liées à vba.

Promène-toi dessus pour lire leur rôle.

eric

Une fois ta feuille activée tu fais Alt+F8 pour choisir la macro à lancer.

Tu peux aussi activer le ruban Développeur.

Clic-droit sur le ruban, Personnaliser le ruban, cocher Développeur dans la liste de droite.

Ca te donne accès à de nouvelles commandes, toutes liées à vba.

Promène-toi dessus pour lire leur rôle.

eric

Bonjour eriiic,

Et merci, mon problème est résolu!!

Je trouve ce site et ce forum fantastique!

Merci à tous pour votre participation, et à bientôt, malheureusement, étant toujours novice...je pense que je reviendrai pour un autre sujet si je ne trouve pas sa réponse dans le forum.

Bonne journée à tous!

Une fois ta feuille activée tu fais Alt+F8 pour choisir la macro à lancer.

Tu peux aussi activer le ruban Développeur.

Clic-droit sur le ruban, Personnaliser le ruban, cocher Développeur dans la liste de droite.

Ca te donne accès à de nouvelles commandes, toutes liées à vba.

Promène-toi dessus pour lire leur rôle.

eric

Bonjour eriiic,

Et merci, mon problème est résolu!!

Je trouve ce site et ce forum fantastique!

Merci à tous pour votre participation, et à bientôt, malheureusement, étant toujours novice...je pense que je reviendrai pour un autre sujet si je ne trouve pas sa réponse dans le forum.

Bonne journée à tous!

Bonjour,

En fait je reviens car il demeure un soucis, je ne parviens pas à refaire apparaître le résultat de la formule, j'ai supprimer la macro, demandé l'affichage de formule, et la formule reste en texte...c'est problématique, comment puis je refaire apparaître le résultats de la formule?

Merci.

Rechercher des sujets similaires à "renvoie ligne formule"