• Initiateur de la discussion Initiateur de la discussion boudu
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

boudu

XLDnaute Occasionnel
bonjour au forum
Je travaille sur un fichier qui doit servir à gérer l'occupation de 6 bureaux
j'ai créé un fichier avec des tranches horaires par quart d'heures
J'ai fait des macros pour faire apparaitre l'occupation qui peut varier de 1/4 d'heures à 1h1/2
j'ai fait une macro pour effacer un element saisi en cas de modification

Mon probleme est que ce tableau va etre rempli par plusieurs personnes et j'aimerais que si quelqu'un se trompe il y ait un message qui indique "Attention, il y a deja une plage définie sur ce créneau horaire" et qu'il soit possible de confirmer que ce n'est pas une erreur ou de revenir en arriere pour bien repositionner le curseur

Pour l'instant, une mauvaise nouvelle saisie ecrase l'ancienne sans possibilité de revenir en arriere..
Je joins mon fichier
Merci d'avance
 

Pièces jointes

Re : controle en vba

Bonjour Staple, le forum
Merci pour ce dernier passage (nocturne), j'ai craqué avant!!
Est-ce que tu pourrais me passer le fichier sur lequel tu bosses qui reprend tout le code plus clair que le mien car je me melange dans plusieurs fichiers et je ne sais plus si j'ai le meilleur
Par ailleurs, effectivement la solution idéale etant difficile, je pourrai toujours ne proposer que l'annulation au cas où on s'aperçoit de l'erreur puis la re-saisie d'une plage correcte
Bonne journée
 
Re : controle en vba

Bonjour


Voici une version plus aboutie
(avec toujours le même souci)

Une barre d'outils est créé en VBA à l'ouverture du classeur.
-Un message indique si un RV est déjà saisi
(et affiche l'horaire du RV et sa durée)

Selon la réponse à la question du message
Oui= effacement du RV
Non= le RV prééxistant est préservé


Dis moi ce que tu en penses.

En espérant que cela puisise correspondre un peu mieux à ton souhait.

Si quelque autre forumeur passe dans ce post
je lui serai reconnaissant s'il pouvait émettre un avis sur le code VBA
présent dans le classeur joint.


A+

Staple
 
Dernière édition:
Re : controle en vba

Bonjour Staple, le forum
Je te remercie pour ce fichier
POur ma part, je trouve le code bien (le message d'alerte est mieux que ce que je pensais au depart)
la barre en vba est bien, il manque juste une entrée pour annuler une plage (je pensais au depart à une entrée pour annulation de chaque type de plage (1/4, 1/2, 3/4...) de façon à remettre le formatage d'origine
J'avais intégré le repérage par surlignage pour etre sur de ne pas se tromper à la saisie
Je voulais au depart un controle sur le fait que l'espace souhaité était libre (ie si on vent entrer une plage d'une demie heure et qu'il n'y a qu'un quart d'heure libre il y a un message d'erreur) et pas seulement quand on veut entrer une plage sur une autre deja existante)
Il manque donc un IF qui serait placé au début de chaque macro et qui controle le fait que le nombre correspondant de plages est disponible.
Finalement si on a le message, on peut simplement annuler et le cas echeant enlever la ou les plages qui genent pour inserer la nouvelle
Si tu penses (ou un autre forumeur) que c'est plus simple WHY NOT?
J'ai essayé d'exploiter tes premières idées d'hier mais sans succes pour l'instant
Bonne continuation
 
Re : controle en vba

Re


N'hésites pas à poster tes modifications
(histoire de satisfaire ma curiosité)

Si tu penses (ou un autre forumeur) que c'est plus simple WHY NOT?

Je ne sais pas ce qui est plus simple ou pas

Ma proposition est juste le reflet de comment j'ai interpréter ta question de départ.



J'espère bientôt lire d'autres contributions
afin de comparer les différents axes d'approche du problème posé.


A+

Staple.
 
Re : controle en vba

Salut Staple, le forum
En fait, je me dis que c'est possible de simplifier le probleme en mettant juste le controle sur les plages qui seraient remplies si elles etaient vides
Des lors que le message apparait, ça arrete l'inscription de la plage et on peut agir soit en annulant l'ancienne plage soit en choisissant un autre endroit

Le surlignage est important pour eviter les erreurs de ligne

A la limite si ça simplifie encore je peux mettre un autre formatage pour les plages validées

Pour ton code, moi je le trouve bien car je ne suis pas tres expert en vba

Donc j'espere egalement qu'un autre participant au forum donne un avis
@+
 
Re : controle en vba

Re

Pour le surlignage il suffit de décommenter le code (qui est dans la feuil1)
(retirer les apostrophes)

pour avoir ce code actif dans la feuil1
(j'a modifié ton code original pour ne pas avoir toute la ligne surlignée
mais juste les cellules du planning)

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
Range(Cells(1, 1), Cells(36, 7)).Interior.ColorIndex = xlNone

x = ActiveCell.Column
Y = ActiveCell.Row
If Y <= 36 Then
If x = 2 Then Range(ActiveCell, ActiveCell.Offset(0, 5)).Interior.ColorIndex = 36
If x = 3 Then Range(ActiveCell.Offset(0, -1), ActiveCell.Offset(0, 4)).Interior.ColorIndex = 36
If x = 4 Then Range(ActiveCell.Offset(0, -2), ActiveCell.Offset(0, 3)).Interior.ColorIndex = 36
If x = 5 Then Range(ActiveCell.Offset(0, -3), ActiveCell.Offset(0, 2)).Interior.ColorIndex = 36
If x = 6 Then Range(ActiveCell.Offset(0, -4), ActiveCell.Offset(0, 1)).Interior.ColorIndex = 36
If x = 7 Then Range(ActiveCell.Offset(0, -5), ActiveCell.Offset(0, 0)).Interior.ColorIndex = 36
End If
Application.ScreenUpdating = True
End Sub
 
Re : controle en vba

Bonjour Staple, le forum
éloigné d'un ordi avec acces internet je n'ai pas réagi mais visiblement personne n'a eu de proposition
j'ai pu exploiter les idées et je suis arrivé au resultat que je joins
Il me reste un petit souci c'est que je ne peux pas faire la mise en forme que je veux (remplissage coloré) et utiliser la macro de surlignage de la ligne car elle incorpore une réinitialisation
donc je veux ajouter une formule qui me permet de surligner le contenu de la colonne A correspondant à la ligne en cours pour bien repérer l'heure
par ex si je suis sur la ligne8 je veux que la cellule A8 soit surlignée
je vais poster sur ce sujet par ailleurs
Bonne continuation
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

M
Réponses
2
Affichages
2 K
mmaatthh
M
P
Réponses
47
Affichages
22 K
Patrick26
P
S
Réponses
2
Affichages
2 K
S
Réponses
4
Affichages
988
Retour