Re: Trier et appliquer une condition | ||
---|---|---|
Inscription: 23/05/2008
De La Varenne Saint-Hilaire
Messages:
356
Système d'exploitation: PC Version Excel utilisée: 2010 |
Posté le : 05-12-2009 18h12
re :)
Voici une autre version avec plus de gagnants possibles. Pour les formules utilisées: . Les zones nommées "Nom" et "Resultat" utilisent les fonctions DECALER() et NBVAL() afin de les rendre dynamiques, l'article "Nommer une plage dynamique" et le fichier qui l'accompagne ICI fournissent des explications et exemples d'utilisation qui je l'espère pourront t'aider à les comprendre facilement. . Dans la cellule I2 et tirée vers le bas, la formule qui permet d'avoir le classement: =SI(NBVAL(E:E)();"";GRANDE.VALEUR(Resultat;LIGNES(I$2:I2))) En la décomposant:
- La fonction LIGNE() indique le numéro de la ligne de référence, sur la ligne 2 =LIGNE() renvoie 2, sur la ligne 25 =LIGNE() renvoie 25. - La fonction LIGNES() permet d'avoir le nombre de lignes de la zone en référence. LIGNES(I$2:I2) renverra 1 car il il a une seule ligne dans cette plage. En tirant la formule vers le bas, LIGNES(I$2:I2) devient LIGNES(I$2:I3) puis LIGNES(I$2:I4) etc, le nombre de ligne augment de 1 à chaque fois, cette partie de la formule renvoie donc 1 puis 2 puis 3 etc ... - NBVAL(E:E) indique le nombre de cellules non vides dans la colonne E - Le test du début de la formule: =SI(NBVAL(E:E)();""; etc ...) permet de savoir si le nombre de lignes dans le tableau de gauche est inférieur ou pas à la ligne où se trouve la formule. Ainsi, si nous sommes sur la 15ème ligne alors qu'il n'y a que 12 participants, on renverra un vide (noté par deux guillemets l'un à coté de l'autre) et on évitera que la formule renvoie #NOMBRE!
Dans le cas contraire, on effectue la calul suivant: =GRANDE.VALEUR(Resultat;LIGNES(I$2:I2)) - La fonction GRANDE.VALEUR() permet d'obtenir la x-ième plus grande valeur située dans la plage nommée Resultat.
. En cellule H2 tirée vers le bas, cette formule permet de récupérer le nom de la personne ayant obtenu le score indiqué en colonne I:x est calculé grace à la formule LIGNES() vue ci-dessus, la première fois on a donc la premère plus grande valeur de la zone "Résultat", sur la ligne du dessous la 2ème plus grande valeur, etc... =SI(I2="";"";INDEX(Nom;EQUIV(I2;Resultat;0);)) . La troisième formule en F3 tirée vers le bas utilise également les fonctions EQUIV() et INDEX(): =SI(ESTNA(EQUIV(A2;$H$2:$H$21;0));"";INDEX($J$2:$J$21;EQUIV(A2;$H$2:$H$21;0);)) simplement, en début de formule, le test permet de renvoyer un vide si la personne recherchée ne fait pas partie de la zone des 20 premiers. Soit la personne existe dans cette liste et la fonction EQUIV() renverra le numéro de la ligne correspondante, soit elle n'existe pas et la fonction renvoie #NA. La fonction ESTNA renvoie VRAI si le résultat de la fonction EQUIV() est #NA, et renvoie FAUX dans le cas contraire. SI le résultat est VRAI, pour éviter d'avoir de vilains #NA dans la colonne, on met un vide, si non on fait le calcul. Voilà Michel, j'espère que ces commentaires pourront t'aider pour ton fichier et te souhaite une bonne soirée, à bientôt, mth |
|
|
Re: Trier et appliquer une condition | ||
---|---|---|
Inscription: 23/05/2008
De La Varenne Saint-Hilaire
Messages:
356
Système d'exploitation: PC Version Excel utilisée: 2010 |
Posté le : 05-12-2009 16h31
Bonjour mishka, le forum,
Ce n'est malheureusement pas du VBA comme tu semblais le souhaiter dans ton fichier, mais au cas où cela puisse t'aider quand même voici ci-joint un petit essai par formules permettant je crois de répondre à ta question. A bientôt, mth |
|
|
Re: Plusieurs entrées dans la même cellule ? | ||
---|---|---|
Inscription: 23/05/2008
De La Varenne Saint-Hilaire
Messages:
356
Système d'exploitation: PC Version Excel utilisée: 2010 |
Posté le : 22-11-2009 18h25
re,
A mon avis le plus simple et le plus rapide est de prévoir 3 colonnes pour saisir tes 3 montants, puis de mettre une formule permettant d'avoir directement le total des trois. Je te joins un essai en ce sens. Bien codialement, mth |
|
|
Re: Plusieurs entrées dans la même cellule ? | ||
---|---|---|
Inscription: 23/05/2008
De La Varenne Saint-Hilaire
Messages:
356
Système d'exploitation: PC Version Excel utilisée: 2010 |
Posté le : 22-11-2009 17h37
Bonjour kotoba
Si par exemple ta rente est de 719.41, ta CSG de 45 et ta CRDS de 4, tu sélectionnes ta cellule H3, puis tu commences à saisir un signe = (égal) pour indiquer à excel que ce n'est pas un simple texte que tu saisis mais une formule de calcul. Tu saisis ensuite 719.41 puis le signe + pour faire une addition, puis ton chiffre 45, puis + et enfin 4. Tu auras donc la formule suivante dans ta cellule: =719.41+45+4 Tu indiques à Excel que ta saisie est terminée en tapant sur la touche "Enter", et tu verras le résultat de ton calcul s'afficher dans ta cellule (soit ici 768.41) Je te mets l'exemple en fichier joint, est-ce bien de cela dont tu as besoin? Bonne soirée, mth |
|
|
Re: Afficher/Maquer des colonnes | ||
---|---|---|
Inscription: 23/05/2008
De La Varenne Saint-Hilaire
Messages:
356
Système d'exploitation: PC Version Excel utilisée: 2010 |
Posté le : 21-11-2009 16h26
Bonjour lours,
Ne serait-il pas plus simple de modifier le tableau du dessous pour que les colonnes à masquer ou à afficher correspondent aux colonnes du dessus comme en pièce jointe ? Bon après-midi, mth Edit de 16hh40: je viens de remettre le bon fichier ZIP, je m'étais trompée de fichier |
|
|
Re: recopier une ligne | ||
---|---|---|
Inscription: 23/05/2008
De La Varenne Saint-Hilaire
Messages:
356
Système d'exploitation: PC Version Excel utilisée: 2010 |
Posté le : 15-11-2009 21h23
re,
un petit dernier pour finir la soirée, avec une insertion d'une ligne en haut du tableau. Bonne soirée à tous, mth |
|
|
Re: recopier une ligne | ||
---|---|---|
Inscription: 23/05/2008
De La Varenne Saint-Hilaire
Messages:
356
Système d'exploitation: PC Version Excel utilisée: 2010 |
Posté le : 15-11-2009 18h07
re,
Dan, si cela peut t'être utile, voici un lien vers le site de Microsoft présentant le pack de conversion. Une fois installé il permet d'ouvrir les fichiers 2007 avec les versions antérieures, ce qui rend bien des services. Claude40, comme tu ne précises pas si tu veux insérer ta ligne à chaque tableau, ou une seule fois, ou autre, voici un petit aménagement qui permet d'insérer deux lignes après chaque petit tableau, au cas où. Comme je l'ai dit tout à l'heure, insérer une seule ligne à chaque fois oblige à trouver un autre test car Target.Row Mod 2 = 0 ne fonctionnera plus. Private Sub Worksheet_Change(ByVal Target As Range) 'code pour copie de ligne a revoir Pour ma part je fais une pause, le temps que tu réfléchisses bien à ce que tu veux obtenir, parce là effectivement ça devient un peu brouillon et nous perdons du temps à faire et refaire. Prends le temps nécessaire à bien clarifier tes idées, tu peux aussi essayer de tester tout ça toi même, en modifiant et en voyant le résultat. A bientôt et bonne soirée à tous, mth |
|
|
Re: recopier une ligne | ||
---|---|---|
Inscription: 23/05/2008
De La Varenne Saint-Hilaire
Messages:
356
Système d'exploitation: PC Version Excel utilisée: 2010 |
Posté le : 15-11-2009 15h05
re,
Un essai avec ce code à la place du code de tout à l'heure (j'ai modifié la ligne en rouge): Private Sub Worksheet_Change(ByVal Target As Range) 'code pour copie de ligne a revoir Dans ton fichier tu demandes si tu peux rajouter une ligne au dessus du tableau, tu veux dire entre le jaune et le bleu? ou à chaque insertion? ou en entête? A priori une ligne non, car ça va décaler les lignes paires et impaires, mais deux lignes sans doute oui, le tout est de savoir où, peux-tu préciser? Cordialement, mth |
|
|
Re: recopier une ligne | ||
---|---|---|
Inscription: 23/05/2008
De La Varenne Saint-Hilaire
Messages:
356
Système d'exploitation: PC Version Excel utilisée: 2010 |
Posté le : 15-11-2009 10h55
bonjour claude40,
On peut certainement l'écrire plus élégamment mais ce code fonctionne chez moi, je te laisse l'essayer à la place du précédent et nous dire: Private Sub Worksheet_Change(ByVal Target As Range) 'code pour copie de ligne a revoir Bonne journée, mth |
|
|
Re: recopier une ligne | ||
---|---|---|
Inscription: 23/05/2008
De La Varenne Saint-Hilaire
Messages:
356
Système d'exploitation: PC Version Excel utilisée: 2010 |
Posté le : 14-11-2009 22h10
re, Private Sub Worksheet_Change(ByVal Target As Range) 'code pour copie de ligne a revoir
Edité par Mth le 15/11/2009 10:57:40
|
|
|