excel...comment faire ! - VB/VBA/VBS - Programmation
Marsh Posté le 30-07-2009 à 16:02:29
mince ! j'avais préparé une image pour vous montrer mais ca passe pas !
Comment on intègre une image ici ?
Marsh Posté le 30-07-2009 à 16:21:53
En faite, je veux que mes calculs se positionnent dans la colonne K
-> Si la cellule F= rien alors rien dans K (même si elle a un chiffre dans la colonne B) --> pas de calcul
-> Si une cellule de la colonne B = 1 (ex : B3) et que F <>de rien (sur la même ligne)
alors Si B4 > 1
alors K3 = J3
sinon si B4 = rien
alors Tant que les cellules du dessous (B5 , B6 , B7 , etc...)sont = à rien alors on additionne les cellules J correspondante dans la cellule K3 (et normalement on doit obtenir la somme de J3:J7)
sinon K3=J3
J'ai fait cette formule :
=SI(F65="";"";SI(B65<>1;"";SI(B65=1;SI(B66>1;SOMME(J65);SI(B66=1;SOMME(J65);SI(B67=1;SOMME(J65:J66);SI(B68=1;SOMME(J65:J67))))))))
mais elle marche pas si j'ai plus de 1 cellule vide après !
Avez vous compris !?!
C'est plus simple avec mon image mais j'arrive pas a la mettre !
Marsh Posté le 31-07-2009 à 12:41:58
Bonjour
Si tu ne sais pas monter une image sur ImageHacks, envoie moi l'image sur mon mail, il est dans mon profil. Je la partagerai ici, si tu le souhaites...
Je zieute ca des que j'ai la photo ou meme le fichier (Avec le fichier ca sera meme plus simple... En fonction de ce qu'il contient et si tu peux ou pas le transmettre)
PS : Somme(J65) <(---- Je ne vois pas trop a quoi cela sert...
Cordialement
Marsh Posté le 01-08-2009 à 00:40:33
ReplyMarsh Posté le 05-08-2009 à 10:37:48
SuppotDeSaTante a écrit : Tiens, ca avait l'air urgentissime....... |
Salut !
Désolé mais j'ai plein de taf en ce moment et j'ai pas eu le temps de te répondre !
Donc oui j'ai toujours pas la solution ! Je t'envoie le fichier !
Merci pour ton aide
Marsh Posté le 05-08-2009 à 11:13:15
pourrais-tu mettre l'image sur le site indiqué précédemment pour qu'on puisse avoir une illustration du soucis?
Car perso j'ai pas très bien compris ton soucis ^^
Marsh Posté le 05-08-2009 à 16:28:42
Hello
Donc deja l'image (j'ai flouté les noms pour la confidentialité de tes données) :
Ensuite le code :
Code :
|
je n'ai pas fait ce que tu demandes pour les lignes en couleur, j'ai pas tout pigé...
Si tu pouvais expliciter ici...
Merci
Dis moi si ca te va, normalement ca roule, j'ai fait l'essai en direct sur ton fichier
Marsh Posté le 05-08-2009 à 16:55:18
Je vais paraitre un peu bête mais le code je le met dans visual basic ?
Marsh Posté le 05-08-2009 à 17:02:30
ok ! j'ai trouvé comment faire...lol
C'est trop bien ce que tu m'a fait ! exactement ce que je voulais ! merci merci beaucoup ! Merci pour la confidentialité !
Les couleurs je vais m'en charger !
Une petite question : la fonction comment la relier a un bouton car pour mes utilisateur ca sera plus simple de l'utiliser ! merci !
Marsh Posté le 06-08-2009 à 09:43:59
Re
lea133 a écrit : ok ! j'ai trouvé comment faire...lol |
Le but étant aussi que tu comprennes, si tu as des questions sur le code, n'hesites pas.
lea133 a écrit : Les couleurs je vais m'en charger ! |
Ok, a mon avis le mieux c'est de l'integrer directement dans le While ou la ligne juste apres le Wend. Mais ce sont surtout tes conditions que je n'ai pas saisi
lea133 a écrit : Une petite question : la fonction comment la relier a un bouton car pour mes utilisateur ca sera plus simple de l'utiliser ! merci ! |
Tu te créés un Sub qui appelle la fonction, et tu affecte la macro au Bouton. Les boutons ne peuvent appeler que des sub. Ou tu transformes la fonction en Sub.(Attention, il y a un Exit Function, le transformer en Exit Sub)
Tu créés un bouton, soit avec les dessins d'Excel, soit avec la barre d'outils "Boite a outils controle" qui est sur la barre Visual Basic
Une fois le bouton en place sur la feuille, click droit, Affecter à une macro.
Marsh Posté le 06-08-2009 à 10:28:36
J'ai remarqué que ta fonction ne prend pas en compte si l'arrêt ou la maladie dure qu'une ligne ! J'ai donc laissé la formule : =SI(F12="";"";SI(B12=0;"";SI(B12>1;"";SI(B12=1;SI(B13>1;SOMME(J12);SI(B13=1;SOMME(J12);"" )))))) pour que ça prenne en compte !
Sinon, je sais pas comment intégrer le faite que si la cellule G d'une ligne est vide alors il n'y a pas de calcul !
Exemple : Ligne 55 ou 80 etc...
Sinon, pour la couleur, je vais ajouter une mise en forme conditionnelle ! Je sais pas encore si ça va marcher mais j'espère !
Les conditions c'est que :
- Si une personne a un accident de travail ou de trajet (AT ou ATR) alors si le nombre de jour est supérieur à 8 alors mon utilisatrice doit le voir direct...que ce soit par un code couleur ou un message !!! En faite, un accident de travail ou de trajet supérieur à 8 jours entraine une visite médicale à la reprise...c'est pour pas qu'elles oublie !
- Si une personne a une maladie (MAL) alors si le nombre de jour est supérieur à 21 alors mon utilisatrice doit le voir direct...que ce soit par un code couleur ou un message !!! Une maladie supérieur a 21 jours entraine une visite médicale...c'est pareil...pour pas qu'elles oublie !
Il ne faut pas se soucier des autres (mala, map, mp, etc ....)
Tu m'as comprise ?!
Marsh Posté le 06-08-2009 à 11:11:14
Ouaip, compris
Regarde les modifs apportées
Citation : Function lea133() |
Marsh Posté le 06-08-2009 à 11:23:32
Il me met une erreur a la ligne 34 :
Erreur de compilation. Else sans IF
Marsh Posté le 06-08-2009 à 11:26:17
J'ai edité mon post entre temps, re-regarde mon dernier message
Marsh Posté le 06-08-2009 à 11:31:31
Pour ton histoire de la ligne 55 ou 80 je ferais ceci :
J55 : =Si(Ou(G55="";H55="" );"";H55-G55+1)
Comme ca du moment qu'une des dates n'est pas remplie, il ne fait pas le calcul
Marsh Posté le 06-08-2009 à 11:32:12
Ca te va ?
J'ai mis les deux, couleur/gras plus commentaires, comme ca, ca te donne des pistes et te montre d'autres choses.
Marsh Posté le 06-08-2009 à 11:33:45
Alors toujours dans le perfectionnement !
J'y avais pas pensé avant mais...une fois que l'AT ou la MAL est traité comment lui dire de ne pas le ou la re-traiter !
Je t'explique, mon utilisatrice a eu l'avertissement et a pris le rendez-vous chez la médecine du travail pour un employé.
Comment faire pour pas qu'il continu a afficher l'avertissement lorsqu'elle clique sur le bouton ? car a chaque fois qu'elle va cliquer sur le bouton, tout va revenir !
Marsh Posté le 06-08-2009 à 11:34:29
Bah tu le dis a quel moment et où qu'il ne faut plus le traiter ?
Sinon, si tu n'as pas prévu, il 'suffit' d'ajouter une case "Traité" et en fonction on passe ou pas dessus.
Marsh Posté le 06-08-2009 à 11:35:28
Si tu sais pas, t'inquiète pas c'est pas grave !
C'est déjà super ce que tu as fait pour moi...je te remercierai jamais assez pour ça !
Marsh Posté le 06-08-2009 à 11:41:30
Si je leur fait mettre "Traité" dans la cellule K qui rentre dans les conditions d'un RDV chez médecine du travail...comment dire a la fonction que si il y a "Traité", il ne faut pas qu'il refasse le calcul !
Marsh Posté le 06-08-2009 à 11:42:49
J'ai encore édité mon post.
Tu inseres une colonne en L
Tu la nommes Traité
Si tu mets 1 dedans, il ne la traitera pas, par exemple en L36 : 1
le 189 restera en normal
Citation : Function lea133() |
Marsh Posté le 06-08-2009 à 11:44:14
OK ! et c'est possible la solution que je t'ai soumis dans mon précédent post ? Ce qui évitera de rajouter une colonne
Marsh Posté le 06-08-2009 à 11:50:39
Je ne trouve pas ca tres logique. Tu enleves une somme de jours. Meme si l'info ne doit plus etre traitée, je pense qu'il faut tout de meme garder la somme...
En plus le fait d'ajouter une colonne te permettrai d'avoir, grace au filtre, le nombre de jour traité pour un individu...
Apres, si par exemple le 189 ne doit plus apparaitre, ca reste simple.
Citation : Function lea133() |
il faut que tu saisisses "Traité" en K, mais je le repète tu enleves de l'information, a toi de voir.
Marsh Posté le 06-08-2009 à 11:54:15
ReplyMarsh Posté le 06-08-2009 à 11:58:22
OK ! C'est clair que c'est mieux de rajouter une colonne !
En faite, je croyais que dans l'info bull, le nombre de jours associé serait resté !
Et donc la colonne K affichait "traité" ou le nombre de jours et dans les info bull de traité si on voulait le détail, le nombre de jours y était inscrit !
Marsh Posté le 06-08-2009 à 12:00:49
ReplyMarsh Posté le 06-08-2009 à 12:06:31
LoL !
Tant que j'ai un pro sous la main !
Ta fonction précédente ne fonctionne pas !
J'ai changé K36 et K45...ca a marché !
Mais après j'ai vouu faire K43 et K48 et rien ne se passe...
Marsh Posté le 06-08-2009 à 12:13:40
Mdr _xme_
J'ai deja le (un) mail ^^
Chaque chose en son temps voyons !
je zieute apres ma pause miamage
Marsh Posté le 06-08-2009 à 14:50:49
And the last one is :
Citation : Sub lea133 |
Marsh Posté le 06-08-2009 à 15:17:47
Et pourquoi tu as surligné en noir !?
Faut juste laisser, comme quand c'est supérieur, pour "Traité" avec les couleurs de texte (bleu ou rouge) tout simplement !
Marsh Posté le 06-08-2009 à 15:37:31
J'ai pas de beug en K21 ou K23 moi...
C'est quoi ton beug ??
Pour les couleurs ca rajoute pas mal de tests etant donné que la valeur a l'interieur de la meme cellule qui est calculée change... Pis si c'est juste enlever le noir, tu devrais t'en sortir
Mais bon, il parait qu'is sont bons...
Code :
|
Marsh Posté le 06-08-2009 à 15:39:36
J'ai edité
Marsh Posté le 30-07-2009 à 16:00:14
Bonjour !
J'ai retourné le problème dans tout les sens avant de vous le soumettre !
[img]c:\excel.JPG[/img]
Merci