IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Prêt de matériels et disponibilité [XL-2016]


Sujet :

Excel

  1. #1
    Membre émérite Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 566
    Points : 2 525
    Points
    2 525
    Par défaut Prêt de matériels et disponibilité
    Bonsoir à tous,

    je cherche à créer une feuille XL permettant de gérer des E/S de matériels et de connaitre la disponibilité de ce matériel.
    L'idée est la suivante :
    Nom : Pret.png
Affichages : 1114
Taille : 4,9 Ko
    Donc je tourne en rond pour construire la formule qui indiquerait la chose suivante :

    L'utilisateur1 a emprunté le Matériel 1 entre le 01/01 et le 15/01 - Le matériel était disponible donc Disponibilité = OUI
    Peu de temps après, l'utilisateur2 demande le même matériel sur une période de dates comprise dans la plage d'emprunt de l'utlisateur 1 donc Disponibilité = Non

    J'ai tenté mille et une formule (RECHERCHEV, INDEX EQUIV, etc) mais en fait, je ne sais pas comment formuler.... la formule

    Merci d'avance pour le coup de pouce.
    Curt
    Pas de demande par MP, sinon j'correctionne plus, j'dynamite, j'disperse, j'ventile !!!
    ---------------------------------------------------------------------
    Vous avez un talent insoupçonné... Faites-en profitez les autres. Un p'tit CLIC pour une grande cause.
    Et si vous faisiez un bon geste en 2024 ? Soyez utile, ça vous changera ! Moi, ça m’a changé !

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 240
    Points : 5 655
    Points
    5 655
    Par défaut
    Bonjour,

    Vu la complexité du problème, voici d'abord des images du raisonnement suivi pour le résoudre
    Pièce jointe 443144
    Pièce jointe 443148
    Pièce jointe 443149

    Puis le fichier, j'y ai laissé volontairement les tableaux correspondants aux 2 premières images pour suivre plus facilement le raisonnement
    Pièce jointe 443152

    La formule utilisée
    En E1, la valeur est forcée à "OUI" vu que c'est la première de la liste
    pour les autres cellules de la colonne E, formule matricielle à valider avec CTRL + SHIFT + ENTREE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(NB.SI($B$2:$B2;$B3)=0;"oui";SI(ET(NB.SI($B$2:$B2;$B3)<>0;OU(SI(ET(OU($B3=$B$2:$B2);OU($D3>=$C$2:$C2));0;2)=2;SI(ET(OU($B3=$B$2:$B2);OU($C3>$D$2:$D2));2;0)=2));"oui";"non"))
    ou en VBA
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Sub Controle()
        Application.ScreenUpdating = False
        DerLig = [A10000].End(xlUp).Row
        Range("E2:E" & DerLig).ClearContents
        For i = 3 To DerLig
            Matos = Cells(i, "B")
            vDeb = Cells(i, "C")
            vFin = Cells(i, "D")
            For J = 2 To i - 1
                Set c = Range("B2:B" & i - 1).Find(Matos, LookIn:=xlValues)
                If Not c Is Nothing Then
                    If Cells(J, "B") = Matos Then
                        If Cells(J, "C") > vFin Or Cells(J, "D") < vDeb Then Cells(i, "E") = "Oui" Else: Cells(i, "E") = "Non"
                        GoTo Suivant
                    End If
                Else
                    Cells(i, "E") = "Oui"
                End If
            Next J
    Suivant:
        Next i
        [E2] = "Oui"
    End Sub
    En espérant que cela fonctionne correctement.

    Cdlt

  3. #3
    Membre émérite Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 566
    Points : 2 525
    Points
    2 525
    Par défaut
    Bonjour ARTURO83,

    je suis bluffé.
    Non seulement tu as parfaitement (re)décris mon soucis mais tu as réalisé un véritable tutoriel.

    J'ai téléchargé le fichier et ça fonctionne. Je vais tâcher de décortiquer le process complet pour bien le comprendre et l'assimiler, mais dès à présent, UN ENORME MERCI.
    Curt
    Pas de demande par MP, sinon j'correctionne plus, j'dynamite, j'disperse, j'ventile !!!
    ---------------------------------------------------------------------
    Vous avez un talent insoupçonné... Faites-en profitez les autres. Un p'tit CLIC pour une grande cause.
    Et si vous faisiez un bon geste en 2024 ? Soyez utile, ça vous changera ! Moi, ça m’a changé !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] [Article] Génération des disponibilités du matériel de location
    Par User dans le forum Access
    Réponses: 17
    Dernier message: 02/02/2022, 10h13
  2. Gestion de prêt de matériel : quels outils?
    Par sandro11 dans le forum Débuter
    Réponses: 1
    Dernier message: 07/11/2014, 22h13
  3. Gestion prêt de matériels
    Par melwin dans le forum Requêtes
    Réponses: 4
    Dernier message: 09/09/2014, 15h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo