Simplifier des formule ou adapter à une macro

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

creolia

XLDnaute Impliqué
Bonjour à tous je souhaite simplifier des formules que je maitrise trop peu Rachid m'a gentillement aider mais je reste un peut sur ma fin car je ne maitrise pas les formule de la gestion des noms et donc pas évident de l'adapter au projet

mon soucis est la suivante suite à une liste de nom dans des colonnes spécifique je voudrais que les menus déroulant correspondant, affiche la liste de nom sous condition que ces derniers existe pas déja dans les menu déroulant de la colonne

je sais c'est pas très clair mais je répondrais a toute vos questions pouvant m'aider à résoudre mon problème le fichier joint est un peu plus parlant car il reprend le projet je vous remercie d'avance pour votre aide.
 

Pièces jointes

Re : Simplifier des formule ou adapter à une macro

Bonsoir à tous,

J'ai pensé qu'une boite de dialogue ( clic sur le bouton "saisie") s'avérait utile pour cette demande !

De ce fait les doublons dans les colonnes sont signalés !

A noter : pour ce qui concerne EQ/CE1 - EQ/CE2 - EQ/CE3 pour plus de simplicité ma liste déroulante comprend ces définitions qui correspondent à EQ/CE1 = EQ/CE4 --- EQ/CE2 = EQ/CE5 --- EQ/CE3 = EQ/CE6 et ainsi de suite suivant les dates !

Bonne soirée !
 

Pièces jointes

Dernière édition:
Re : Simplifier des formule ou adapter à une macro

bonjour JBARBE et merci pour ton intervention le problème c'est que cette solution est pas adapter à ce que je veux faire car par la suite le tableau déroulant seras utilisé pour imprimer une feuille de garde il fraudais que la sélection dans la colonne reste en menu déroulant mais merci tous de même
 
Re : Simplifier des formule ou adapter à une macro

Bonjour creolia, JBARBE,

Voyez le fichier joint et cette macro :

Code:
Private Sub Worksheet_SelectionChange(ByVal c As Range)
Dim F2 As Worksheet, F3 As Worksheet, MaListe As Range, col%
Dim Encours As Range, dat&, i As Variant, Dispo As Range
Dim equipe$, Param As Range, n&
Set F2 = Feuil2 'CodeName de la feuille"Dispo"
Set F3 = Feuil3 'CodeName de la feuille "Parametre"
Set MaListe = F3.[F2] 'cellule à adapter eventuellement
Set c = ActiveCell
col = c.Column
[B:D].Validation.Delete 'RAZ
MaListe.Resize(F3.Rows.Count - MaListe.Row + 1).ClearContents 'RAZ
If col < 2 Or col > 4 Or IsDate(c(1, 2 - col)) Or c(1, 2 - col) = "" Then Exit Sub
'---zone Encours---
Set Encours = c(1, 2 - col).CurrentRegion.Columns(col).Cells
dat = Encours(1, 2 - col).Value2
'---zone Dispo---
i = Application.Match(dat, F2.Rows(1), 0)
If IsError(i) Then Exit Sub
Set Dispo = F2.Cells(1, i).CurrentRegion.Columns(col - 1).Offset(2).Cells
'---zone Param---
equipe = c(1, 2 - col)
i = InStr(equipe, "/")
If i Then equipe = Left(equipe, i - 1)
i = Application.Match(equipe, F3.Rows(1), 0)
If IsError(i) Then Exit Sub
Set Param = F3.[A1].CurrentRegion.Columns(i).Offset(1)
'---MaListe---
For i = 1 To Dispo.Count - 2
  If Dispo(i) <> "" Then _
    If Application.CountIf(Param, Dispo(i)) Then _
      If Application.CountIf(Encours, Dispo(i)) = 0 Or Dispo(i) = c _
        Then n = n + 1: MaListe(n) = Dispo(i)
Next
If n Then
  With MaListe.Resize(n)
    .Sort MaListe, xlAscending, Header:=xlNo 'tri (facultatif)
    .Name = "MaListe"
  End With
  c.Validation.Add xlValidateList, Formula1:="=MaListe" 'liste de validation
Else
  With c.Validation
    .Add xlValidateTextLength, Formula1:=0, Formula2:=0
    .ErrorMessage = "Personne n'est disponible..."
  End With
End If
End Sub
Edit : ajouté la validation de données si personne n'est disponible.

Bonne soirée.
 

Pièces jointes

Dernière édition:
Re : Simplifier des formule ou adapter à une macro

Bonjour creolia, le forum,

Dans ce fichier (1 bis) les tableaux en feuille "Dispo" sont disposés en lignes :

Code:
'---zone Dispo---
i = Application.Match(dat, F2.Columns(1), 0)
If IsError(i) Then Exit Sub
Set Dispo = F2.Cells(i, 1).CurrentRegion.Columns(col - 1).Offset(2).Cells
Bonne journée.
 

Pièces jointes

Dernière édition:
Re : Simplifier des formule ou adapter à une macro

Bonjour Job75 ton aide est toujours aussi précieuse et claire tu est parfait du premier coup malgré ma demande un peu évasif tu as su me pondre exactement ce que je souhaitais en plus tu m'a mis une version en ligne et en colonne je suis sur les fesses.
merci pour la simplification des tableaux également je suis aux anges je vais m'empresser cette aprem d’adapter sa à mon projet
grand merci
 
Re : Simplifier des formule ou adapter à une macro

Bonjour Job75 une petite question
si dans Feuil1 je veux décaler le tableau de 2 colonnes c'est à dire en C1
et en Feuil2 (Dispo) de 1 colonne (c'est à dire B1)
pourrais tu avoir la gentillesse de me dire ou je doit faire les modification svp merci d'avance.
 
Re : Simplifier des formule ou adapter à une macro

Re,

Dans ce cas juste 3 petites modifications :

col = c.Column - 2

'---zone Dispo---
i = Application.Match(dat, F2.Columns(2), 0)
If IsError(i) Then Exit Sub
Set Dispo = F2.Cells(i, 2).CurrentRegion.Columns(col).Offset(2).CellsRegion.Columns(col - 1).Cells
dat = Encours(1, 2 - col).Value2

Edit : cela dit ces décalages ne présentent guère d'intérêt car avec CurrentRegion la colonne à gauche de chaque tableau doit rester vide.

Fichier (2 bis).

Bonne fin de soirée.
 

Pièces jointes

Dernière édition:
Re : Simplifier des formule ou adapter à une macro

Bonjour Jobs75 merci pour tes info précieuse.

je suis donc obliger de formater mon tableau dispo pour chaque jour avec une colonne vide à gauche si je comprend bien il ne peut pas être coller.
 
- 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
18
Affichages
1 K
Retour