Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1648 connectés 

 

 

 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  94  95  96  ..  105  106  107  108  109  110
Auteur Sujet :

[Topic Unique] Excel : Keep calm and Pivot Table !

n°3426967
MaybeEijOr​Not
but someone at least
Posté le 13-10-2022 à 18:52:00  profilanswer
 

Reprise du message précédent :

arnuche a écrit :

Hello,
je reviens sur une question que j'avais posée il y a qq semaines concernant un tableau qui montre les périodes où j'ai possédé certaines actions ;
https://forum.hardware.fr/hfr/Windo [...] m#t3424625

 

J'ai trouvé une solution pour faire le graphique en m'inspirant de ce tuto ;
https://www.youtube.com/watch?v=dVq8BW6W9i0

 

En résumé c'est un diagramme de Gantt et pour avoir plusieurs événements espacés sur la même ligne, il suffit de rajouter une colonne qui calcule la durée des intervalles entre les événements et d'effacer ces intervalles du graphique (ou plutôt de les rendre invisibles).

 

Sauf que j'ai testé ça sur une petite liste de dates et que j'ai transposé ça manuellement en tableau pour faire le graphique mais j'aimerais trouver des formules pour automatiser le plus possible ce processus.

 

Ma liste se présente sous cette forme (ordre chronologique toutes opérations confondues) ;
https://i.ibb.co/bd26kJC/excel-actions-liste-b.jpg

 

J'ai fait un tableau en y copiant les dates d'achat et de revente et j'ai rajouté une colonne pour calculer la durée en jours et une pour les intervalles entre vente et rachat, voilà ce que ça donne avec le graphique (clic pour agrandir) ;
https://i.ibb.co/XsWm8Gm/excel-graph-actions-b.jpg
Si je ne les ai pas revendues je mets la date d'aujourd'hui comme date de fin.
Les MIN et MAX au-dessus du graphique sont les 1ère et dernière dates du tableau (au format nombre) qui me servent à déterminer les valeurs min et max de l'axe horizontal du graphique.

 

En réalité ma liste est bien plus longue et pour pouvoir faire des formules incrémentables, je me dis qu'il faudrait peut-être 5 tableaux ;
-1 pour les dates de 1er achat et de rachat si je les ai toutes revendues puis rachetées
-1 pour les dates de vente (mais uniquement quand je les ai toutes vendues, donc quand le solde est à 0 dans la première liste)
-1 pour calculer la durée de possession (simple soustraction entre vente et achat et je fais +1 pour inclure le 1er jour)
-1 pour calculer les intervalles entre les ventes et rachats (et je fais -1 sinon il y a un jour en trop) => rendus invisibles sur le graphique mais qui permettent de placer aux bons endroits les périodes de possession
-1 pour assembler tout ça en intercalant les colonnes dans l'ordre chronologique et qui ressemblerait à celui ci-dessus.

 


En gros je cherche 2 formules ;
-une pour aller chercher la date d'achat qui se trouve à côté de la 1ère apparition du nom d'une action (avec index/equiv c'est pas difficile) mais aussi la date du rachat qui suit la revente totale, donc qui suit le premier 0 associé à cette action (sachant qu'il n'y en a pas toujours puisqu'il y en a que je n'ai jamais revendues ou que j'ai revendues partiellement, dans ce cas je mets la date d'aujourd'hui comme date de fin puisque j'en ai encore).
Je me dis que je pourrais mettre ça dans un tableau (avec uniquement les achats) avec simplement des numéros en en-tête (1, 2, 3 ...) et que la formule utiliserait ce chiffre pour aller chercher le 1er achat, puis le 2ème, puis le 3ème ...

 

-une pour aller chercher la date de revente totale (donc pas les ventes partielles) qui se trouvent à côté des 0 (quand il y en a, sinon ça veut dire que je les ai encore, dans ce cas il faut utiliser la fonction AUJOURDHUI() ).
Là aussi la difficulté vient du fait qu'il peut y avoir un seul 0, plusieurs ou pas du tout.

 

Si vous avez une idée pour ces 2 formules ...  :jap:
Je suppose que ça passe par un mélange de SI et d'index/equiv.
Je précise que j'ai d'abord tenté un TCD mais n'ai trouvé aucun moyen d'obtenir le format dont j'ai besoin sur lequel baser le graphique.


La date de revente totale c'est simplement quand le solde passe à "0", non ? Donc index/equiv aussi ?
Et pour trouver la date du rachat, un sommeprod avec min(date) > date du solde 0, mais si tu passes plusieurs fois par revente totale c'est forcément merdique et je pense qu'il vaut mieux passer en bdd.

Message cité 2 fois
Message édité par MaybeEijOrNot le 13-10-2022 à 18:54:33

---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
mood
Publicité
Posté le 13-10-2022 à 18:52:00  profilanswer
 

n°3426969
arnuche
Posté le 13-10-2022 à 23:13:23  profilanswer
 

Merci d'avoir pris le temps de lire ma tartine  :jap:  
 

MaybeEijOrNot a écrit :

La date de revente totale c'est simplement quand le solde passe à "0", non ? Donc index/equiv aussi ?


Oui, mais il peut y en avoir plusieurs par action donc il faut que la formule puisse s'incrémenter en donnant la liste des dates associées à un 0, et je crois que ça marche avec la formule ci-dessous.
 

MaybeEijOrNot a écrit :

Et pour trouver la date du rachat, un sommeprod avec min(date) > date du solde 0


Je pensais justement à ça mais je ne sais pas très bien comment l'intégrer à la formule que j'ai trouvée (voir plus bas).
 

MaybeEijOrNot a écrit :

mais si tu passes plusieurs fois par revente totale c'est forcément merdique et je pense qu'il vaut mieux passer en bdd.


C'est à dire ?
Pas sûr que ce soit un souci parce que j'ai retrouvé une formule matricielle qu'on avait évoquée il y a quelques semaines permettant de lister tous les montants associés à un vendeur quand ce vendeur est présent plusieurs fois dans une liste et qui marche même si le même montant est présent plusieurs fois pour ce vendeur. Voir la question d'elaraz et ma réponse plus bas sur cette page ;
https://forum.hardware.fr/hfr/Windo [...] m#t3424067
 
Adapté à mon cas présent, ça donne ça (sans distinction de vente ou d'achat, donc pas encore tout à fait au point) ;
https://i.ibb.co/wMS632R/Excel-actions-dates-a.jpg

Code :
  1. =INDEX($B$2:$B$14;PETITE.VALEUR(SI($A$2:$A$14=$A26;LIGNE($B$2:$B$14)-1);$B$25))


A26 n'est pas bloqué pour la ligne mais B25 l'est pour pouvoir l'incrémenter vers le bas, sauf qu'après je dois l'incrémenter vers la droite donc là je fais l'inverse. B25 fait allusion au chiffre 1 pour remplacer LIGNES($1:1) qui est incrémentable verticalement mais pas horizontalement alors j'ai dû ruser.
Les erreurs à partir de A31 c'est parce que j'utilise cette matricielle (à partir de A26) pour avoir une liste sans doublon basée sur la liste de A2 à A14 ;

Code :
  1. =INDEX($A$2:$A$14;EQUIV(0;NB.SI($A$25:A25;$A$2:$A$14);0))


Je pourrais bien sûr rajouter un sierreur ... "".
 
Mais comme tu le vois, les résultats ne sont pas ceux dont j'ai besoin puisque comme tu l'as compris l'achat n°2 doit être celui qui suit le premier 0 (vente totale), donc en C26 je devrais avoir 02-11-2020 et pas 01-11-2020.
 
Pour le tableau des ventes à droite j'ai testé la même formule et qui n'est bien sûr pas adaptée mais j'ai l'impression qu'il doit y avoir moyen de mixer ma formule avec ce que tu proposes.
 
Quand j'aurai les bonnes formules je préparerai un tableau bien plus grand que nécessaire pour ne pas avoir à incrémenter à chaque nouvelle entrée dans la liste de base (avec éventuellement un sierreur ... "" ).
Puis je ferai des liaisons vers un tableau récapitulatif qui me sert pour ma ligne du temps.


Message édité par arnuche le 13-10-2022 à 23:33:41
n°3426974
TARKON
Pas très futé
Posté le 14-10-2022 à 10:08:19  profilanswer
 

MaybeEijOrNot a écrit :

Et si tu fais onglet "Données" et que tu vas sur "Requêtes et connexions" ?

 

0 connexions et requêtes.

 

J'ai une liaison vers un autre fichier, mais il est dispo et liaison OK.

 

Si j'ai 1h à un moment je testerai de copier chaque onglet dans un nouveau fichier pour essayer de voir si un est en cause ou si ça peut remettre droit le tout.


Message édité par TARKON le 14-10-2022 à 10:20:00
n°3426985
arnuche
Posté le 14-10-2022 à 13:56:13  profilanswer
 

MaybeEijOrNot a écrit :

La date de revente totale c'est simplement quand le solde passe à "0", non ? Donc index/equiv aussi ?


Pour le tableau "vente", j'ai pensé à intégrer comme condition que le montant de la colonne E doit être égal à 0 avec la fonction ET mais ça ne marche pas (toujours une matricielle) ;

Code :
  1. =INDEX($B$2:$B$14;PETITE.VALEUR(SI(ET($A$2:$A$14=$A26;E2:E14=0);LIGNE($B$2:$B$14)-1);$H$25))


Pas de message d'erreur mais il affiche 10-01-2017, soit la 1ère date de la colonne au lieu de 01-11-2020, la 1ère date pour laquelle le solde est de 0 (voir la capture 2 messages plus haut).
 
Je rappelle que la formule matricielle qui permet de lister toutes les dates (sans condition) associées au nom d'une société est celle-ci ;

Code :
  1. =INDEX($B$2:$B$14;PETITE.VALEUR(SI($A$2:$A$14=$A$26;LIGNE($B$2:$B$14)-1);H$25))


 
J'ai aussi tenté ça mais alors ça m'affiche la date d'aujourd'hui (au lieu de 01-11-2020) pour la société "Bidule" ;

Code :
  1. =SI(E2:E14=0;INDEX($B$2:$B$14;PETITE.VALEUR(SI($A$2:$A$14=$A26;LIGNE($B$2:$B$14)-1);$H$25));AUJOURDHUI())


 
Ou je dois trouver le moyen d'intégrer EQUIV mais je ne vois pas trop comment, et je dois garder les parties INDEX et PETITE.VALEUR (cette dernière me permet d'égrener une à une les dates que je recherche).


Message édité par arnuche le 14-10-2022 à 14:06:58
n°3426989
MaybeEijOr​Not
but someone at least
Posté le 14-10-2022 à 18:27:14  profilanswer
 

Pour commencer dans l'ordre, je te propose :

Code :
  1. =SOMMEPROD(($A$2:$A$14=$A26)*($E$2:$E$14=0)*PETITE.VALEUR($B$2:$B$14;H$25))


Tu devrais pouvoir récupérer horizontalement les dates des reventes complètes.
 
Est-ce que ça fonctionne bien ? Si oui, il faut quoi maintenant ? (j'ai du mal à suivre)


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°3426996
arnuche
Posté le 14-10-2022 à 18:52:12  profilanswer
 

Non ça ne va pas, il me sort une date en 2134 (que je sauve en matriciel ou pas d'ailleurs) :heink:  
Pour procéder par étapes, il faudrait peut-être déjà trouver une formule qui renvoie bien le 01-11-2020 pour la société "Bidule" et puis trouver le moyen d'intégrer ça dans une formule qui permet d'incrémenter vers la droite pour trouver la date de la 2ème vente complète de la même société (29-03-2021).
Je me demande si SOMMEPROD est bien approprié pour chercher une date.


Message édité par arnuche le 14-10-2022 à 18:52:45
n°3426998
MaybeEijOr​Not
but someone at least
Posté le 14-10-2022 à 19:34:17  profilanswer
 

Peux-tu refiler le fichier avec les bidules machins, parce que chez moi avec des données différentes ça fonctionnait.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°3427000
arnuche
Posté le 14-10-2022 à 19:53:54  profilanswer
 

Voilà ;
https://www.cjoint.com/c/LJorUjbVYOB
Donc je rappelle que je cherche 2 formules ;
-pour les ventes (à partir de H26) : seulement quand le solde est à 0
-pour les achats (à partir de B26) : seulement le premier et ceux qui suivent les ventes totales (donc 02-09-2018 et 04-05-2022 pour "Machin", uniquement 15-12-2018 pour "Tatol" ...).
 ;)

n°3427001
MaybeEijOr​Not
but someone at least
Posté le 14-10-2022 à 22:38:40  profilanswer
 

H26 (formule matricielle) à déployer sur tout ton tableau :

Code :
  1. {=PETITE.VALEUR(($A$2:$A$14=$G26)*($E$2:$E$14=0)*($B$2:$B$14);NBVAL($A$2:$A$14)-NB.SI.ENS($A$2:$A$14;$G26;$E$2:$E$14;"0" )+H$25)}
 

B26 (formule matricielle) à déployer sur la colonne uniquement :

Code :
  1. {=PETITE.VALEUR(($A$2:$A$14=$A26)*($B$2:$B$14);NBVAL($A$2:$A$14)-NB.SI($A$2:$A$14;$A26)+1)}
 

C26 (formule matricielle) à déployer sur le reste du tableau :

Code :
  1. {=PETITE.VALEUR(($A$2:$A$14=$A26)*($B$2:$B$14)*($B$2:$B$14>H26);NBVAL($A$2:$A$14)-NB.SI.ENS($A$2:$A$14;$A26;$B$2:$B$14;">"&H26)+1)}

Message cité 1 fois
Message édité par MaybeEijOrNot le 14-10-2022 à 22:56:39

---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°3427003
arnuche
Posté le 15-10-2022 à 00:37:22  profilanswer
 

Wow, costaud ça, merci beaucoup ! :)  
Je ne pige pas comment tu as pu trouver des formules pareilles, pas évidentes du tout.
 
Maintenant je peux rajouter SIERREUR(...);AUJOURDHUI() dans la colonne revente parce que s'il n'y a pas de revente (ou qu'il y en a mais que j'en ai racheté après) c'est que je l'ai encore donc j'ai besoin de la date d'aujourd'hui pour ma ligne du temps.
Sauf qu'alors je vais avoir plein de dates d'aujourd'hui sur chaque ligne dans mon tableau récapitulatif après la dernière revente, je dois voir si ça pose souci ou pas.
 
edit : ou je m'arrange pour qu'il n'y ait qu'une seule date du jour par ligne avec une formule du genre "si date d'aujourd'hui à gauche, mettre du vide", comme ça la date d'aujourd'hui serait la dernière donnée de la ligne (pour les actions que j'ai encore, pour les autres ce serait la date de dernière vente).

Message cité 1 fois
Message édité par arnuche le 15-10-2022 à 10:43:33
mood
Publicité
Posté le 15-10-2022 à 00:37:22  profilanswer
 

n°3427008
MaybeEijOr​Not
but someone at least
Posté le 15-10-2022 à 10:57:02  profilanswer
 

Je ne sais pas si l'alcool a aidé ou non à trouver ces formules. :lol:

 

Pour expliquer, dans la formule en H26, la première partie de petite.valeur définit une nouvelle matrice :
- si valeur égale à G26 dans la colonne A alors ça vaut 1 sinon 0,
- si valeur égale à 0 dans la colonne E alors ça vaut 1 sinon 0,
- valeur de la colonne B (la date),
- on multiplie ces 3 matrices pour en avoir qu'une seule et on obtient soit la date (1x1xdate) soit 0 (0x1xdate, 1x0xdate, 0x0xdate).

 

On a donc réussit à discriminer nos dates en fonction de deux critères, il ne reste plus qu'à sélectionner une de ces valeurs. On se retrouve avec plein de 0 et quelques dates, quand on prend la première plus petite on récupère donc un 0, la deuxième aussi un 0, seules les plus grandes valeurs sont des dates. Il faut donc éliminer les 0 en comptant le nombre de valeurs ne correspondant pas aux précédents critères. Pour cela je compte le nombre de valeurs qu'il existe avec NBVAL puis je soustrait la nombre de valeurs qui correspondent aux critères (valeur égale à G26 dans la colonne A et valeur égale à 0 dans la colonne E) avec NB.SI.ENS ce qui donne le dernier 0, on ajoute 1 (H25) pour alors tomber sur la première date restante, puis 2 pour la seconde, etc.

 

Pour ton histoire de AUJOURDHUI(), oui je pense qu'en regardant la valeur juste à gauche ça te permet de faire ce que tu veux.


Message édité par MaybeEijOrNot le 15-10-2022 à 12:22:52

---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°3427010
arnuche
Posté le 15-10-2022 à 11:50:41  profilanswer
 

Woaw (c'est pour changer de wow  :D ), vraiment ingénieux !  ;)

n°3427068
nicko
Posté le 17-10-2022 à 13:46:43  profilanswer
 

MaybeEijOrNot a écrit :

Tes devis sont faits sur Excel ?


C'est pas mes devis, c'est des devis qu'on peut faire sur le configurateur de produit de notre fournisseur (surement SAP qui tourne derrière)

n°3427074
arnuche
Posté le 17-10-2022 à 14:11:16  profilanswer
 

arnuche a écrit :

Wow, costaud ça, merci beaucoup ! :)  
Je ne pige pas comment tu as pu trouver des formules pareilles, pas évidentes du tout.
 
Maintenant je peux rajouter SIERREUR(...);AUJOURDHUI() dans la colonne revente parce que s'il n'y a pas de revente (ou qu'il y en a mais que j'en ai racheté après) c'est que je l'ai encore donc j'ai besoin de la date d'aujourd'hui pour ma ligne du temps.
Sauf qu'alors je vais avoir plein de dates d'aujourd'hui sur chaque ligne dans mon tableau récapitulatif après la dernière revente, je dois voir si ça pose souci ou pas.
 
edit : ou je m'arrange pour qu'il n'y ait qu'une seule date du jour par ligne avec une formule du genre "si date d'aujourd'hui à gauche, mettre du vide", comme ça la date d'aujourd'hui serait la dernière donnée de la ligne (pour les actions que j'ai encore, pour les autres ce serait la date de dernière vente).


Pour être complet je donne les formules que j'ai modifiées ;
- d'abord en I26, date de 2è vente (les 14 de la formule de MaybeEijOrNot sont devenus 15 parce que j'ai rajouté une ligne) ;

Code :
  1. =SI(RECHERCHE(2;1/($A$2:$A$15=$G26);$E$2:$E$15)=0;"";SI(H26=AUJOURDHUI();"";SIERREUR(PETITE.VALEUR(($A$2:$A$15=$G26)*($E$2:$E$15=0)*($B$2:$B$15);NBVAL($A$2:$A$15)-NB.SI.ENS($A$2:$A$15;$G26;$E$2:$E$15;"0" )+I$25);AUJOURDHUI())))


à comparer à la 1ère vente en H26 ;

Code :
  1. =SIERREUR(PETITE.VALEUR(($A$2:$A$15=$G26)*($E$2:$E$15=0)*($B$2:$B$15);NBVAL($A$2:$A$15)-NB.SI.ENS($A$2:$A$15;$G26;$E$2:$E$15;"0" )+H$25);AUJOURDHUI())


J'ai donc rajouté 2 choses : si la case précédente contient la date d'aujourd'hui, ne rien mettre, et pareil si le dernier solde pour cette action est de 0 avec la fonction RECHERCHE (parce que sinon il met la date d'aujourd'hui alors que je ne l'ai plus).
 
- puis celle de J26, date de 3è vente et valable pour les suivantes ;

Code :
  1. =SI(I26="";"";SI(RECHERCHE(2;1/($A$2:$A$15=$G26);$E$2:$E$15)=0;"";SI(I26=AUJOURDHUI();"";SIERREUR(PETITE.VALEUR(($A$2:$A$15=$G26)*($E$2:$E$15=0)*($B$2:$B$15);NBVAL($A$2:$A$15)-NB.SI.ENS($A$2:$A$15;$G26;$E$2:$E$15;"0" )+J$25);AUJOURDHUI()))))


Rajout d'une chose : si la case précédente est vide ne rien mettre parce que sinon il remet la date d'aujourd'hui.
 
Et comme ça tous les cas de figure sont prévus.
 
J'ai aussi transformé la 1ère liste en tableau pour que les formules se mettent à jour dans les listes d'achats et de ventes quand je rajoute une ligne et j'ai tout mis sur des feuilles différentes pour bien séparer les achats, les ventes et autres infos dont j'ai besoin pour mon graphique.


Message édité par arnuche le 17-10-2022 à 14:12:35
n°3427077
john_tgv
#LaurentCambon2027 ♥♥♥ (^▽^)/
Posté le 17-10-2022 à 15:06:27  profilanswer
 

Salut les gens, :hello:
J'ai besoin d'aide pour l'immense n00b que je suis. [:fight]  
 
Nous avons des fichiers excel dont certaines cellules contiennent des liens hypertextes (renvoyant vers d'autres fichiers sur le sharepoint de la COGIP). Nous avons parfois besoin de modifier ces cellules pour y rajouter du texte mais sans avoir à suivre le lien (suis-je clair? [:transparency] ).
 
Pour le moment, la seule solution trouvée, c'est d'appuyer sur la touche Alt du clavier tout en effectuant un double click pour modifier le texte sans suivre le lien.
 
On cherche une solution pour automatiser ça à toute une feuille (sans pour autant casser tous les liens, simplement les "désactiver temporairement" ). Est-ce possible? :gratgrat:
 
Merci d'avance pour votre aide. :)
 
[:ignition]


---------------
P'tit tigrou déguisé en Quasi-modo => Prochaine ki toulousaine le 26/4 ! <= "Elton john de sept 1980" dixit zephiel...
n°3427079
arnuche
Posté le 17-10-2022 à 15:17:08  profilanswer
 

john_tgv a écrit :

Nous avons des fichiers excel dont certaines cellules contiennent des liens hypertextes (renvoyant vers d'autres fichiers sur le sharepoint de la COGIP). Nous avons parfois besoin de modifier ces cellules pour y rajouter du texte mais sans avoir à suivre le lien (suis-je clair? [:transparency] ).
 
Pour le moment, la seule solution trouvée, c'est d'appuyer sur la touche Alt du clavier tout en effectuant un double click pour modifier le texte sans suivre le lien.


Tu veux dire modifier l'adresse sans qu'il n'ouvre la page dans le navigateur ? Il suffit de cliquer sans relâcher le bouton de la souris pendant quelques secondes.
 

john_tgv a écrit :

On cherche une solution pour automatiser ça à toute une feuille (sans pour autant casser tous les liens, simplement les "désactiver temporairement" ). Est-ce possible? :gratgrat:


Là je comprends moins ce que tu veux faire, si tu veux les modifier c'est un à un.

n°3427080
john_tgv
#LaurentCambon2027 ♥♥♥ (^▽^)/
Posté le 17-10-2022 à 15:27:17  profilanswer
 

Je savais qu'j'étais pas clair. [:stephan_lapaix]  :o

 

En gros, nos cellules affichent ce genre de truc: Clique ici si tu veux voir mon Q.
Je souhaite trouver une solution permettant de modifier facilement la cellule (pour, par exemple, arriver à ça: Clique ici si tu veux voir mon QI ) mais sans avoir à cliquer longuement sur chaque cellule (ou appuyer sur ALT) pour ne pas activer le lien à chaque fois qu'on veut modifier une des nombreuses cellules dans la feuille (ça peut être fastidieux s'il y a beaucoup de modif à faire).

 

Bref, une fonction/bouton en VBA/ whatever permettant de "désactiver" les liens le temps de modifier les cellules puis un autre truc pour tout remettre d’aplomb.

 

Suis-je clair cette fois-ci? :sweat:


Message édité par john_tgv le 17-10-2022 à 15:28:46

---------------
P'tit tigrou déguisé en Quasi-modo => Prochaine ki toulousaine le 26/4 ! <= "Elton john de sept 1980" dixit zephiel...
n°3427083
arnuche
Posté le 17-10-2022 à 15:38:51  profilanswer
 

Peut-être désactiver les liens hypertexte puis les réactiver quand leur modification est terminée ;
https://support.microsoft.com/fr-fr [...] 8b67ebe3b0

Citation :

Dans Excel 2010 et versions ultérieures :
 
    Sélectionnez toutes les cellules contenant des liens hypertexte, ou appuyez sur Ctrl+A pour les sélectionner toutes.
 
    Cliquez avec le bouton droit, puis cliquez sur Supprimer les liens hypertexte.


Message édité par arnuche le 17-10-2022 à 15:39:33
n°3427086
arnuche
Posté le 17-10-2022 à 15:54:41  profilanswer
 

Je viens de tester, il ne faut même pas faire qqch de spécial pour les réactiver ; dès qu'on en modifie un et qu'on clique sur enter, ça redevient un lien.
Mais on peut désactiver ça complètement dans les options d'Excel, voir les autres paragraphes du tuto que j'ai mis ci-dessus.

n°3427092
john_tgv
#LaurentCambon2027 ♥♥♥ (^▽^)/
Posté le 17-10-2022 à 16:21:28  profilanswer
 

Je viens de voir que le collègue qui a fait ce tableau a en fait créé un lien associé à la cellule et non au texte de celle-ci. Et c'est probablement ça qui empêche de suivre ton conseil. [:tinostar]
Bref, il est parti pour tout recommencer visiblement. Plus de 500 liens à refaire. [:skylvind:8]

Message cité 1 fois
Message édité par john_tgv le 17-10-2022 à 16:21:56

---------------
P'tit tigrou déguisé en Quasi-modo => Prochaine ki toulousaine le 26/4 ! <= "Elton john de sept 1980" dixit zephiel...
n°3427096
arnuche
Posté le 17-10-2022 à 17:00:14  profilanswer
 

john_tgv a écrit :

Je viens de voir que le collègue qui a fait ce tableau a en fait créé un lien associé à la cellule et non au texte de celle-ci.


C'est à dire, ça se présente comment ? Il est où le lien ?

n°3427101
MaybeEijOr​Not
but someone at least
Posté le 17-10-2022 à 18:56:25  profilanswer
 

nicko a écrit :


C'est pas mes devis, c'est des devis qu'on peut faire sur le configurateur de produit de notre fournisseur (surement SAP qui tourne derrière)


Donc c'est ta méthode d'importation des données qui n'est pas bonne.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°3427111
nicko
Posté le 18-10-2022 à 10:23:20  profilanswer
 

MaybeEijOrNot a écrit :


Donc c'est ta méthode d'importation des données qui n'est pas bonne.


Non c'est l'outil qui à la fin me permet d'exporter et me donne un .xls

n°3427117
MaybeEijOr​Not
but someone at least
Posté le 18-10-2022 à 12:51:12  profilanswer
 

Et tu ne peux pas exporter autre chose comme un CSV ?


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°3427137
kmara2
Posté le 18-10-2022 à 20:38:54  profilanswer
 

Salut, il y a possibilité de mettre u filtre top 5 dans un TCD + un filtre > à 0 (si valeur = 0 alors ne pas afficher)
 
Car je joue avec des tcd pour afficher sur un superbe tableau de bord des données de consommations de secteur sauf qu'une colonne de la base de données contient quelques données pour quelques secteurs mais pas tous !  
 
Là tout va bien un beau top 5 :
https://www.hebergeur-image.com/upload/77.159.187.254-634ef26c97cca.PNG
 
Là vu que les données sont toutes à 0 il me ressort toutes les lignes les considérant toutes comme égales donc il affiche des centaines de ligne  :??:  
https://www.hebergeur-image.com/upload/77.159.187.254-634ef2551acb2.PNG
 
Une idée pour fictivement garder un top5 de ligne vide plutôt que toute la liste ? Merci,

Message cité 1 fois
Message édité par kmara2 le 18-10-2022 à 20:41:20

---------------
Dr. Van Helsing: The superstition of yesterday can become the scientific reality of today
n°3427138
Aardpeer
Transmuteur grognon de Bluxte
Posté le 18-10-2022 à 20:42:00  profilanswer
 

tu remets un filtre au niveau global avec tes données ? comme ca tu peux sortir les valeurs =0

n°3427140
kmara2
Posté le 18-10-2022 à 21:00:34  profilanswer
 

Pas compris  [:biiij:1]


---------------
Dr. Van Helsing: The superstition of yesterday can become the scientific reality of today
n°3427144
Aardpeer
Transmuteur grognon de Bluxte
Posté le 18-10-2022 à 21:24:52  profilanswer
 

en haut du tableau croisé dynamique, tu as ce qui est appelé des filtres globaux. Si tu mets tes données dans cette case-là tu peux filtrer sur les valeurs des données.
https://cdn-adclh.nitrocdn.com/zciqOWZgDznkuqFpvIJsLUeyHlJtlHxe/assets/static/source/rev-4fa602f/wp-content/uploads/2016/06/Filter-Data-in-a-Pivot-Table-in-Excel-All-filters.png
Là où c'est indiqué "Report filter"

n°3427145
arnuche
Posté le 18-10-2022 à 21:48:52  profilanswer
 

kmara2 a écrit :

Salut, il y a possibilité de mettre u filtre top 5 dans un TCD + un filtre > à 0 (si valeur = 0 alors ne pas afficher)
 
(...)
Là vu que les données sont toutes à 0 il me ressort toutes les lignes les considérant toutes comme égales donc il affiche des centaines de ligne
 
Une idée pour fictivement garder un top5 de ligne vide plutôt que toute la liste ? Merci,


C'est contradictoire, en haut tu demandes comment ne pas afficher les 0 et en-dessous tu veux un top 5 même si elles sont à 0. :??:  
D'ailleurs, selon quel critère faudrait-il en garder 5 si elles ont toutes la même valeur ?
 
Pour omettre les lignes dont le total est 0, j'en parlais justement récemment ;
https://forum.hardware.fr/hfr/Windo [...] m#t3426351
Sauf qu'il n'en restera aucune si elles sont toutes à 0, d'où ma question sur l'autre critère.

n°3427146
kmara2
Posté le 18-10-2022 à 21:51:00  profilanswer
 

@Aardpeer Bah non je peux juste les sélectionner avec les cases à cocher  :??: et en plus j'en ai besoin dans la partie ligne pour afficher les libellés et les montants en valeur

Message cité 1 fois
Message édité par kmara2 le 18-10-2022 à 21:52:40

---------------
Dr. Van Helsing: The superstition of yesterday can become the scientific reality of today
n°3427163
nicko
Posté le 19-10-2022 à 11:17:26  profilanswer
 

MaybeEijOrNot a écrit :

Et tu ne peux pas exporter autre chose comme un CSV ?


Evidement non, ça me laisse pas le choix ... c'est un outil web basé sur SAP. C'est à prendre ou à laisser (pour rappel c'est un machin mis en place par un fournisseur c'est pas interne à nous, comme ça ils font plus les devis eux, on fait leur boulot)

n°3427174
Aardpeer
Transmuteur grognon de Bluxte
Posté le 19-10-2022 à 12:15:17  profilanswer
 

kmara2 a écrit :

@Aardpeer Bah non je peux juste les sélectionner avec les cases à cocher  :??: et en plus j'en ai besoin dans la partie ligne pour afficher les libellés et les montants en valeur


Je viens de tester et ca fonctionne...
https://rehost.diberie.com/Picture/Get/r/94091
(le TCD à gauche a le filtre global activé, à droite non, les deux sont filtrés en ligne par top 5)
(les valeurs sont pas les mêmes c'est normal :o pour éviter ca il faut d'abord filtrer les lignes puis enlever les 0 au filtre global)

Message cité 1 fois
Message édité par Aardpeer le 19-10-2022 à 12:18:54
n°3427229
john_tgv
#LaurentCambon2027 ♥♥♥ (^▽^)/
Posté le 20-10-2022 à 10:01:11  profilanswer
 

arnuche a écrit :


C'est à dire, ça se présente comment ? Il est où le lien ?


:hello:

 

Je voulais poster une capture d'écran mais le concepteur du fichier l'a supprimé avant remaniement complet.  [:spamatounet]
Je le laisse faire sa sauce et on verra si la seconde version sera plus pratique sur cet aspect.

 

Merci à vous pour votre aide.  [:cerveau charlest]

 

[:ignition]


---------------
P'tit tigrou déguisé en Quasi-modo => Prochaine ki toulousaine le 26/4 ! <= "Elton john de sept 1980" dixit zephiel...
n°3427233
Hegemonie
Posté le 20-10-2022 à 11:56:35  profilanswer
 

Bonjour,

 

J'ai un fichier excel avec une macro qui lit les données d'une autre feuille, les copie dans un onglet "DATA", et remplit un tableau sur l'onglet "extraction" en fonction de quelques critères présents sur cette page.

 

Le souci, c'est que le fait d'avoir cette macro sur cette page m'empêche d'utiliser le copier/coller.

 

Etant sur 365 au boulot, je dois "autoriser" l'usage des macros à chaque fois que j'ouvre le fichier. Si je ne le fais pas, j'ai la possibilité de faire un c/c d'où mon diag concernant la macro qui bloque le c/c.

 

Est ce que c'est une problématique connue, voire voulue?
Est ce qu'il y a un moyen de récupérer cette fonctionnalité?

 

Cas d'usage : création d'un tableau de suivi d'activité de ~1000 lignes avec 20 colonnes.

 

Merci :jap:

 

EDIT : j'ai trouvé et partagé une solution palliative très moche mais qui fonctionne : j'utilise ma macro, j'enregistre, je ferme le fichier, je le rouvre et je n'autorise pas les macros :o


Message édité par Hegemonie le 20-10-2022 à 13:40:52
n°3427235
MaybeEijOr​Not
but someone at least
Posté le 20-10-2022 à 13:52:19  profilanswer
 

Tu peux mettre la macro dans un second classeur que tu ouvres quand tu veux utiliser la macro. Sinon tu ouvres le classeur sans macro. Le classeur avec la macro modifie le classeur sans macro.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°3427239
arnuche
Posté le 20-10-2022 à 16:05:36  profilanswer
 

À propos de macro, j'ai un souci particulier : j'ai trouvé ce code qui permet de mettre à jour la valeur max d'un graphique quand je change le contenu de la cellule H2 ;

Code :
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     ActiveSheet.ChartObjects("Graphique 1" ).Chart.Axes(xlValue).MaximumScale = Range("H2" )
  3. End Sub


Cette variante fonctionne aussi ;

Code :
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If Target.Address = "$H$2" Then
  3.     ActiveSheet.ChartObjects("Graphique 1" ).Chart.Axes(xlValue).MaximumScale = Range("H2" )
  4. End If
  5. End Sub


Sauf que j'ai voulu tester ça avec la fonction =AUJOURDHUI() (c'est pour ma ligne du temps) mais alors il ne se met pas à jour à chaque changement de date alors que le contenu de la cellule a bien changé. :??:  
Apparemment il faut que je tape qqch dans la cellule pour qu'il tienne compte du changement et là le graphique se met bien à jour mais ça ne marche pas si c'est une formule à laquelle je ne touche pas.
 
Une idée pour que le changement de résultat de la formule soit pris en compte sans que je ne doive toucher à la cellule ?
 
edit :
J'ai essayé autre chose : dans le code VBA je fais référence à une cellule (H2) qui elle-même contient =C3+F3, sachant que C3 contient =AUJOURDHUI() et F3 contient 0. Si je remplace 0 par 400 en F3, le total en H2 et le graphique se mettent bien à jour, pourtant la formule en H2 n'a pas changé donc logiquement ça devrait fonctionner aussi avec AUJOURDHUI() directement dans H2  :??:
Je verrai si demain il tient compte du nouveau total.


Message édité par arnuche le 20-10-2022 à 18:03:28
n°3427251
MaybeEijOr​Not
but someone at least
Posté le 20-10-2022 à 19:15:28  profilanswer
 

As-tu essayé un Refresh sur le graphique ?


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°3427256
arnuche
Posté le 20-10-2022 à 19:57:33  profilanswer
 

MaybeEijOrNot a écrit :

As-tu essayé un Refresh sur le graphique ?


Ah non, bonne idée, je dois faire comment pour cumuler les 2 fonctions ?
J'ai testé ça mais il me dit qu'il y a un souci avec le nom de la 2è partie ("nom ambigu détecté : Worksheet_Change" ) ;

Code :
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     ActiveSheet.ChartObjects("Graphique 1" ).Chart.Axes(xlValue).MaximumScale = Range("H2" )
  3.    
  4. End Sub
  5. Private Sub Worksheet_Change(ByVal Target As Range)
  6.     ActiveSheet.ChartObjects("Graphique 1" ).Refresh
  7. End Sub

n°3427258
MaybeEijOr​Not
but someone at least
Posté le 20-10-2022 à 20:05:14  profilanswer
 

Là, ton problème c'est que tu crées deux macros suivant le même évènement, il faut tout mettre dans la même macro.
 
Moi je tenterai plus de jouer sur l'ouverture du fichier puisque la date change lors de l'ouverture uniquement :

Code :
  1. Private Sub Workbook_Open()
  2. Application.ActiveSheet.ChartObjects("Graphique 1" ).Refresh
  3. End Sub


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°3427260
arnuche
Posté le 20-10-2022 à 20:12:57  profilanswer
 

Ok, mais n'oublie pas qu'il me faut aussi la 1ère partie pour signaler que j'ai besoin d'une cellule de référence comme "MaximumScale".
Donc il faut intégrer ceci ;

Code :
  1. ActiveSheet.ChartObjects("Graphique 1" ).Chart.Axes(xlValue).MaximumScale = Range("H2" )


Message édité par arnuche le 20-10-2022 à 20:14:14
n°3427261
MaybeEijOr​Not
but someone at least
Posté le 20-10-2022 à 20:18:33  profilanswer
 

Le but d'utiliser le Refresh c'est de se dire que l'échelle est réglée en automatique et que c'est simplement les données qui ne sont rafraichies, si elles se rafraichissent bien alors l'échelle s'adaptera toute seule.
Penser à reset l'échelle en "automatique".
Et c'est simplement une hypothèse.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  94  95  96  ..  105  106  107  108  109  110

Aller à :
Ajouter une réponse
 

Sujets relatifs
[EXCEL] Faire une mise à jour dynamique de valeur entre champsExcel : rechercher et afficher une liste
[EXCEL] Conversion/multiplication de massequestions sur la téléphonie avec free en 512k
Excel: Comment insérer automatiquement un titre à chaque page ?[excel] largeur de colonne différente
[Excel] (N00B Inside :-/ )Je veux additionner ...2 questions urgentes : Remplacer Photoshop et achat de scanner
changer la police par défaut sous Excel[Excel] Comment faire pivoter une feuille ?
Plus de sujets relatifs à : [Topic Unique] Excel : Keep calm and Pivot Table !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR