Simplifier des formule ou adapter à une macro

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

  • creolia 2.xlsx
    24.9 KB · Affichages: 58
  • creolia 2.xlsx
    24.9 KB · Affichages: 54

JBARBE

XLDnaute Barbatruc
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

  • creolia 2.xlsm
    59.9 KB · Affichages: 30
Dernière édition:

JBARBE

XLDnaute Barbatruc
Re : Simplifier des formule ou adapter à une macro

Finalement j'ai abandonné la suppression de cellule qui posait problème !

bonne journée !
 

Pièces jointes

  • creolia3.xlsm
    59.5 KB · Affichages: 36
Dernière édition:

creolia

XLDnaute Impliqué
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
 

job75

XLDnaute Barbatruc
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

  • creolia(1).xlsm
    24.1 KB · Affichages: 36
Dernière édition:

job75

XLDnaute Barbatruc
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

  • creolia(1 bis).xlsm
    24 KB · Affichages: 37
Dernière édition:

creolia

XLDnaute Impliqué
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
 

creolia

XLDnaute Impliqué
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.
 

job75

XLDnaute Barbatruc
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

  • creolia(2 bis).xlsm
    23 KB · Affichages: 23
Dernière édition:

creolia

XLDnaute Impliqué
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.
 

Discussions similaires

Statistiques des forums

Discussions
311 709
Messages
2 081 769
Membres
101 816
dernier inscrit
Jfrcs