Double conditions...

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

M

Melkites

Guest
Bonjour a tous et merci d'avance pour le coup de main.

Mon problème est le suivant: je souhaiterai afficher les jours de présence pour chaque personne "A, B, C..." en D37 sur la feuille Facture, avec les données qui sont dans la feuille BDD. Je voudrais avec une liste des jours de type Mardi 1, Mercredi 14...

Dans la feuille BDD, a chaque fois que la personne est présente, je met le chiffre 1 sinon c'est 0. Et chaque ligne correspond à une personne...

Merci d'avance

Regarde la pièce jointe Test.xls
 

Pièces jointes

Re : Double conditions...

Bonjour Melkites, bonjour le forum,

En pièce jointe ton fchier modifié avec la macro événementielle Change ci-dessous :
Code:
Private test As Boolean 'déclare la variable test
 
 
Private Sub Worksheet_Change(ByVal Target As Range)
Dim plc As Range 'déclare la variable plc (PLage Colonne)
Dim li As Integer 'déclare la variable li (LIgne)
Dim pll As Range 'déclare la variable pll (PLage Ligne)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim msg As String 'déclare la variable msg (MeSsaGe)
 
If test = True Then Exit Sub 'si la varialbe test est vraie, sort de la procédure
If Target.Address <> "$F$11" Then Exit Sub 'si la changemant a lieu ailleurs qu'en F11, sort dela procédure
 
test = True 'définit la variable test
With Sheets("BDD") 'prend en compte l'onglet "BDD"
    Set plc = .Range("A2:A" & .Cells(Application.Rows.Count, 1).End(xlUp).Row) 'définit la plage plc
    li = plc.Find(Target.Value, , xlValues, xlWhole).Row 'définit la ligne li
    Set pll = .Range(.Cells(li, 6), .Cells(li, 27)) 'définit la plage pll
    For Each cel In pll 'boucle sur toutes les cellules éditées cel de la plage pll
        If cel.Value <> 0 Then msg = IIf(msg = "", .Cells(1, cel.Column).Value, msg & " / " & .Cells(1, cel.Column).Value) 'si la cellule n'est pas vide récupère le texte en ligne 1
    Next cel 'prochaine cellule cel de la boucle
End With 'fin de la prise en compte de l'onglet "BDD"
Range("D37").Value = msg 'place en D37 le texte du message msg
test = False 'redéfinit la variable test
End Sub

Le fichier :
 

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

Réponses
2
Affichages
159
Réponses
1
Affichages
346
wDog66
W
Réponses
4
Affichages
588
Réponses
4
Affichages
605
Retour