Total bloqué macro Excel

Résolu/Fermé
Grobibi34 Messages postés 83 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 29 mai 2008 - 5 mars 2008 à 11:35
Grobibi34 Messages postés 83 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 29 mai 2008 - 20 mars 2008 à 08:48
Bonjour, à tous j'ai déja posté un message du même genre sans avoir eu de réponse. Mais là je suis vraiment bloqué je n'arrive plus à avancer dans ma macro depuis hier après midi.

Je voudrai pouvoir éditer un planning à partir de deux dates que j'aurai selectionné au paravant à l'aide d'une UserForm.
Je récupère ensuite ces deux dates dans les cellules B1 et B2 puis je fais la soustraction en B3 pour voir le nombre de jour qui séparent ces deux dates.

Voila déja se que sa donne: https://www.cjoint.com/?dflCQfd4as

Donc à partir de là je coince ....

Je voudrai arrivé à éditer un planning comme celui-ci: https://www.cjoint.com/?depzSxz2wW

En résumé il fodrai que j'arrive à éditer les colonnes car dans les lignes j'ai déja une macro en route qui me permet à partir de plusieurs UserForm et de CheckBox d'éditer des lignes voici ce que sa donne: https://www.cjoint.com/?dfk0l42rw5

Est-ce que vous auriez des solutions à mes différents problèmes ???

Merci par avance

Cordialement

Grobibi34
A voir également:

8 réponses

eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
5 mars 2008 à 19:53
Bonjour,

Déjà avant de construire ton plannig il faudrait mieux traiter tes dates.
Si tu sélectionne le 05/03/08 dans ta cellule tu te retrouves avec 03/05/08 car tu utilises une textbox (qui contient une chaine) en faisant confiance à excel pour l'interprétation de la date et lui choisi le format mm/jj/aa.
Met à jour ta cellule directement avec la valeur de MonthView1 : Range("C1").Value = MonthView1.Value

Pour le reste j'ai l'impression que tu débutes en vba et faire un plannig n'est pas si évident.
Déjà il faudrait construire ton calendrier hors vba, que ta feuille soit prete. A la limite gérer la 1ère date avec vba (avec toute la gestion que ça implique pour les données déjà saisies : disparition de valeurs, décalage des autres...)
Si ton calendirer démarre le 01/01/08 en A2 et bien la date suivant c'est en B2: =A2+1. A toi d'afficher avec le format cellule juste 01 02 ...
Et au-dessus récuperer le 1er jour du mois et afficher juste le mois...

Après tu pourras chercher à remplir ton planning mais honnetement je sens qu'il va falloir te guider jusqu'au bout et là je n'aurais pas trop le temps.
Quand tu auras avancé poste sur un nouveau sujet
eric
0
Grobibi34 Messages postés 83 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 29 mai 2008 30
6 mars 2008 à 09:38
Bon d'abord merci pour la petite astuce pour le MonthView, tu as raison ma technique précédente était bugué.

J'ai plutot concience du gros problème que ce planning représente. J'essai de décomposer le problème étape par étape.
Et je pensai être en bonne voie jusqu'à éditer colonnes

Tu penses donc que pour pouvoir éditer mes colonnes le mieux serait de créer un calendrier du format que je souhaite par exemple sur la feuille 2 et le copier entre les deux dates que je souhaite ? Sachant que sous Excel chaque jour à une valeur propre depuis le 1/1/1900. Je sais pas trop se que tu penses de mon idée, comme tu le dis je suis débutant...

Cordialement

Grobibi34
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
6 mars 2008 à 18:35
oui, prépare ton calendrier sans vba.
Donc une date fixe saisie à la main pour la 1ère date, les autres jours calculés à partir de cette date.
Prépare la mise en page qui te va bien etc
Ensuite pour une autre feuille pour 2009 (si tu fais un calendrier annuel) tu n'auras qu'à saisir 01-01-2009, les autres jours doivent se calculer automatiquement, et la mise en page etre correcte.
Ce n'est qu'une piste, à toi de bien définir tes besoins avant de commencer
Une fois qu'il sera prèt tu pourras voir quoi créer en vba pour faciliter le remplssage.
eric
0
Grobibi34 Messages postés 83 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 29 mai 2008 30
7 mars 2008 à 09:51
Merci Eric pour tout ces conseils avisé que tu me donnes.

J'avance petit à petit mais cela prends de plus en plus forme.

Je voulai juste une dernière précision, pour calculer les jours, il me suffit de récupérer la valeur du jour en chiffre , de l'incrémenter, et après de la reconvertir en date ?

C'était encore pas très clair se que je vien de dire....

J'èspère que tu auras compris.

Cordialement

Grobibi34
0
Grobibi34 Messages postés 83 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 29 mai 2008 30
7 mars 2008 à 17:32
Re Eric, je te fais par de mes avancées dans mon planning ça comment à prendre forme je suis plutot content:

https://www.cjoint.com/?dhrFc8ftlJ

C'est plutot proche de se que je voulais à la base.

Dis moi se que tu en penses.

Cordialement.

Grobibi34
0

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

Posez votre question
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
7 mars 2008 à 22:00
Bonsoir,

et bien pour un début c'est très bien oui :-)

Juste un truc que font tous les débutant. Tu n'es pas obligé de faire un select à xhaque fois.
Par exemple :
Range("A3").Select
Selection.HorizontalAlignment = xlRight
ActiveCell.FormulaR1C1 = "Début des travaux :"
peut s'ecrire :
Range("A3").HorizontalAlignment = xlRight
Range("A3")..FormulaR1C1 = "Début des travaux :"

Ca allege ton code et tu gagnes du temps à l'execution.
Et quand tu utilises les evenements, restreint à la zone qui t'interesse avec par exemple :
If Intersect(Target, Range("C9:Z100")) Is Nothing Then Exit Sub

Je n'avais pas fait attention que c'était toi sur l'autre post...
Bonne continuation
eric
0
Grobibi34 Messages postés 83 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 29 mai 2008 30
19 mars 2008 à 17:16
Salut Eric, bon alors je te continu de te faire part de mes avancées sur mon planning.

https://www.cjoint.com/?dtrjw32OQ0

Voici un peu les problèmes que j'ai:
-le monthview ne passe pas sur toutes les bécannes, donc qu'est-ce qu'il me reste comme option?
-J'aimerai pouvoir griser les cellules du week-end et jour férier, est-ce que c'est possible ? et si oui comment y parvenir ?

Cordialement

Grobibi34
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
19 mars 2008 à 19:03
Bonsoir,

Quand tu as un nouiveau pb c'est mieux de démarrer une nouvelle discussion.
Si je ne suis pas là ou ne répond pas tout de suite tu cours le risque que personne ne lise le fil en cours...
Et souvent 2-3 avis valent mieux qu'un.

-Pour le monthview soit tu installes le contrôle partout, soit tu utilises uniquement des contrôles livrés en standard avec excel.
-Pour les we le plus simple est de mettre un format conditionnel qui teste avec joursem().
Pour les fériés ça va être bcp plus compliqué. Tu as d'une part les fetes fixes et d'autre part les fetes mobiles. Pour les fetes mobiles il faut calculer la date du jour de paques de l'année, les autres sont x jours plus tard.

Voici une formule pour les feries mobiles. Simplifiée mais uniquement valable entre 1900 et 2078 :

- Lundi de Pâques :
=FRANC((JOUR(MINUTE(A/38)/2+55)&"/4/"&A)/7;)*7-5
- Jeudi de l'Ascension :
=FRANC((JOUR(MINUTE(A/38)/2+55)&"/4/"&A)/7;)*7+33
- Lundi de Pentecôte :
=FRANC((JOUR(MINUTE(A/38)/2+55)&"/4/"&A)/7;)*7+44

N'oublie pas de passer en résolu le sujet stp
eric
0
Grobibi34 Messages postés 83 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 29 mai 2008 30
20 mars 2008 à 08:48
Ok.
Bon alors pour clore le sujet je transmet mon planning. Il y a encore pas mal d'amélioration à apporter, mais dans le principe ça marche.

J'espère que ça pourra aider quelqu'un. https://www.cjoint.com/?duiWznpgsp

Cordialement

Grobibi34
0