Programme excel

Résolu
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
Configuration: Windows XP
Internet Explorer 6.0

18 réponses

  1. Contributeur
    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
    1. Ma propale etait plus pour des raisons de facilité car passer un exemple de fichier par le forum .....
      0
  2. Un grand MERCI, ma macro fonctionne à merveille.

    Loufact
    0
    1. Contributeur
      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
      1. 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
        1. Contributeur
          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
          1. 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
            1. Contributeur
              ca fonctionne pas
              Dim mot1 As String = "POS-TRADE" 

              faut faire

              Dim mot1 As String
              mot1 = "POS-TRADE"
              A+
              0
              1. 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
                1. 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
                  1. Contributeur
                    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
                    1. 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
                      1. 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
                        1. Un programme en VBA pourrait etre tres intéressant, cel ame permettrait en plus de découvrir.

                          Loufact.
                          0
                          1. 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
                            1. Contributeur
                              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
                              1. 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
                                1. Contributeur
                                  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