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 ![]()
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 ![]()
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
Effectivement, tu l’as bien mérité …
Y en a tellement que je ne sais pas si j’ai tout mis ![]()
C’est parfait grand merci à toi
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é ![]()
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

