Msgbox conditionnelle

Oui c'est presque cela, sauf que j'aimerais aussi borner cela jusqu'à la colonne I par exemple, dans ce cas, un truc du genre $1:$I$15 marcherait-il ?

Ça y est, on le tiens !

La plage sera donc $A$1:$I$15.

Pitié, dis-moi oui !

A+

Ca a l'air de fonctionner !!

Merci mille fois frangy !!

Bonjour,

J'ai réussi à mettre en forme mon tableau assez proprement grâce à vous et j'ai désormais une nouvelle question.

Je vous mets en pièce jointe mon tableau de travail et ce que j'aimerais faire, c'est ajouter automatiquement dans le tableau du dessous les saisies de celui du dessus.

Je m'explique : Si Lundi 16, A saisit J1, alors dans la colonne correspondante en dessous, à la ligne J1, s'affiche automatiquement A.

Est-ce possible ?

En vous remerciant pour votre aide


Sans pièce jointe, c'est coton

8planning.xlsm (32.77 Ko)

Bonjour,

Une proposition avec utilisation de l'évènement Workbook.SheetChange à la place de Worksheet.Change afin de ne pas avoir à répéter les procédures (voir le module ThisWorkbook).

20planning.xlsm (30.45 Ko)

A+

Merci frangy, ça fonctionne parfaitement bien et merci pour l'astuce qui m'évitera de copier coller les macros et de devoir donner autant de noms de variables que de feuilles, surtout que des quinzaines, y en a pas mal dans une année. Vraiment merci !!

J'essaie de faire un truc similaire à notre première cerise sur le gâteau en forçant l'exit Sub mais ça ne marche pas.

Je m'explique, j'aimerais que si A sélectionne J1 dans une cellule et qu'ensuite, il se rend compte qu'il s'est trompé et qu'il sélectionne J2 dans cette même cellule, le tableau en dessous "oublie" le premier J1 et ne s'occupe que de la sélection en cours. Le Else Exit Sub n'a rien donné de mon côté, as-tu une idée s'il te plaît ?

En te remerciant

Effectivement, cela parait plus rationnel

9planning.xlsm (31.17 Ko)

A+

Merci frangy !!!

Bonjour à tous,

Je pensais être relativement tranquille avec ce que j'avais fait mais maintenant que ce qui me semble le plus dur est résolu, le plus basique semble défaillant.

Je m'explique, en colonnes Q et R, je comptabilise le nombre de J1, J2 etc... et ça se faisait très bien automatiquement, et là je suis revenu sur mon fichier et ça ne comptabilise plus rien !!

J'ai essayé de remonter le fil de mes modifications (légères) mais n'ai pas pu retrouver ce comptage automatique, avez-vous une idée s'il vous plaît ?

En vous remerciant.

Je vous mets le fichier en pièce jointe

7planning2.xlsm (37.33 Ko)

C'est bon, j'ai trouvé la solution...enfin en trichant, j'ai réussi à remettre la main sur une ancienne version du fichier qui marchait.

Merci en tout cas

Bonjour,

J'ai un nouveau petit souci avec mon fichier...dans l'onglet 'Congés', j'aimerais qu'il me comptabilise en CD4, le nombre de fois que A a rempli 'C' dans sa ligne.

J'ai saisi en CD4 la formule =SOMME(‘Sem 6-7’ :’Sem 8-9’ ! NB.SI($C4:$P4;"C")) mais il me retourne un message d'erreur.

Comment palier à cela s'il vous plaît ?

En vous remerciant

2planning2.xlsm (37.32 Ko)

Bonjour,

Tu me semble bien fébrile ... limite stressé.

Avant de poser une question, prend le temps de tourner sept fois les doigts sur le clavier, j'ai du mal à suivre ...

Il faut également que tu prennes le temps de comprendre le code sinon tu vas au devant de problèmes (voir le dernier point abordé).

Pour ta première question non résolue sur la comptabilisation en colonnes Q et R, la mise à jour des calculs ne se faisait pas parce que l'option de calcul était sur "Manuel".

(voir Formules > Calcul > Options de calcul).

C'est également le cas sur ton dernier classeur.

Pour la formule en C4, tu peux utiliser

=NB.SI('Sem 6-7'!C4:P4;"C")+NB.SI('Sem 8-9'!C4:P4;"C")

Si tu dois effectuer ce calcul sur un nombre important de feuilles, tu peux également utiliser la formule

=SOMMEPROD(NB.SI(INDIRECT("'"& ListeFeuilles &"'!C4:P4");"C"))

Dans l'exemple joint, tu trouveras la plage nommée "ListeFeuilles" dans Base!A1:A2.

Dernier point: la procédure qui permet d'effectuer le traitement dans les feuilles de relevés hebdomadaires est lancée lors d’une modification de cellule d’une feuille quelconque du classeur.

Cela s’applique donc aussi à la feuille "Congés" et à la feuille "Base". Pour éviter une erreur, il faut indiquer au programme de ne pas prendre en compte ces feuilles.

C’est réalisé par la ligne de code :

If Target.Count > 1 Or Sh.Name = "Congés" Or Sh.Name = "Base" Then Exit Sub

A+

4planning2-1.xlsm (37.11 Ko)

Merci frangy,

Il est vrai qu'au moindre pépin, je me retrouve quelque peu en panique car je ne maîtrise que très peu l'outil même si petit à petit, j'arrive à faire quelques truc seul.

Merci infiniment pour ton aide, sincèrement


Comme tu as pu le deviner, ce fichier servira à couvrir les quinzaines de toute l'année, j'en suis pour l'instant cantonné à l'idée que je devrai copier les onglets et adapter manuellement les dates. Existe-t-il un moyen d'automatiser les choses ou est-ce trop complexe ?

Comme tu as pu le deviner, ce fichier servira à couvrir les quinzaines de toute l'année, j'en suis pour l'instant cantonné à l'idée que je devrai copier les onglets et adapter manuellement les dates. Existe-t-il un moyen d'automatiser les choses ou est-ce trop complexe ?

Le fait d’avoir 26 feuilles à copier ne me semble pas présenter de problème particulier.

La continuité des dates peut être assurée par une liaison avec le dernier jour de la semaine précédente (le premier lundi de la semaine 3 est ='Sem 1-2'!P3+1)

Par contre, ton découpage par semaine ne permet pas une correspondance directe avec les mois.

Exemple : la semaine 14 étant couverte par les mois de mars et avril, la feuille "Sem 13-14" chevauchera ces 2 mois.

La question qui se pose est de savoir pourquoi tu as choisi ce découpage sur 2 semaines. Tu aurais pu garder les 52 semaines sur une même feuille.

A+

Bonjour,

Décidément, j'ai vraiment du mal !! J'ai essayé d'adapter le code que tu m'as transmis pour répondre à la problématique suivante :

"Afficher un message lorsque sur une colonne, on a plus de 2 C qui apparaissent"

J'ai essayé de le faire pour la feuille Sem 6-7 mais il ne se passe rien et aucun message d'erreur, c'est encore plus déroutant.

Pourrais-tu y jeter un œil s'il te plaît ?

En te remerciant frangy


Avec la pièce jointe

2planning2-1.xlsm (37.75 Ko)

Bonjour,

Tu as créé une procédure Workbook_SheetChange() dans le module de feuille Feuil1 (Sem 6-7).

Or, comme son nom l'indique, cette procédure est réservée au module classeur (ThisWorkbook).

L'adaptation que tu souhaites réaliser doit donc être faite dans la procédure Workbook_SheetChange() du module classeur.

C'est ce qui est fait dans l'exemple joint.

3planning2-2.xlsm (37.35 Ko)

Si tu souhaites que cette adaptatoin ne soit réalisée que sur la feuille "Sem 6-7", tu dois alors utiliser la procédure Worksheet_Change() du module feuille.

A+

Merci frangy,

C'est bien ce que je compte faire in fine, donc tu as raison, autant travailler dans This Workbook, mais le truc c'est que maintenant, je m'intéresse au nombre de C par colonne et non plus par ligne, d'où mon idée d'introduire une MaPlage2 avec des target.Column mais ça ne fonctionne pas.

En te remerciant pour l'aide et l'effort

Voila, voila !

6planning2-3.xlsm (37.53 Ko)

A+

Merci infiniment frangy !!

Je suis peut-être gourmand mais tu as pu apercevoir un bouton extraire pour extraire une copie du fichier dans un autre répertoire.

A ton avis, est-il possible d'imaginer que ce bouton n'extrait que la feuille sur laquelle le bouton est appuyé (pour l'instant ça copie bêtement tout le classeur) et luxe suprême, est-il possible d'ajouter un commentaire en bas de la feuille extraite du genre "Mr Untel, qui va signer la feuille" ?

En te remerciant frangy

Tu peux commencer par interroger la toile sur le thème "vba excel copier une feuille dans un autre classeur".

Tu verras que les réponses ne manquent pas.

A+

Rechercher des sujets similaires à "msgbox conditionnelle"