> Tous les forums > Forum Bureautique
 incrementer une cellule selon un code d'une plage
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Elieg
  Posté le 25/12/2012 @ 13:25 
Aller en bas de la page 
Petit astucien

Bonjour

plusieurs jours que je cherche sans codes VBA car je manque de connaissance!!! snif !!! ça fait environ une vingtaine d'années que je n'ai pas programmé.

merci pour votre aide

mon problème:

je possède une plage de cellules (I10:I16) qui contiennent des codes (CF, FX, IN, NA, NR, PI, RA)

Ces codes et seulement eux doivent être écrit dans une autre plage E10:E198

Voila pour les entrées.

J'ai besoin si possible sans codes et donc uniquement par formules de faire des statistiques

1) cellules K10 à K16 le nombre de fois qu'apparait chaque code en face du code concerne
2) dans un nouveau cadre nommé statistique (ou un nouveau tableau dans une autre feuille)
- chaque jour le nombre de codes qui ont été rentré
- chaque jour dans une cellule à part le nombre de fois qu'on a rentré un code (n'importe lequel)
3) Enfin avoir un rapport statistique mensuel sous forme de camembert

Si quelqu'un est assez costaud pour me venir en aide ce serait super sympa car là je nage verticalement et j 'en ai un grand besoin (pas de nager mais du fichier)


Publicité
pc-facile13
 Posté le 25/12/2012 à 18:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

Pour la première question (celle qui me semble la plus simple {#}) il faut mettre en K10 la formule =NB.SI(E10:E198;I10) puis tiré vers le bas (jusqu'à la cellule K16).

Pour le reste cela se complique (surtout sans un fichier exemple -> en saisissant manuellement les résultats désirés afin de mieux comprendre) car jusque là il n'y a aucune notion de jour dans les cellules... {#}

{#}

Elieg
 Posté le 25/12/2012 à 19:29 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

MERCI PC FACILE 13

Effectivement, je n avais pas pris la bonne formule, en k10j'avais mis =SOMMEPROD(((CHERCHE("CF";E10:E198))*(I10:I16="CF")))

ce qui me donnait le message d'erreur VALUE!

merci, car le compte est bon

j'ai mis mon fichier exemple sur cjoint: http://cjoint.com/?BLzpyKyTolx

pc-facile13
 Posté le 25/12/2012 à 20:24 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Voici le tableau (en grande partie) complété, mais il me manque une information pour le camembert: que doit-il afficher ? {#}
Le nb de codes par jour ? Ou le nb de tel type de code dans le mois ? Ou... ?

http://cjoint.com/?0Lzuy2opD16

PS: NB.SI.ENS permet de mettre plusieurs critères (en l'occurence la date doit correspondre à I22, I23,... + le code à J21, K21,...), le total est simplement la SOMME de tous les codes du jour.



Modifié par pc-facile13 le 25/12/2012 20:28
Elieg
 Posté le 25/12/2012 à 21:01 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Salut PC FACILE 13

Tu es super, en fait j'ai besoin de connaitre les stats pour le nombre de codes entré

pi 12

ra 2

fx 32

etc....

Et pour la 2ieme partie? les stats journalières? aurais tu une idée?

merci pour ton aide

Elieg
 Posté le 25/12/2012 à 21:37 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

bonjour,

je ne sais pas si c'est possible, est il possible d'imposer dans la plage E8 à E198 seulement les codes FX, RA, ... et d'envoyer un message d'erreur si on donne une mauvaise réponse?

merci pour tout

pc-facile13
 Posté le 25/12/2012 à 23:58 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Et pour la 2ieme partie? les stats journalières? aurais tu une idée?

-> C'est dans cette partie que se trouve les NB.SI.ENS dont je parlais (avec une petite modif (la ligne Somme) qui (pour afficher correctement le graphique) comporte la notion #N/A si la Somme du mois = 0):

-> N'était-ce pas de cela dont tu me parlais ?


est il possible d'imposer dans la plage E8 à E198 seulement les codes FX, RA, ... et d'envoyer un message d'erreur si on donne une mauvaise réponse?

Tout à fait -> J'utilise un liste déroulante -> Sélection d'une ou plusieurs cellule(s) -> Onglet Données -> Validation de Données et encore Validation de Données -> dans le menu Autoriser -> Sélectionner "Liste" (avec option d'afficher une liste déroulante) -> dans Source : la liste des valeurs (qui se trouvent en l'occurence soit entre I10:I16 ou J21:P21) -> dans les onglets Message de saisie et Alerte d'erreur ce que l'on souhaite faire / afficher en cas de saisie ou d'erreur dans ces cellules.

Le fichier à jour:
http://cjoint.com/?0Lzx7DHfPs4



Modifié par pc-facile13 le 25/12/2012 23:59
Elieg
 Posté le 26/12/2012 à 08:02 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour PC FACILE 13

C'est vrai que ton pseudo est bien choisi car tout semble facile quand tu expliques les choses.

Si j'ai bien analysé le fichier, journellement, il nous donne les stats par jour: chaque jour le nombre de fois qu'on a ecrit quelque chose dans code (dans total) et la stat générale chaque jour de ce qui a été fait depuis le début du mois (dans somme)

Merci pour la liste déroulante, je connaissais, mais il me manquait la connaissance de lier cela avec l'option de validation des données. j'utilisais donc que ce qu'il y avait dans la colonne.

juste une question, car je n'ai pas encore analysé tu as fait dépendre le camembert de la colonne E ou de la ligne somme

Autre chose que je n'ai pas compris, de l'utilisation du #N/A, est il obligatoire ou peut on le remplacer par 0 ou par un espace vide en de donnée null dans cette case?

J'ai beaucoup appris avec toi

Merci pour tout

pc-facile13
 Posté le 26/12/2012 à 15:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

C'est vrai que ton pseudo est bien choisi car tout semble facile quand tu expliques les choses

-> C'est très gentil !

Si j'ai bien analysé le fichier, journellement, il nous donne les stats par jour: chaque jour le nombre de fois qu'on a ecrit quelque chose dans code (dans total) et la stat générale chaque jour de ce qui a été fait depuis le début du mois (dans somme)

-> C'est exactement ça, il faut donc mettre à jour les données pour le mois entier -> d'ailleurs pour faire au plus simple et pouvoir tirer pour le mois entier sans devoir ressaisir la formule (ex:=NB.SI.ENS(A10:A198;I22;E10:E198;J21)) mieux vaut donner des "noms" à chaque plage, ainsi tu sélectionnes A10:A198 et à gauche de la barre de formule tu mets (par exemple) _date (je met un _ devant "date" pour différencier le nom de la plage de la fonction Date), après tu fais la même chose pour E10:E198 (que tu nommes par exemple _code) et enfin tu sélectionnes J21 que tu nommes _CF -> ta formule devient alors (en J22) =NB.SI.ENS(_date;I22;_code;_cf) -> tu n'as plus qu'à tirer ta formule jusqu'en bas (J52 pour le mois de janvier) et ainsi de suite pour tous les codes (de K21 à P21 où il faut mettre _FX,_IN,...) pour les colonnes I et Q il suffit de tirer jusqu'à la ligne 52.

tu as fait dépendre le camembert de la colonne E ou de la ligne somme

-> Pour le camembert tu fais un clic droit -> Sélectionner les données -> Dans plage de données du graphique tu sélectionnes de J21 à P21 + (avec la touche Ctrl) la ligne correspondante à la somme (dans ta feuille d'exemple de J25 à P25, mais une fois le tableau terminé, de J52 à P52). Après tu peux jouer sur l'affichage des Etiquettes de données pour faire apparaitre les "noms de catégories" (ce qui correspond à CF, FX,...), et c'est là que ta question:

Autre chose que je n'ai pas compris, de l'utilisation du #N/A, est il obligatoire ou peut on le remplacer par 0 ou par un espace vide en de donnée null dans cette case?

rentre en ligne de compte. En effet tu pourrais laisser 0 (ou "" ou null) à la place de #N/A mais le "souci" dans ce cas-là, c'est que l'étiquette correspondante au code n'ayant jamais été saisi (s'il y en a un) va apparaitre tout en haut, sans "tronçon" de camembert (ce qui est moins esthétique), mais après c'est un choix... La plupart des gens qui ne veulent pas voir apparaitre le #N/A "feinte" en faisant une mise en forme conditionnelle sur les cellules de la somme pour dire -> si une de ces cellules comporte la valeur #N/A alors la couleur du texte sera blanche pour se confondre avec le fond et donc ne pas vraiment être visible. Si besoin je pourrais te l'expliquer plus en détail.

A +



Modifié par pc-facile13 le 26/12/2012 16:08
Publicité
Elieg
 Posté le 30/12/2012 à 19:41 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour

ces derniers temps je n ai pas eu le temps d'approfondir plus mais je reviendrais bientot sur le fichier

car je voudrais l'optimiser avec vos conseils eclairés

merci pour tout

Elieg
 Posté le 08/01/2013 à 11:43 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

bonjour,

Je reviens à la charge avec mon fichier stat, qui a évolué grace aux conseils eclairés de PC-Facile 13.

Je reviens donc avec une évolution,

Mon fichier est dispo à: http://cjoint.com/?CAilIhxu16Q

2 choses que je voudrais si c'est possible, je n'ai pas trouvé:

- dans le camembert, au lieu d'écrire le code, est il possible d'écrire la legende (legende 1, legende 2,...)

- et quand le code ou la date sont vides, il faudrait recopier toute la ligne à la fin du fichier, ici dans mon cas après le 08/01/2013 pour pouvoir garder les stats pecedentes en cas de changement de code

Merci pour tout

pc-facile13
 Posté le 08/01/2013 à 21:48 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir,

Ouaw, il a de la "gueule" votre fichier. {#}

dans le camembert, au lieu d'écrire le code, est il possible d'écrire la legende (legende 1, legende 2,...)

C'est possible, mais pas de manière dynamique (en tout cas pas que je sache), pour ce faire un simple clic droit sur une étiquette -> modifier le texte.

Par contre si ce sont ces étiquettes là qui vous intéresse, pourquoi ne pas faire le camembert à partir de ce tableau au lieu de celui du haut (ce qui donne dans la plage de données graphique: S52:U60, en entrée de légende (à gauche) Série2, et dans l'axe horizontal (à droite) de légende1 à légende9).

et quand le code ou la date sont vides, il faudrait recopier toute la ligne à la fin du fichier, ici dans mon cas après le 08/01/2013 pour pouvoir garder les stats pecedentes en cas de changement de code

Je ne suis pas sûr d'avoir bien compris cette question, pouvez-vous nous mettre un exemple concret de ce que vous désirez en mettant manuellement les informations voulues dans le fichier ?



Modifié par pc-facile13 le 08/01/2013 21:57
Elieg
 Posté le 08/01/2013 à 22:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir

Merci du compliment pc-facile 13, pour la 1ere question, effectivement j'ai cherche et je n'ai pas trouve. l'ideal quand c'est dynamique, c'est de garder le meme fichier avec les meme codes et pouvoir changer la legende.

merci pour l'aide

pc-facile13
 Posté le 08/01/2013 à 22:24 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

l'ideal quand c'est dynamique, c'est de garder le meme fichier avec les meme codes et pouvoir changer la legende

justement, la solution suivante permet de s'adapter non ? :

Par contre si ce sont ces étiquettes là qui vous intéresse, pourquoi ne pas faire le camembert à partir de ce tableau au lieu de celui du haut (ce qui donne dans la plage de données graphique: S52:U60, en entrée de légende (à gauche) Série2, et dans l'axe horizontal (à droite) de légende1 à légende9).

Elieg
 Posté le 08/01/2013 à 22:38 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

pour la 2ieme question, l'ideal est de pouvoir ecrire dynamiquement les colonnes b, c, d,e de la ligne 15 qui a le code ar a la ligne 88, et les colonnes b, c, d, e de la ligne 16 qui a le cde nrp a la ligne 89, etc idem pour tous les codes ar et nrp de la feuille. pour pouvoir garder les stats des lignes 15, 16 ... sans mise a jour des lignes 15, 16, ...car quand on repasse sur ces lignes, le code sera mis a jour et on perdra la stat anterieure

voir le fichier a l adresse: http://cjoint.com/?CAiwM3ullBC

merci pour l aide

Elieg
 Posté le 09/01/2013 à 10:34 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

bonjour

suite à la question précédente,

Si c'est plus simple on pourrait recopier toutes les lignes correspondantes au codes ar et nvr dans une autre feuille puis manuellement, je reinjecterai toutes les lignes dans la feuille d'origine

merci pour tout

pc-facile13
 Posté le 09/01/2013 à 22:06 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir,

pour la 2ieme question, l'ideal est de pouvoir ecrire dynamiquement les colonnes b, c, d,e de la ligne 15 qui a le code ar a la ligne 88,

Comment déterminer qu'il faille écrire l'équivalent de la ligne 15 à la ligne 88, ce n'est pas la première ligne (88) qui ne contient aucune date et/ou aucun code (quel est le critère) ?

idem pour tous les codes ar et nrp de la feuille

Seuls ces codes doivent être pris en comptes dans le report.

Ce qui vourait dire qu'il ne faudrait pas prendre en compte ceci ?:

et quand le code ou la date sont vides, il faudrait recopier toute la ligne à la fin du fichier, ici dans mon cas après le 08/01/2013 pour pouvoir garder les stats pecedentes en cas de changement de code

+

pour pouvoir garder les stats des lignes 15, 16 ... sans mise a jour des lignes 15, 16, ...car quand on repasse sur ces lignes, le code sera mis a jour et on perdra la stat anterieure

Alors là (<- c'est un peu ce qu'il s'est passé dans ma tête quand j'ai lu cette phrase )

En espérant que les premières réponses me permettront de comprendre la dernière phrase.

Publicité
Elieg
 Posté le 09/01/2013 à 22:37 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour

Excuses moi pour le cassement de tete.

je vais essayer d etre plus clair. dans le cas actuel, tu as 87 lignes remplie (laissons tomber celles qui ont la date et le code vides), or certaines lignes doivent etre mises a jour tout en gardant les stats precedentes (celles ayant pour codes ar et nrp).

Si je change le code ar sur la ligne 15, je perd la stat etablie au 07/01 et en recopiant cette ligne a la fin de mon fichier, soit en ligne 88, je profite d'une nouvelle stat au 09/01, soit un traitement de cette ligne sur un nouveau jour avec un nouveau code et donc une statistique etablie au 09/01,un nouveau traitement doit etre fait pour les codes ar et nrp

j'espere avoir ete plus clair et merci de ton aide

pc-facile13
 Posté le 11/01/2013 à 21:41 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir,

Ok, je comprend effectivement mieux, mais j'ai encore des questions :

Si je change le code ar sur la ligne 15, je perd la stat etablie au 07/01

Pourquoi au 7 alors que la ligne 15 concerne le 2/01 ?

et en recopiant cette ligne a la fin de mon fichier, soit en ligne 88, je profite d'une nouvelle stat au 09/01

C'est ce qu'il te faut ou bien cela est un problème ?


Du coup je comprend mieux le texte "tortureur", et me pose encore une question (pour ne pas changer ):

pour la 2ieme question, l'ideal est de pouvoir ecrire dynamiquement les colonnes b, c, d,e de la ligne 15 qui a le code ar a la ligne 88, et les colonnes b, c, d, e de la ligne 16 qui a le cde nrp a la ligne 89, etc idem pour tous les codes ar et nrp de la feuille

Ok, je vois bien pourquoi (en vu de la signification de ces codes), mais comment veux-tu savoir quand / sur quelle ligne copier les lignes AR et NRP ? Il faut les retranscrire une semaine après par exemple ? (Ce qui fait que le code AR du 02/01 doit être retranscris au 09/01 ? Ou est-ce une autre information qui nous permet de le savoir ?)

En complément d'information rien ne t'oblige à mettre les dates dans l'ordre, tu peux remettre 02/01/13 sur la ligne 88 si cela t'arrange.

Elieg
 Posté le 12/01/2013 à 18:20 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour

Il t'auras fait fait cogiter mon fichier n'est ce pas {#}{#}{#}

En fait, reflexion faite, les lignes vides de dates et de codes ne m'interessent pas, juste celles qui ont les codes ar et nrp.

je n'ai pas trouve s il y a un moyen de determiner la derniere ligne du fichier excel, quand je parle de la ligne 88, c est un exemple, ce n est pas forcement celle la car si on recopie toutes les lignes avec les codes ar et nrp, ce peut etre la ligne 100 ou 150, ou 1000... donc le probleme est de savoir si on peux determiner cette derniere ligne et ecrire dessus.

par exemple: si case b vide alors ecrire case b correspondant au 1er code ar ou nrp trouve, sinon laisser tel que????

pour repondre a une tes questions, bien sur qu'il m'est egale que les dates soient dans l'ordre, ce que je veux:

il faut comprendre que j'ai un fichier de 500 lignes par exemple, ce fichier est a l'origine vide de date et de codes et que je remplis au jour le jour. quand je traite la 1ere ligne je met la date et le code correspondant, idem pour la ligne 2, 3 ... D'ailleurs j'ai aussi cherche si on peux au moment du traitement d'une ligne on peux y mettre la date par un "aujourdhui" sans que celle ci soit mise a jour le lendemain par exemple par si a54 et remplie alors ne rien faire, sinon mettre la date du jour

Personnellement je pense que ces 2 choses sont impossible par fonction mais uniquement en base de donnees par un vba

qu'en penses tu?

Merci pour tout



Modifié par Elieg le 12/01/2013 18:35
Elieg
 Posté le 12/01/2013 à 18:22 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

actuellement j'ecris ces ligne sur une autre feuille avec un test sur chaque ligne pui a la main j'enleve les espaces blanc et je fait un copier coller dans ma feuille initiale.

merci pour tout

pc-facile13
 Posté le 13/01/2013 à 16:49 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

Je pense que c'est probablement faisable en VBA, mais il vaudrait certainement mieux recréer un post pour ce type de demande car je sais qu'il y a des pro VBA sur ce forum (ce n'est pas mon language de prédilection {#}) et en plus il m'est arrivé un truc sur lequel il faut que je travaille... Mon blog a été supprimé sans raison... {#}

Publicité
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
GratuitJeu PC Faeria gratuit
Valable jusqu'au 27 Février

Epic Game Store offre actuellement le jeu PC Faeria. Faeria est un jeu de cartes. Construisez des decks incroyables et façonnez le champ de bataille dans des combats épiques. Élevez des montagnes, bâtissez des forêts, remplissez des lacs, ou maîtrisez le sable du désert. Tracez votre propre chemin vers la victoire.


> Voir l'offre
116,60 €SSD WD Blue SN550 1 To (NMVe M.2, 2400 Mo/s) à 116,60 €
Valable jusqu'au 01 Mars

Amazon fait une promotion sur le SSD WD Blue SN550 500 Go (NMVe M.2) qui passe à 116,60 € livré alors qu'on le trouve ailleurs à partir de 155 €. Ce SSD utilise une interface M.2 NVMe PCIe Gen3 x 4 pour une connexion simple et des performances exceptionnelles : jusqu’à 2 400 Mo/s en lecture séquentielle et jusqu’à 1 950 Mo/s en écriture séquentielle. Le SSD est doté de la technologie 3D TLC NAND haute densité offrant une endurance d’écriture durable et assorti d’une garantie de cinq ans.


> Voir l'offre
9,99 €Bloc multiprise parasurtenseur BRENNENSTUHL 8 prises à 9,99 €
Valable jusqu'au 27 Février

Amazon fait une promotion sur le bloc multiprise parasurtenseur BRENNENSTUHL avec 8 prises à orientation interversée qui passe à 9,99 € au lieu de 20 €. Le câble fait 1,4 m.


> Voir l'offre

Sujets relatifs
incrémenter un N° de cellule à chaque ouverture du fichier Excel
une seule lettre dans la cellule dans plage B:F
Condition sur plage de cellule en excel
Faire apparaitre une rangée, selon une cellule
Diviser chaque cellule dans plage cellule par 3
code vba "Range("A1").Select" pour Cellule nommée
incrémenter qu'une partie de ma cellule
Calculer selon le format d'une cellule
Envoi d'une image ou d'une plage de cellule
tarif selon cellule
Plus de sujets relatifs à incrementer une cellule selon un code d''une plage
 > Tous les forums > Forum Bureautique