IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[XL-2010] Planning excel et visualisation d'une durée d'une tache


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingé méca
    Inscrit en
    Juin 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Ingé méca

    Informations forums :
    Inscription : Juin 2014
    Messages : 13
    Par défaut [XL-2010] Planning excel et visualisation d'une durée d'une tache
    Bonjour à tous, je me résigne à venir vous poser quelques questions car mes compétences en code VBA sont arrivées à leur terme... J'ai déjà mis plus d'une semaine pour obtenir le planning en PJ et le codage devrait faire hurler les spécialistes que vous êtes.

    J'ai tout de même réussi à avoir 90% de ce que je souhaitait mais une nouvelle demande vient compliquer mon tableau.

    Je m'explique en essayant d'être claire.

    Dans mon planning je rentre un ensemble d'info dans un userform avec notamment une date de début, une date de fin et un nombre de jour estimé.

    J'ai dans mes colonnes qui font office de calendrier une formule qui colore en vert ou bleu la case pour les dates de début ou de fin.

    La difficulté où je m'arrache les cheveux c'est que je voudrais colorer en gris (par exemple) les cases suivant la date de début en fonction du nombre de jour renseigné dans le userform.

    Un exemple pour être plus explicite :

    mes formules colore la date de début (ex : 1 juin) et la date de fin (ex : 10 juin). J'ai mis dans mon userform que les travaux devraient prendre 5 jours, je veux donc que les cases correspondant au 2 / 3 / 4 / 5 juin soit grisées.

    Pour plus de visuel voir la ligne 3 du fichier en PJ.

    Merci par avance à tous ceux qui prendront quelques minutes pour ouvrir mon fichier, n'hésitez pas à critiquer le boulot mais pas trop fort, mes compétences sont plus mécaniciennes qu'informaticiennes

    Bonne journée à vous.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 908
    Par défaut
    Bonjour,

    J'ai regardé seulement le visuel de ton graphique mais je pense que, pour répondre à ta question, il te faut utiliser quelques variables :
    - Colonne du début de la période : dbt_col
    - Date de début de tâche : dbt_tache

    A partir de ces deux-là, tu fais ceci :
    - dbt_date = la date de dbt_col
    => dbt_tache - dbt_date = dbt_ecart : écart entre tes deux dates (utilise la fonction datediff)
    =>=> dbt_ecart = dbt_ecart * ton nombre de cases pour chaque jours (j'ai vu que tu en avais 2 par jours)

    Une fois que tu possèdes l'écart entre ces deux dates, il te suffit de faire :
    => dbt_col_tache = dbt_col + dbt_ecart
    Ce qui te permet de connaître ta colonne de début de tâche.

    La sélection de ta colonne se fera donc comme ceci :
    .cells(dbt_col_tache + i, ligne) où i sera une variable que tu incrémenteras pour faire tous les jours de ta tâche.

    En espérant que cela soit assez compréhensible

    Cordialement,

  3. #3
    Membre averti
    Homme Profil pro
    Ingé méca
    Inscrit en
    Juin 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Ingé méca

    Informations forums :
    Inscription : Juin 2014
    Messages : 13
    Par défaut
    Merci Gado, compréhensible oui et non c'est juste que pour mes yeux d'amateur c'est du chinois, mais je vais creusé avec tes outils. Par contre à priori ta méthode me permet de remplir la durée séparant 2 dates. Mon soucis c'est que pour une date de début (le 01 juin par exemple) et une date de fin (le 10 juin par exemple), je défini qu'il n'y a que 3 jours de travail. Il me faut donc "coloré" 3 jours consécutifs après la date de début.

    Je vais quand même bricolé avec tes infos.

  4. #4
    Membre Expert Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 908
    Par défaut
    D'accord.
    Ce qu'il te faut en fait, c'est déterminer ta colonne de début de travail.
    Pour cela, tu disposes d'une date de début de période (qui te sers de référence de colonne) et une date de début de tâche.
    En réalisant une différence de date entre les deux, tu pourras déterminer ta colonne de début de tâche.

    En incrémentant une variable, tu pourras parcourir chacune de tes cellules à partir de cette fameuse colonne que tu as déterminé précédemment jusqu'à la colonne de fin de tâche.

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Peux-tu être plus précis dans ta demande ?
    Où se trouve tes données (date de début, durée) ? Quel onglet, quelles cellules ?
    Quelles cases veux-tu griser ?

    n'hésitez pas à critiquer le boulot
    Juste quelques remarques qui me sautent aux yeux sans avoir pris vraiment la peine de lire le code :
    Il est préférable de déclarer les variable en début de procédure. En clair, mettre les Dim juste après les Sub.
    Ne déclarer en type "Variant" que lorsqu'on ne peut pas faire autrement. Dans la majorité des cas, il est préférable d'indiquer le vrai type.
    Dans "If FEE.Value = True Then" le "= True" ne sert à rien. C'est le principe d'un IF de vérifier si une condition est égale à True. Si FEE.Value est déjà une condition en soit, inutile de rajouter un "= True" et si ça n'en est pas une, de toute façon, le "=" ne marchera pas.

  6. #6
    Membre averti
    Homme Profil pro
    Ingé méca
    Inscrit en
    Juin 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Ingé méca

    Informations forums :
    Inscription : Juin 2014
    Messages : 13
    Par défaut
    Ok Gado, je suis en train d'essayer de me dépatouiller avec tes propositions.

    Menhir, ok pour les remarques je vais donc nettoyer le code avec tes éclaircissements.

    Pour résumé ma demande.

    j'ai :
    - dans une colonne A une date de début de tache
    - dans une colonne B une date de fin de tache
    - dans une colonne C le nombre de jour pour traiter la tache (qui peut être inférieur à la date de fin de tache)

    - des colonnes avec les dates pour visualiser le planning

    - un userform qui me permet de remplir les colonnes

    Tout est traité dans le même onglet.

    Quand je rentre une date de début dans la colonne A, la case correspondant dans la partie planning se colore en vert ( et en bleu pour la date de fin). Je souhaite que les cellules suivant la date de début se colorent en gris en fonction du nombre de jour de la colonne C.

    En tous cas merci à vous de prendre un peu de temps pour réfléchir à mon problème lié à mon incompétence sur le logiciel.

  7. #7
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Arn017 Voir le message
    - dans une colonne A une date de début de tache
    Dans le fichier que tu as transmis, il y a trois onglets. Dans les trois cas, la colonne A est vide.
    Peux-tu accorder tes descriptions avec le fichier que tu as transmis.

    Tout est traité dans le même onglet.
    Lequel ?

    Quand je rentre une date de début dans la colonne A, la case correspondant dans la partie planning se colore en vert
    Si tu veux parler de la partie qui débute colonne X dans l'onglet Planning, un conseil : évite de fusionner les cellules. ça crée souvent des problèmes. Je te conseille plutôt d'utiliser "Centrer sur plusieurs colonnes" qui a visuellement le même effet mais préserve la structure des colonnes.

    Une question : est-ce que la première date du planning (je parle de la date de la colonne X et non pas de ce que tu appelles la date de début de tâche), est variable ?

    Quel instruction écris-tu pour mettre en vert ta date de début de tâche ?

  8. #8
    Membre averti
    Homme Profil pro
    Ingé méca
    Inscrit en
    Juin 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Ingé méca

    Informations forums :
    Inscription : Juin 2014
    Messages : 13
    Par défaut
    effectivement j'ai voulu simplifié ma demande avec les colonnes A / B / C

    pour être raccord avec mon fichier :

    date début tache définie --> colonne F
    date de fin tache définie --> colonne I
    nombre de jour alloués --> colonne V

    L'onglet "liste de choix" me permet de faire des menus déroulant, aucunes opération dessus.

    C'est mon onglet planning qui traite les infos.

    Effectivement la partie "planning" débute colonne X et je vais de ce pas enlever les fusions de cellule (merci du conseil).

    La date en X est fixe, je vais faire un planning annuel pour le moment.

    Pour obtenir la couleur verte, j'ai procédé comme suit :

    dans la cellule j'ai une fonction si, si la date du planning (à partir de la colonne X) = la date de début (colonne =F); alors 1; 0. Et après j'ai une mise en forme conditionnelle qui met en vers les cases contenant "1".

    C'est de la bricole mais ça à l'air de fonctionner.

Discussions similaires

  1. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  2. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo