Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 VBA Location matériel

annabmath13

XLDnaute Junior
Bonjour,

Je suis salariée dans un négoce matériaux et nous avons à disposition de la location de matériel.

Je voulais savoir si il est possible d'avoir une formule qui me permet de remplir une "nouvelle location" afin de remplir le code de l'article loué, le nom du client, la date de réservation et la date de retour prévue, sachant que cette info sera modifier le jour de la date retour définitive.

Je voulais également sur une autre feuille un calendrier avec une ligne par article, la ligne sera en rouge pour toutes les dates où le matériel est loué.

Sur la feuille de saisie de location je souhaiterais un tableau qui récapitule les données saisies.

Je ne suis pas douée pour ce qui est Développeur, j'espère trouver mon bonheur ici.

En espérant avoir été assez claire.
J'avais trouvé un ficher sur ce forum une discussion qui date de 2014.

JE voulais savoir si il était possible de le rendre plus à notre utilisation. Enlever la partie facultatif, et pouvoir mettre une dae de fin prévue et une définitif. C'est vrai que je n'ai pas penser à mettre ce fameux fichier.

Le voici ci-joint.

Merci

Par avance milles mercis.

Annabelle
 

Pièces jointes

  • test-planning-location-v1-xlsx.xlsm
    30.6 KB · Affichages: 57
Solution
bonjour
encore une petite erreur .
Le test sur les couleurs de cellules n'était pas bon lors de la réservation, d'où le non coloriage en jaune des cellules concernées.
normalement maintenant c'est ok
Malgré tous les tests que je fais , il y a encore des bugs qui passent au travers

annabmath13

XLDnaute Junior
Bonjour
effectivement

quand ca veut pas , ca veut pas

correction effectuée
Le tableau est vraiment top, efficace, pratique par la visualisation annuelle sans changer de feuille.

Mais (il parait qu'il y a toujours un mais) j'ai un gros problème. Donc l'histoire de ne pas pouvoir louer quand on a pas enregistrer un retour c'est top, le soucis c'est que des clients nous appellent à l'avance pour "réserver" une machine. Comment puis-je enregistrer ces réservations sans être bloquer par le non enregistrement des retours ?
Vous en avez connu des pénible, je suis la reine

Merci encore 1000 fois pour votre aide et votre temps.
Annab'
 

JM27

XLDnaute Barbatruc
bonjour
et voila

par contre , on prévoit une réservation du 02/11/21 au 06/11/21 ( retour prévu) et une réservation du 9 au 10 /11/21
Si le client du 2 au 6 ne rend pas l'outil , celui du 9 au 10 à ne pourras pas l'avoir ( normal !)
 

Pièces jointes

  • Location materiel JM.xlsm
    181.2 KB · Affichages: 10

annabmath13

XLDnaute Junior
bonjour
et voila

par contre , on prévoit une réservation du 02/11/21 au 06/11/21 ( retour prévu) et une réservation du 9 au 10 /11/21
Si le client du 2 au 6 ne rend pas l'outil , celui du 9 au 10 à ne pourras pas l'avoir ( normal !)
Bonjour,

J'espère que vous avez passé un bon week-end
J'ai un petit soucis, j'ai rajouter des lignes de machines (c'est peut etre ça le problème) et du coup quand on fait une location, elle ne s'affiche pas dans les locations en cours. Est-ce normal ?

Merci
 

Pièces jointes

  • location materiel 1.xlsm
    154.7 KB · Affichages: 3

JM27

XLDnaute Barbatruc
bonjour
encore une petite erreur .
Le test sur les couleurs de cellules n'était pas bon lors de la réservation, d'où le non coloriage en jaune des cellules concernées.
normalement maintenant c'est ok
Malgré tous les tests que je fais , il y a encore des bugs qui passent au travers
 

Pièces jointes

  • location materiel 1.xlsm
    169.5 KB · Affichages: 23

ChTi160

XLDnaute Barbatruc
Bonjour annabmath13
Bonjour Jean Marcel ,Le Forum
je suis ce Fil et je me suis demandais s'il n'était pas possible de supprimer une Boucle en faisant ainsi la recherche :
VB:
' on regarde si l'outil est libre
    With Sheets("RéservationEnCours")
        For Each Cell In Range(.Cells(LigneOutil, ColonneDébutPret), .Cells(LigneOutil, ColonneFinDePrèt))
         With Cell
          With .Interior
            If .Color = 65535 Then
                MsgBox "Ce matériel est déja réservé pour cette période par : " & Cell.Value
                Exit Sub
                  ElseIf .Color = 16777215 Then  ' on réserve l'outil
                         .Color = 65535
            End If
          End With
               .Value = Me.TxtClient
         End With
        Next
    End With
Bonne Journée
jean marie
 
Dernière édition:

JM27

XLDnaute Barbatruc
Bonjour Jean Marie

Avant de réserver un objet , il est nécessaire de vérifier toutes les cellules correspondant à une réservation.
Ta démarche est bonne si on ne réserve un objet que pour une seule date.
 

JM27

XLDnaute Barbatruc
Bonsoir Jean-Marie
Avec ta modif
Fais un réservation Pour Mr X pour un objet du 10 au 12 nov ( ca doit passer; les cellules sont en jaune)
Fais une réservation Pour Mr Y du même objet de 9 au 13 nov regardes ce qui se passe dans la feuille réservation.( la cellules du 9 passes en jaunes , mais comme c'est réservé à partir du 10 , on sort du programme.
donc sur la feuille on à une réservation en jaune le 9 pour Y et le reste du 10 au 12 pour X
il faut donc deux boucles.
Par contre si on réserve pour un seul jour uniquement , ca marche, mais ce n'est pas ce que le demandeur souhaite.
 

ChTi160

XLDnaute Barbatruc
Re je viens de comprendre ! Lol
oups pas vu ton message lol

La boucle par exemple commencera à créer et s'arrêtera si un jour est déjà occupé.
Ok donc pas bon ! Lol
Jean marie
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Re
une autre Idée toujours pour supprimer une Boucle
tester si la plage de réservation est Vide .
Exemple:
VB:
' on regarde si l'outil est libre
    With Sheets("RéservationEnCours")
       If Application.CountA(.Range(.Cells(LigneOutil, ColonneDébutPret), .Cells(LigneOutil, ColonneFinDePrèt))) > 0 Then
          MsgBox "Ce matériel est déja réservé sur cette cette période !"
                Exit Sub
       End If
       For Each Cell In Range(.Cells(LigneOutil, ColonneDébutPret), .Cells(LigneOutil, ColonneFinDePrèt))
         With Cell
          With .Interior
               .Color = 16777215  ' on réserve l'outil
               .Color = 65535
          End With
               .Value = Me.TxtClient
         End With
        Next
    End With
à voir
Bonne fin de Soirée
Jean marie
 

ChTi160

XLDnaute Barbatruc
Re
Ce que j'ai fait pour rester dans les Clous Lol
VB:
' on regarde si l'outil est libre
    With Sheets("RéservationEnCours")
        Set StrSearch = .Range(.Cells(LigneOutil, ColonneDébutPret), .Cells(LigneOutil, ColonneFinDePrèt)).Find(What:="*", _
                                           After:=.Cells(LigneOutil, ColonneDébutPret))
           If Not (StrSearch) Is Nothing Then
           MsgBox "Ce matériel est déja réservé sur cette période par ! " & StrSearch
                Exit Sub
           End If
        With .Range(.Cells(LigneOutil, ColonneDébutPret), .Cells(LigneOutil, ColonneFinDePrèt))
             .Interior.Color = 65535  ' on réserve l'outil
             .Value = Me.TxtClient
         End With
    End With
    With Sheets("Location")
Bonne fin de soirée
Jean marie
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…