Rangement Noms dans plusieurs feuilles avec plusieurs critères

  • Initiateur de la discussion Initiateur de la discussion Tartempion760
  • 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 !

T

Tartempion760

Guest
MEILLEURS VOEUX, joies, bonheur et surtout santé à toutes celles et ceux qui contribuent à faire fonctionner ce site.

Bonjour, voila mon 1er souci de l'année 😉

Je n'arrive pas à ranger des noms dans plusieurs feuilles suivant différents critères.

Je joint un fichier ou tout est expliqué.

Merci de votre aide.

Au plaisir de vous lire
 
Re : Rangement Noms dans plusieurs feuilles avec plusieurs critères

Bonjour Tartempion760,

🙂 🙂 🙂 Bonne année et meilleurs voeux à vous et à vos proches, 🙂 🙂 🙂

Un essai dans le fichier joint.

J'ai supposé que pour chacune des trois feuilles, il y avait toujours une ligne avec une Qual égale à CE. Si ce ,'est pas le cas il faudra modifier les formules.

Les formules sont toutes des formules matricielles.

La formule matricielle en A10 sur la feuille C:
=SI(LIGNES($A$10:A10)>NB.SI(Eqpe;1);"";INDEX(Nom;MIN(SI((Eqpe=1)*(Qual="CE")>0;LIGNE(Eqpe)-10;""))))

La formule matricielle en A11 sur la feuille C à recopier vers le bas:
=SI(LIGNES($A$10:A11)>NB.SI(Eqpe;1);"";INDEX(Nom;PETITE.VALEUR(SI((Eqpe=1)*(Qual<>"CE")>0; LIGNE(Eqpe)-10;"");LIGNES($1:1))))

Pour les deux autres feuilles, mêmes formules en remplaçant les valeurs 1 par 2 et 3.

Rem: 3 noms ont été définis sur la feuille Noms:
Eqpe =Noms!$A$11:$A$30
Nom =Noms!$B$11:$B$30
Qual =Noms!$E$11:$E$30


Formule matricielle: Elle doit être validée par la combinaison des touches Ctrl+Maj+Entrée au lieu de la seule touche Entrée comme une formule classique.
Si la validation matricielle est correcte, alors Excel entoure la formule d'accolades {=.......}.
Chaque fois que cette formule sera modifiée, la validation devra se faire par Ctrl+Maj+Entrée. Les accolades apparaissent à la validation et ne doivent pas être saisies au clavier.

Attention: j'ai mis en commentaire la procedure évènementielle dans ThisWorkbook qui m'a mis le bazar lors de l'élaboration de la formule. J'ai oublié de la réactiver.
 

Pièces jointes

Dernière édition:
Re : Rangement Noms dans plusieurs feuilles avec plusieurs critères

Re,

Une version v3 plus aboutie:

Je suis parti de l'hypothèse qu'il faut un unique CE dans chaque équipe 1, 2, et 3.
.
  • Les tableaux de mardi à dimanche sont automatiquement mis à jour aussi.
  • Une mise en forme conditionnelle sur les trois premières feuilles indique la ligne où se trouve CE.
  • Une mise en forme conditionnelle sur la feuille Noms colore en orange les blocs 1 ou 2 ou 3 s'il n'y a pas de CE ou s'il y a plus d'un CE.
  • Une procédure évènementielle dans ThisWorkbook change le nom de chacune des trois premières feuilles quand on les active et remplace votre code.

Le code de la procédure est:
VB:
Option Explicit
Const MesFeuilles = "1/2/4"

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim indice&
On Error GoTo Workbook_SheetActivate_Err_001
  indice = Replace(Sh.CodeName, "Feuil", "")
  If InStr(MesFeuilles, indice) > 0 Then Sh.Name = Sh.Range("a10").Value
  On Error GoTo 0
  Exit Sub

Workbook_SheetActivate_Err_001:
  MsgBox "Echec du changement de nom de la feuille : <" & Sh.Name & _
      ">" & vbLf & "par le nom en A10 : <" & Sh.Range("a10").Value & ">"
  On Error GoTo 0
End Sub

Remarquer la constante MesFeuilles qui sert à indiquer les numéros des codename des feuilles dont on doit changer le nom. Le codename se trouve dans l'éditeur VBA, dans la fenêtre de projet (il est suivi entre parenthèses du nom figurant dans l'onglet de la feuille); c'est le numéro n dans Feuiln

Dans le fichier joint, le bloc 1 est coloré en orange car il y a deux fois CE, et le bloc 3 est coloré car CE n'y figure pas.
 

Pièces jointes

Re : Rangement Noms dans plusieurs feuilles avec plusieurs critères

Bonsoir Tartempion760,

Attention! J'ai commis une erreur de logique aussi grosse que moi dans la macro pour changer le nom des feuilles.

L'ancienne procédure n'assurera pas que c'est la bonne feuille dont on modifiera le nom.

Il faut remplacer l'ancienne procédure par celle-ci:
VB:
Option Explicit
Const MesFeuilles = "/1/2/4/"

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim indice&
On Error GoTo Workbook_SheetActivate_Err_001
  indice = Replace(Sh.CodeName, "Feuil", "")
  If InStr(MesFeuilles, "/" & indice & "/") > 0 Then Sh.Name = Sh.Range("a10").Value
  On Error GoTo 0
  Exit Sub

Workbook_SheetActivate_Err_001:
  MsgBox "Echec du changement de nom de la feuille : <" & Sh.Name & _
      ">" & vbLf & "par le nom en A10 : <" & Sh.Range("a10").Value & ">"
  On Error GoTo 0
End Sub


Qu'est ce qui a changé ?

Les numéros des codes names indiqués dans la constante MesFeuilles doivent être tous entourés par un / devant et derrière.
"1/2/4" n'est pas correct; "/1/2/4/" est correct.
 

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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour