Ficher recapitulatif des heures en fonction des semaines

comment je peux tri par ordre alphabétique le tableau RECAP OF et que l’ensemble des données suivent

Bonjour

Comme ceci en sélectionnant l’intégralité des cellules du tableau :

Choisir dans la liste “Trier de A à Z”

pour obtenir ceci :

Colonne “A” les données ont été mises par ordre alphabétique avec pour chacune celles respectives de leur colonne

Cela devrait le faire

essaie et dis moi

impossible de faire via une macro car les informations a trier sont sur une feuille protégée
Sinon de la façon que tu m’a montré, je sais faire :slight_smile:

Avec une macro c’est possible,
Macro deproteger => trier => reproteger

Ma proposition avec une deprotection puis une reprotection manuelle

Sinon macro avec bouton pour l’activer

À toi de voir

Ci-joint avec bouton “TRI” actionnant la macro “tri_recap_of”

Essaies et dis moi

Base Vierge (2).xlsm (103,4 Ko)

Pour le fichier BASE VIERGE :

J’ai pris ta macro et je l’ai automatisée au moment de quitter.
j’ai ajouté d’une sauvegarde auto
Et j’ai modifier la macro « recap heure » afin d’englober la colonne D jusqu’à la ligne 11, afin que le calcul des heures par jours soit pris en compte.

Base Vierge.xlsm (268,8 Ko)

Pour le fichier RECAP TEMPS …

Y a eu pas mal de modif, les macros partent dans tous les sens (je pense que l’on peux faire plus simple mais çà à l’air de fonctionner comme çà).

J’ai des macros qui s’ouvrent avec des pop up, des macros simple et des macros qi regroupe plusieurs macros … une usine à gaz :slight_smile:

RECAP TEMPS OF Vierge.xlsm (1,6 Mo)

J’ai fais des corrigé quelques bugs et mis quelques protections depuis

Je vais continuer mes tests mais en tout cas, un grand merci pour toute cette aide et la découverte du langage VBA.

Merci merci pour ce retour

Je vois que mes propositions te font pousser des ailes

Bravo

Petit rappel sans t’offusquer une petite validation de mes propositions serait bien sympathique

Je pense l’avoir mérité

Merci

1 « J'aime »

Effectivement, tu l’as bien mérité …
Y en a tellement que je ne sais pas si j’ai tout mis :confused:

C’est parfait grand merci à toi

1 « J'aime »

Salut,
Bon visiblement nous avons fait un si bon travail que je vais avoir une demande supplémentaire …
La personne qui fait les paye aimerait que :
le temps de travail de la semaine S01, S02, S03, … (qui se trouve dans le fichier :
Base Vierge (qui ensuite devient SUM1, SUM2, … en cellule D53 de chaque onglet « S01 », « S02 », « S03 »… ou cellule D11, D21, D31, … de l’onglet « Recap Heures » )
soit importé dans un autre fichier …

Je vais m’inspiré de ton ravail pour « essayé » de faire quelque chose …
je te tiens au courant

Bonjour

N’hésites pas pour toutes explications ou suggestions

Transmets moi à cette fin ce que tu as réalisé

Rien de tel pour progresser

Question :
Quand dans la macro on met une protection, est ce qu’on peut la « paramétrer »
Car si je souhaite laisser une part de liberté pour rajouter des lignes, faire le tri .. et le « unprotect » / « protect » est basique …

Bonjour,

Tout à fait. L’aide complète ici :

https://learn.microsoft.com/fr-fr/office/vba/api/excel.worksheet.protect

Perso, comme je ne le fais pas souvent, je me sers de l’enregistreur de macros.

Daniel

Bonjour

Comme le dit très bien Daniel77 pour paramétrer une instruction en VBA le plus simple est d’utiliser l’enregistreur de macro en effectuant manuellement le contexte recherché puis de récupérer dans le code généré les lignes d’instruction que celui-ci a produit

C’est personnellement comme cela que j’opere pour des opérations particulières dont je ne connais pas exactement la syntaxe à utiliser

Ceci est à réaliser pour la mise en place de la protection

La deprotection elle restant toujours à l’identique maintenue inchangée quelque soit la protection mise en place

À ta disposition pour des compléments ou précisions

Je viens d’analyser ton fichier

Le soucis vient de la mise en place d’une procédure qui s’active à chaque alimentation des colonnes concernées “S” et “T”

Celles-ci se trouve dans le VBA de l’onglet

Chaque fois qu’une de ces cellules est modifiée (notamment en début du traitement de la macro du bouton “ACTUALISATION TABLEAU” qui nettoie ces 2 colonnes pour les réalimenter)

Le VBA de la feuille s’active

Celle-ci déprotège l’onglet pour le reprotéger en fin

Ce qui a pour conséquence d’interdire le remplissage des 2 colonnes qui est la suite de la procédure du bouton “ACTUALISATION TABLEAU” et donc l’alimentation des cellules en rapport

Pour contourner cette difficulté liée au fonctionnement de 2 procédures qui s’interfèrent j’ai rajouté en début de code du traitement du bouton “ACTUALISATION TABLEAU” cette ligne de code :

Application.EnableEvents = False

et en fin de code cette ligne :

Application.EnableEvents = True

La première inhibe les procédures événementielles et donc celle du VBA de l’onglet

La deuxième les réactive
Cela fonctionne et permet de faire coexister l’ensemble

Attention tout de même si il y a inhibitions tant qu’il n’y a pas réactivation les procédures événementielles seront inexistantes et donc ton code du VBA de l’onglet ne pourra être opérationnel sans la réactivation

Ce cas de figure peut se produire par bug du traitement de la macro du bouton qui ne permettra pas de bénéficier de la réactivation via la dernière ligne de code mis à cet effet

Bien penser à ce scénario en cas de non fonctionnement de la procédure événementielle de l’onglet

Je te suggère de créer une macro spécifique pour obtenir cette réactivation avec la ligne de code :

Application.EnableEvents = True

que tu pourra exécuter dans un tel scénario

Ton fichier avec ces correctifs

Testes et dis moi

Une autre solution ci-après en agissant sur le VBA de l’onglet et de mettre dans sa procédure les lignes de code de la dé protection et de la re protection après l’analyse de la colonne modifiée (colonne “Q” numéro 17)

Au lieu de :

Sheets(« Listing OF »).Unprotect

If Target.Column = 17 Then

suite du code …..

mettre comme ceci :

If Target.Column = 17 Then
Sheets(« Listing OF »).Unprotect

suite du code ….

Ainsi de déprotéger et protéger que si les cellules modifiées sont celles de la colonne “Q” numéro 17 et non “S” ou “T”

Cet exemplaire dans cet esprit

testes et dis moi

la seule chose que cette macro fait, c’est surligner et changer le font, quelque chose qu’on peut faire avec des MFC’s, donc supprimez cette macro et remplacez-la avec des MFCs et vous n’aurez plus vos problèmes.

Et un tableau structuré avec 700 lignes vides, pffff, il y a des limites ….

Bonjour,
Alors oui j’ai pensé à cette manipulation mais comme je ne vais pas utiliser moi même cette partie que qu’il va y avoir des intercalage de lignes par une tierce personne … je ne prends pas de risque!

Le tableau, aujourd’hui a 700lignes vides car il est mis en place en octobre et en test … nous avons au minimum 1000 projets par an …
Donc merci de ne pas juger, surtout que cette question ne vous était pas adressé :wink:

Et je trouve que la MFC marche moins bien

Bonjour,
J’ai pris cette version et pour le moment cela fonctionne très bien.
Je te remercie ..

Peux tu supprimer ton message pour que le tableau avec ses données ne soit plus disponible?

Bonjour

Merci pour cette réponse positive

J’ai supprimé les fichiers de ma réponse

Cela devrait te suffire

Dis moi