Programme excel

Résolu/Fermé
loufact Messages postés 11 Date d'inscription lundi 28 juillet 2008 Statut Membre Dernière intervention 12 août 2008 - 28 juil. 2008 à 14:21
loufact Messages postés 11 Date d'inscription lundi 28 juillet 2008 Statut Membre Dernière intervention 12 août 2008 - 12 août 2008 à 14:09
Bonjour,

Je voudrais organiser mon planning qui est sous forme d'un tableau.
Pour cela je souhaiterai développer un petit programme qui permet de comparer une date avec celle d'aujourd'hui.

Par ex :
donnée date : 01/08/08
date d'aujourd'hui : 28/07/08.

Avec le programme comparaison, j'aimerai sortir un résultat "critique" car moins d'une semaine d'intervalle.
Ainsi de suite avec des écarts de plus en plus grand et donc une criticité de moins en moins élevée.
Est-il possible de faire apparaitre un code couleur pour le résultat : écart faible : rouge = moins d'une semaine, écart moyen : orange = entre une semaine et deux semaines, etc...

J'espere que vous pourrez m'aider.

LOUFACT
A voir également:

18 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
28 juil. 2008 à 15:27
MERCI DE RESTER SUR LE FORUM, MAJAX, TES PROPOSITIONS PEUVENT INTERESSER TOUT LE MONDE, SINON LE PRINCIPE DES FORUMS NE SERT A RIEN...

Excuse ma colère, mais il n'y a plus guère d'espaces de solidarité gratuite; il serait dommage de les détruire...

Michel
2
Ma propale etait plus pour des raisons de facilité car passer un exemple de fichier par le forum .....
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
5 août 2008 à 19:25
Salut majax06
Voir...Ce lien Stp
A+
1
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
28 juil. 2008 à 14:26
Bonjour,

sans faire de programmation, les mises en formes conditionnelles t'offre la possibilité de 3 présentations de cellules (polices, couleurs...
format-mise en forme conditionnelle (MFC) si tu ne connaissais pas

Sinon on peut le faire par macro avec N formats en nous précisant les seuils et la zone d'action ....

Michel
0
Il y a 10000 facons de faire ca
un mail privé et je t'envoie un exemple
j'ai par exemple

dates
de 01/06/08


zzzzz si zzzz=aujourd'hui-30j (la case passe rouge)
yyyy si yyyy=aujourd'hui-15j (la case passe en orange)
xxxx si xxxx=aujourd'hui (la case passe en vert)


a 12/12/08

on peut aussi faire des routines en VB pour tester les données , si ce que voulez faire n'est pas trop simpliste et vous donne mal a la tete je suis a votre disposition
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
28 juil. 2008 à 15:48
tu peux passer par www.cjoint.com pour mettre des pièces jointes ( maxi 500 Ko je crois mais on peut zipper)

mais il estl plus prudent maintenant d'attendre une réaction de loufact

Michel
0
loufact Messages postés 11 Date d'inscription lundi 28 juillet 2008 Statut Membre Dernière intervention 12 août 2008
5 août 2008 à 11:15
Merci beaucoup pour votre réponse, cela fait toujours plaisir de voir que l'entraide existe bel et bien.

Je vous en serai très reconnaissant si vous pouviez m'envoyer un exemple.
Le site www.cjoint.com me parait etre une bonne idée.

Mon tableau excel est une succession de dates dans une colonne.

Merci beaucoup
0
loufact Messages postés 11 Date d'inscription lundi 28 juillet 2008 Statut Membre Dernière intervention 12 août 2008
5 août 2008 à 11:16
Un programme en VBA pourrait etre tres intéressant, cel ame permettrait en plus de découvrir.

Loufact.
0
loufact Messages postés 11 Date d'inscription lundi 28 juillet 2008 Statut Membre Dernière intervention 12 août 2008
5 août 2008 à 11:27
Autre message, désolé.

Mon planning se compose en réalité de 2 colonnes de dates :
-1ère colonne : date décidée
- 2ème colonne : date réelle

En fonction des dates décidées, je dois m'organiser : prévoir des actions telles que "organiser" et "prévoir".
En fonctiond des dates rélles, je dois réaliser une action "réceptionner".

J'aimerai créer un programme en VBA qui permette de prévoir des actions en fonction des dates, un support à la décision.

J'espère que je suis assez clair.

Je peux vous envoyer un ex de ce tableau, donnez moi votre mail.

Loufact.
0
loufact Messages postés 11 Date d'inscription lundi 28 juillet 2008 Statut Membre Dernière intervention 12 août 2008
8 août 2008 à 12:31
Bonjour,

J'aimerai développer un programme sous VBA excel qui permettrait de comparer des cellules et un mot donné, si ce mot n'est pas trouvé dans la cellule alors la ligne est supprimée.

J'ai déjà fait ça, mais je bloque :

Sub g()

Dim mot1 As String = "POS-TRADE"


For i = 200 To 1 Step -1
If StrComp((Cells(i, 3)), mot1)==1
Then Rows(i).Delete
i = 200
Next


End Sub
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
8 août 2008 à 12:38
bonjour,
le If/Then en VBA c'est...
    If  Cells(i, 3) = 1 then   Rows(i).Delete 

Si c'est en Numérique sinon c'est ="1"
A+
0
loufact Messages postés 11 Date d'inscription lundi 28 juillet 2008 Statut Membre Dernière intervention 12 août 2008
8 août 2008 à 14:46
Apparemment, il n'aime toujours pas :

la déclaration : Dim mot1 As String = "POS-TRADE" me renvoie une erreur.
Votre changement fonctionne, je n'ai plus d'erreur.

J'ai maintenant le programme suivant :

Sub g()

Dim mot1 As String = "POS-TRADE"


For i = 200 To 1 Step -1
If StrComp((Cells(i, 3)), mot1)=1 Then Rows(i).Delete
i = 200
Next


End Sub

cela ne fonctionne toujours pas, qu'en pensez-vous ?
0
loufact Messages postés 11 Date d'inscription lundi 28 juillet 2008 Statut Membre Dernière intervention 12 août 2008
8 août 2008 à 15:37
Je souhaite juste supprimer les lignes d'un tableau lorsque le mot POS-TRADE apparait dans la cellule correspondant à la ligne.

Merci de m'aider
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
8 août 2008 à 15:53
ca fonctionne pas
Dim mot1 As String = "POS-TRADE" 

faut faire

Dim mot1 As String
mot1 = "POS-TRADE"
A+
0
loufact Messages postés 11 Date d'inscription lundi 28 juillet 2008 Statut Membre Dernière intervention 12 août 2008
8 août 2008 à 16:06
En fait j'ai simplifié mon programme, j'ai lu que l'on pouvait comparer deux chaines de caractères directement, mon programme est le suivant :

Sub f()
Dim temp As Boolean
For i = 10000 To 3 Step -1
If Cells(i, 3) <> "POS-TRADE" Then
Rows(i).Delete
i = 10000
End If
Next
End Sub

J'ai mis 10000, car mon le nombre de lignes varie de jour en jour, j'ai donc pris une grosse marge.

Malheureusement ça plante et bien en plus, il doit y avoir un problème dans l'itération, il doit réaliser une boucle infinie à un moment.

Une petite aide ?

Si vous pouviez essayer sur un ex, voir de quoi je parle.

En tout cas merci bcp.
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
9 août 2008 à 07:38
Ca plante parce que tu tourne en rond en supprimant une ligne qui revient aussi sec.
Essaye,

Sub SuppRow()
Dim i As Long
    Application.ScreenUpdating = False
    For i = Range("C65536").End(xlUp).Row To 3 Step -1
        If Cells(i, 3) <> "POS-TRADE" Then
            Rows(i).Delete
        End If
        DoEvents
    Next
    Application.ScreenUpdating = True
End Sub


A+
0
loufact Messages postés 11 Date d'inscription lundi 28 juillet 2008 Statut Membre Dernière intervention 12 août 2008
11 août 2008 à 11:48
Merci beaucoup.
Vu que je n'ai pas envie e mourir bete, peux-tu m'expliquer ce qui plantait, ainsi que les deux lignes suivantes de codes :

Application.ScreenUpdating = False

For i = Range("C65536").End(xlUp).Row To 3 Step -1

Encore merci.

Loufact
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
12 août 2008 à 08:58
Ce qui plantait c'était la réinitialisation de >> i = 10000, ce qui fait que la boucle n'avais jamais de fin.

Application.ScreenUpdating = False : ne pas actualiser l'affichage des modifications pour accélérer la macro,


For i = Range("C65536").End(xlUp).Row To 3 Step -1 : renseigne la dernière ligne non vide de la colonne , ici C mais peut-être une autre colonne.
A+
0
loufact Messages postés 11 Date d'inscription lundi 28 juillet 2008 Statut Membre Dernière intervention 12 août 2008
12 août 2008 à 14:09
Un grand MERCI, ma macro fonctionne à merveille.

Loufact
0