Remplissage automatique

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 !

criscris11

XLDnaute Accro
Bonjour à tous,
Après des recherches sur le forum, je n'ai pas tout à fait trouver chaussure à mon pied alors je viens lancer un petit défi afin de remplir un planning suivant des données situées sur une autre feuille du classeur. Je pense à trois solutions possibles : soit par VBA, soit une MFC à conditions multiples (style celle de mDF) ou soit via une macro événementielle. Quelle serait la solution la mieux adaptée et celle qui générerait le moins d'erreurs possibles, le but étant que l'utilisateur du fichier n'est pas à se soucier des détails de remplissage.
Merci pour vos réfexions et vos réponses. Bon week-end à tous.
 

Pièces jointes

Re : Remplissage automatique

bonjour criscris

voila un premier jet

reste à traiter le cas ou l'absence est de plus d'un mois (3 ou + de pages à servir) et (plus difficile encore l'absence d'une année sur la suivante)

plus eventuellement le choix de la couleur en fonction du motif de l'absence

teste, complete et reviens

a te lire

petite ironie: j'ais terminé mon service militaire au grade de caporal-chef a 8 jours de la quille (passés en tole pour ne pas avoir cousu mes galons )
 

Pièces jointes

Re : Remplissage automatique

Bonsoir Oh grand Pierrejean,
C'est tout simplement génial (je commence à tomber amoureux des macros événementielles) : tu es un vrai chef, c'est exactement ce que je souhaitais. Maintenant passons aux choses sérieuses car il reste cependant quelques points à régler mais le principe est le bon :
1- compatibilité avec excel 97 (et oui toujours le même, pas trop d'évolution à l'armée de nos jours),
2- ce fichier n'est plus d'actualité depuis que j'ai rajouté les colonnes "Lieu" donc il va y avoir un décalage par rapport à ton code (cela doit te rappeller quelque chose, si, si rappelles toi la macro d'Hervé que tu m'as gentiment commenté) donc je vais refonder les onglets entre les deux fichiers et reposter tout cà,
3- dans l'onglet "Absences", j'ai ajouté les codes couleurs que je désire utilisé par rapport aux absences,
4- je dois avoir un onglet par mois de janvier à décembre mais juste pour l'année en cours (pas de chevauchement entre deux années du moins pas pour l'instant),

Voilà je pense avoir fait le tour, ah non j'allais oublié le plus important les commentaires de ton code car si j'arrive à déchiffrer tout cà, je pense que je vais vite progresser.

Et pour finir, je suis caporal-chef dans l'armée de terre et je m'occupe de la gestion administrative d'environ 150 militaires dont leurs absences.

Merci pour tout Pierrejean car tu as fait un super boulot, bon fini les compliments tu as du boulot qui t'attends (je rigole !). Bonne soirée.
 
Re : Remplissage automatique

Bonjour Chris et le forum,

J'ai réalisé le travail demandé.
Je te fournis 2 pièces jointes :
- le fichier Excel (uniquement pour Janvier et Février) sinon le fichier était trop volumineux
- un fichier contenant les procédures VBA à remettre dans le fichier Excel (partie Modules/Procédures).

J'ai rajouté un onglet "Code absence" pour la gestion des codes couleurs par absence.

En ce qui concerne la création des onglets de Mars à Décembre :
- Copier l'onglet Février 10 fois
- Changer le n° mois dans chaque onglet copié
- Copier/coller les formules des cellules D1, C2 et C3 (onglet Février) dans les 10 nouveaux onglets

Ensuite, tout devrait être opérationnel.

Si tu as un souci, je te ferai parvenir le fichier complet par mail.

Bonne nuit à tous
@+
Béa
 
Dernière édition:
Re : Remplissage automatique

bonjour criscris

mes hommages Béa (tes horaires ne sont pas raisonnables)
je jette un oeil sur ta solution

@cricris j'ais déplaçé les codes couleur dans la page Fériés ou ils me semblent plus a leur place et j'ais renvoyé dans leurs foyers quelques personnels pour rester dans la limite des 48 k

j'avais testé dans l'ancien fichier la possibilité de plus d'1 mois ça devrait donc aller mais teste tout de même

heureux d'avoir un peu aidé la grande muette

A te lire
 

Pièces jointes

Re : Remplissage automatique

@ béa
vu ta solution bien plus "pro" que la mienne

@criscris
la solution de Béa offre des avantages non négligeables (pour ce que j'ai pu comprendre)
1 ) il y a des controles de saisie
2 ) le traitement reprend la ligne entiere avec mise à zero préalable

@ tous 2
dans le but de m'améliorer (affute tes compliments criscris) je tente d'integrer ces contraintes
 
Re : Remplissage automatique

Bonjour Pierrejean, Chris et le forum,

Pierrejean, je te remercie pour les compliments.
Effectivement, mes horaires n'étaient pas raisonnables mais ce matin, je ne travaillais pas. Donc je pouvais me permettre de travailler très tard ...ou très tôt 😱

En ce qui concerne le code, j'ai essayé de le rendre le plus simple possible, lisible et surtout qu'il soit réutilisable.

Si je peux aider, ce sera avec grand plaisir.

Bonne journée à tous.
Béa
 
Re : Remplissage automatique

bonsoir criscris , Béa, le forum

voila il me semble avoir amélioré ma prestation

normalement cela doit fonctionner et il est possible de corriger une saisie

teste et tiens nous au courant

a moins que tu n'ais opté pour la solution de Béa ce qui ne serait pas idiot

A +
 

Pièces jointes

Re : Remplissage automatique

Bonsoir Béa, Pierrejean,
Je voulais simplement vous remercier tous les deux car c'est vraiment génial ce que vous avez fait pour moi : encore merci de tout coeur.
@Béa : est-il possible en cas d'annulation d'un motif d'absence d'un personnel dans l'onglet "Absences" de mettre à jour le planning visuel ? Pourrai-t'on utiliser un USF de saisie des absences et un USF de recherche (listbox avec noms et date recherchée avec pour effet d'afficher la position du personnel à la date choisie-motif, date de début et date de fin). J'espère que je n'en demande pas trop. En tous les cas, un grand bravo à toi Béa car c'est tout simplement (pour toi) super chouette et dire que ce fil n'avait intéressé très peu de personnes vu la difficulté, là je crois qu'on peut te tirer nos chapeaux encore une fois.

@Pierrejean : je voulais aussi te remercier pour ton travail et surtout ne déspères-pas si je choisis le code de Béa (comme tu le conseilles d'ailleurs) car j'ai beaucoup appris avec tout ce que tu as fait pour moi. Les fichiers que tu as posté sont remplis de choses que je ne connaissais pas et je vais les garder pour autre chose.

Encore mille fois merci et Béa, même si tu ne travaillais pas le lendemain, tu n'était pas obligé de le faire et de te reposer (car moi pendant ce temps là je dormais à point fermés) donc encore un grand merci.
Je vous souhaite à tous les deux une excellente soirée et une bonne nuit pour Béa qui a du sommeil à rattrapper.
 
Re : Remplissage automatique

Bonsoir Chris, Pierrejean et le forum,

Ci-dessous, tu trouveras la correction de la procédure en cas d'annulation d'une absence :

Public Sub TraitementAbsences(Target As Range)
' Traitement des absences d'une personne

' Déclaration des variables - Il est préférable d'effectuer les déclarations de variables
Dim DateDeb As Date, DateFin As Date
Dim Motif As String
Dim LeNom As String
Dim LeMoisDeb As String, LeMoisFin As String
Dim rLigneCell As Range, rLigneCellEntiere As Range
Dim intColDeb As Integer, intColFin As Integer, intCol As Integer, intColPas As Integer

' Initialisation des variables
' 1re colonne à traiter
intColDeb = 3
' Dernière colonne à traiter
intColFin = 133
' Pas pour la colonne "Motif" suivante
intColPas = 4

' Traitement de la ligne
With Sheets("Absences")
Set rLigneCellEntiere = .Range("A" & Target.Row & ":EV" & Target.Row)
End With

' RAZ des tableaux mensuels pour un nom
InitialiserMois rLigneCellEntiere.Cells(1, 2)

' Traitement de tous les motifs d'absence pour la ligne
For intCol = intColDeb To intColFin Step intColPas
If rLigneCellEntiere.Cells(1, intCol) <> vbNullString Then
' Affichage des absences - Range : Nom, Motif, Date début, Date fin
AffichageAbsence rLigneCellEntiere.Cells(1, 2), rLigneCellEntiere.Cells(1, intCol), rLigneCellEntiere.Cells(1, intCol + 2), rLigneCellEntiere.Cells(1, intCol + 3)
End If
Next intCol
End Sub

Je te confirme qu'il est possible d'utiliser des USF dans ton fichier.
Il suffit que tu définisses l'aspect visuel et je me chargerai du codage.
Au mieux, puisque tu es entrain d'apprendre. Je te laisse commencer et si tu n'y arrives pas, je t'aiderai. 😉

Et pour terminer, je te remercie pour les compliments.
A l'heure actuelle, dans mon travail, je n'ai pas souvent l'occasion de développer donc dès que je peux m'y remettre c'est avec grand plaisir.

Bonne soirée à tout le monde
A+
Béa
 
Re : Remplissage automatique

Re Béa,
Merci pour ta modif super rapide : rien à redire comme d'habitude et quel plaisir de te retrouver enfin sur le forum. Pour ce qui est des USF, j'en ai jamais fait donc pour le codage cela risque d'être chaud mais pour le visuel, je peux toujours essayé si j'ai le temps.
Merci et bonne soiré à toi et à tous.
 
Re : Remplissage automatique

Bonjour Béa,
Bien dormi ? Hier soir j'ai complété mon fichier comme tu me l'as indiqué mais ce matin au bureau, j'ai eu une surprise de taille :
Quand j'essaie d'ouvrir le fichier sous Excel 97, voici à quoi j'ai le droit :
Si j'active les macros, j'ai ce message : "Excel a généré des erreurs et sera fermé par Windows.
Vous devez redémarrer le programme.

Un journal des erreurs est en cours de création."

Maintenant si je désactive les macros, voilà le message que j'obtiens :
"Ce classeur contient un type de macro (Microsoft Excel version 4.0 macro) impossible à désactiver.
Il est possible que des virus se trouvent dans ces macros.
Si vous êtes sûr que ce classeur provient d'une source fiable, cliquez sur "OUI". Voulez-vous ouvrir ce classeur ?"
Si je clique sur "OUI", j'obtiens le message :
"Excel a généré des erreurs et sera fermé par Windows.
Vous devez redémarrer le programme.

Un journal des erreurs est en cours de création."

Saurais-tu de quoi cà vient, la seule modif que j'ai faite c'est de rajouter les onglets jusqu'à décembre et de modifier ton premier code par la correction sur l'effacement d'une saisie ?
Help me car si je ne peux pas me servir du fichier au boulot, je serais obligé de me servir du fichier fait par Pierrejean (non pas que cela me pose un problème) ?
Merci de tes lumières. Si besoin, je peux t'envoyer mon fichier par mail pour vérification : tiens-moi au courant. Bonne journée.
 
Re : Remplissage automatique

bonjour criscris

au cas ou tu serais contraint de te rabattre sur ma solution

teste cette version qui permet
de changer le motif d'absence
de changer les dates

et enfin d'effacer

ceci en 2 temps
1) choisir le motif d'absence EFFACER : le visuel est effacé et les motif lieu et dates grisés
2) supprimer le motif d'absence et les motif.. seront supprimés

je pense que ça ne devrait pas poser de problemr sous excel 97 et si ok je completerais les commentaires
 

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

Réponses
2
Affichages
1 K
Retour