Formule "=Si "d'excel

Résolu/Fermé
194849 Messages postés 8 Date d'inscription mardi 10 octobre 2017 Statut Membre Dernière intervention 24 octobre 2017 - 10 oct. 2017 à 20:00
194849 Messages postés 8 Date d'inscription mardi 10 octobre 2017 Statut Membre Dernière intervention 24 octobre 2017 - 18 oct. 2017 à 21:14
Bonjour,
je cherche une solution car j'ai écrit une longue formule avec si, qui marche tant que ma feuille est ouverte mais qui une fois suvegardée et fermée et réouverte est remolacée par "valeur"....existe-t-il une solution?
voici un résumé de la formule :
=SI(A2=1;$O$25;Si(A2=1;$O$26;....jusqu'à Si(A2=27;$O$54,"")))))))...autantque de variantes.
D'avance merci

3 réponses

Bonjour 194849,

Je te propose cette formule :

=SI(ET(A2>=1;A2<=27);DECALER(O24;A2;0);"")

Cordialement
 
1
194849 Messages postés 8 Date d'inscription mardi 10 octobre 2017 Statut Membre Dernière intervention 24 octobre 2017
10 oct. 2017 à 21:11
Bonsoir Paul,
votre formule marche à la perfection !
Je l'ai adaptée pour faire un défilement sur plus de 500 lignes.
par contre lors du tri croissant, il le faisait décroissant, pour le corriger j'ai dû insérer
un"z" à la fin de la formule...je sais que c'est du bricolage car les cellules non remplies
comportent le z (pour permettre au tri croissant de ne pas mettre les cellules vides en tête.
Juste pour comprendre précisément le déroulement de l'action de la fourmule, pouvez-vous détailler les fonctions de chaque ordre ?
Je vous en remercie
Bonne soirée
0
paul > 194849 Messages postés 8 Date d'inscription mardi 10 octobre 2017 Statut Membre Dernière intervention 24 octobre 2017
Modifié le 10 oct. 2017 à 21:56
 
⚠  La formule n'a rien à voir avec un tri ; la fonction DECALER() retourne la valeur
d'une cellule avec un décalage par rapport à la référence (ici O24) ; regarde l'aide
Excel pour plus de détails ; juste pour info : l'équivalent VBA est .Offset()

Pour ton problème de tri, il n'y a pas assez d'infos pour te répondre ; sauf si
tu réussis à le faire par toi-même, il faudrait que tu expliques précisément
ce que tu veux faire en indiquant bien la plage des données à trier.

Si tu as utilisé la formule pour retourner des valeurs que tu veux ensuite trier,
il est probable que le plus simple serait, avant le tri, de convertir en données
les cellules en question => les formules seront remplacées par les valeurs ;
pour faire cela : sélectionne les données à convertir ; Ctrl c => copier ;
Alt L v v => Coller des valeurs (raccourci clavier Excel 2007).

Si besoin, joins un fichier sans données confidentielles sur mon-partage.fr
 
0
paul > paul
11 oct. 2017 à 11:10
Ajout : selon ce que tu veux faire exactement, il sera peut-être préférable
ou même nécessaire de faire une macro VBA.
0
194849 Messages postés 8 Date d'inscription mardi 10 octobre 2017 Statut Membre Dernière intervention 24 octobre 2017 > paul
11 oct. 2017 à 16:22
Merci Paul,
je me suis mal exprimé.
j'ai écris une macro pour faire différents tris dans un ordre établi.
La formule est reproduite dans la même colonne sur 500 cellules avec des valeurs différenciées.
La formule m'aide à remplir une plage de donnée évitant les répétitions. (éditeurs, genres, auteurs, hommes où femmes, lieu de rangement (salon, bureau, chambre, etc.) J'ai plusieurs colonnes comportant un code qui correspond à une liste de noms hors plage de données,1, 2, 3,.....500 pour tout ce qui peut-être répétitif.
Après avoir entré plusieurs plusieurs lignes dans ma base de données avec la formule,
j'ai besoin de faire plusieurs tris avec ma macro, par éditeurs, genres, etc., et le tri de la colonne où trouve la formule me renvoie les données en fin de colonne, il prend les colonnes vides en premier. C'est pouquoi j'ai dû remplacer le dernier argument de la formule ;"" par ;"z" ce qui fait que toute les cellules non remplies obtiennent un z me permettant d'avoir un tri croissant normal.
Je sais que je pourrais ignorer les cellules vides avant le tri, mais lorsque je veux imprimer le résultat je n'ai plus une mise en page satisfaisante.
Comment puis-je vous envoyer une image de l'écran ?
je vous suis reconnaissant pour le temps et le soin que vous consacrer à mon problème.
je fais cela en amateur et avec plaisir (je suis retraité) pour lister quelque 400 livres.
La formule dans son état correspond tout à fait à mes besoins, je vous remercie encore, c'est pour le goût de la perfection que j'insiste...un peu.
Merci mille fois.
194849
0
paul > 194849 Messages postés 8 Date d'inscription mardi 10 octobre 2017 Statut Membre Dernière intervention 24 octobre 2017
12 oct. 2017 à 02:12
 
Bonjour 194849,

J'ai bien lu ton texte, et voici ce que j'en ai tiré :

-----------------------------------------------------

Tu veux faire un tri croissant, qui devra tenir compte des cellules vides.

-----------------------------------------------------

... pour remplir une plage de données en évitant les répétitions

Un tri n'évitera pas les doublons mais permettra de les repérer plus facilement ;
s'il y a des doublons à éviter, tu peux utiliser : onglet Données, groupe Outils de
données, Supprimer les doublons ; ça marche sur une même colonne ou sur
une colonne hors tableau (à toi de choisir ce que tu préfères).

-----------------------------------------------------

J'ai besoin de faire plusieurs tris avec ma macro, par éditeurs, genres, etc...

Différents tris :
    - sur une même colonne qui peut varier : C à J ? autre ?
    - à partir de quelle ligne ? 5 ? autre ?

-----------------------------------------------------

Le tri de la colonne où se trouve la formule me renvoie les données en fin de colonne.

Il prend les colonnes vides en premier => j'ai dû remplacer le dernier argument de la
formule ;"" par ;"z" ce qui fait que toute les cellules non remplies ont un z qui permet
d'avoir un tri croissant normal.


Ne le fais pas encore, mais je pense qu'il vaudra mieux remettre la formule telle qu'elle était avant, donc avec ;"" en dernier paramètre ; le tri ne sera pas appliqué sur toutes les lignes du tableau (utilisées ou non), mais seulement sur les lignes utilisées du tableau (donc pas sur les lignes vides).

-----------------------------------------------------

Je sais que je pourrais ignorer les cellules vides avant le tri, mais lorsque je veux imprimer
le résultat je n'ai plus une mise en page satisfaisante.


J'espère que ce problème sera réglé avec l'utilisation de la méthode ci-dessus.

-----------------------------------------------------

J'ai plusieurs colonnes comportant un code de 1 à 500.

Ne serait-ce pas plutôt une colonne qui contient un code de 1 à 500,
cela pour plusieurs lignes ? difficile de voir sans ton fichier !  :(

-----------------------------------------------------

Après avoir entré plusieurs lignes dans ma base de données avec la formule...

Tu as donc une macro (pas une formule) qui permet d'ajouter une ligne dans ta
base de données ; est-ce la même macro que celle qui fait le tri ou une autre ?

==============================

Tu as proposé d'envoyer une image écran, mais ce ne sera pas suffisant =>
il vaut bien mieux que tu envoies ton fichier sans donnés confidentielles
sur mon-partage.fr ; tu devras copier / coller le lien de téléchargement
dans ton prochain post.

Cordialement
 
0
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
Modifié le 10 oct. 2017 à 20:10
Bonjour

Essaies ceci (en supposant que dans A2 tu as un entier de 1 à 30)
=INDEX($O$25:$O$54;$A$2)

Cdlmnt
0
fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 59
10 oct. 2017 à 20:10
Bonsoir,

il y a déjà une erreur dans ton exemple :
=SI(A2=1;$O$25;Si(A2=1;$O$26;
On pourra surement répondre avec un fichier en support
1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier (15 Mo maxi)
3) Tu défiles vers le bas pour cliquer sur le bouton bleu [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien en gras ; tu fais un clic-droit dessus et tu choisis "Copier le lien"
5) Tu reviens dans ta discussion sur CCM, et dans ton message tu fais "Coller".
=>Voir la fiche https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers
0