Réalisation d'un décompte sous excel

Jb6161 Messages postés 53 Statut Membre -  
Jb6161 Messages postés 53 Statut Membre -
Bonjour à tous,
Je dois réaliser un programme sous Excel 2007 pour une entreprise et étant novice dans le language Vba j'ai un peu de mal à m'y retrouver !
Je dois réaliser 3 feuilles excel avec dans la première un affichage, dans la deuxième une base de données et dans la troisième une sélection des données grâce à un menu déroulant, jusque là pas de soucis ! Dans la feuille où se trouve l'affichage, il faudrait que j'ajoute un décompte propre à un code d'identification ( sachant qu'il y en a une cinquantaine ) donc j'aurai voulu savoir s'il était possible, si une personne choisi tel code d'identification dans le menu déroulant de la feuille 3, que le décompte correspondant s'affiche dans la feuille 1, dans une cellule bien précise ?
Je sais pas si j'ai été très clair..
Merci d'avance pour vos réponses !

6 réponses

  1. nightsheart Messages postés 319 Date d'inscription   Statut Membre Dernière intervention   30
     
    Bonjour à toi Jb6161.
    Qu'entends tu par décompte ?
    Veux tu partir par exemple de 100 pour chaque identifiant et qu'à chaque fois qu'un des identifiants est sélectionné ca décrémente ?

    C'est à dire si A est sélectionné A décrément et B se stoppe et inversement ?
    0
  2. Jb6161 Messages postés 53 Statut Membre
     

    Pas vraiment, je vais essayer de te donner un exemple.
    La personne choisie le code suivant dans le menu déroulant : 9SOLU002.. ( ca correspond à des produits déstinés à la réalisation de médicaments et ils ont donc des dates de péremptions qui vont être définies en heures ). Evidemment chaque produit n'a pas la même date limite de péremption, donc si ce produit a par exemple 90h35, il faudrait que le décompte parte de 90h35 et arrive à 0h.

    Je t'ai mi des captures pour que tu puisses voir à quoi ça ressemble !
    Merci
    0
  3. nightsheart Messages postés 319 Date d'inscription   Statut Membre Dernière intervention   30
     
    J'ai tout de même vraiment du mal à voir ce que tu veux. Ne pourrais-tu déposer ton exemple en fichier excel ?

    En entrant le code 9SOLU002 dans la feuille 3, il est possible d'afficher le décompte souhaité dans la feuille 1.
    Cependant, ce programme va-t-il tourné en permanence ?
    Veux tu un décompte qui se met à jour en temps réel ?
    0
  4. Jb6161 Messages postés 53 Statut Membre
     
    Désolé dans ma tête c'est à peu près clair, mais de l'expliquer aux gens ça l'est beaucoup moins !
    Ce programme tournera en permanence oui.
    Je suis sur un pc au travail et le fichier ne veut pas s'envoyer, aurais-tu une adresse mail à laquelle je pourrai te l'envoyer ?
    0
    1. nightsheart Messages postés 319 Date d'inscription   Statut Membre Dernière intervention   30
       
      Je t'ai envoyé mon email en MP
      0
    2. Jb6161 Messages postés 53 Statut Membre
       
      C'est bon, email envoyé
      0
    3. nightsheart Messages postés 319 Date d'inscription   Statut Membre Dernière intervention   30
       
      Bien reçu. :) Pour faire un décompte il te faut une heure d'entrée, c'est à dire à partir de laquelle il faut compter. C'est ce que tu appelles heure de fin de transfert ?
      0
    4. Jb6161 Messages postés 53 Statut Membre
       
      C'est ça, sauf que la personne qui va remplir ces données ne va pas forcémment le faire le même jour et à la même heure que l'heure de fin de transfert du coup le décompte(=DLC dans la feuille " Base de donées ") ne sera pas le même que dans la base de données vu qu'il faudra prendre en compte l'interval entre lequel le transfert s'est terminé et celui où la personne a rempli les données.
      0
    5. nightsheart Messages postés 319 Date d'inscription   Statut Membre Dernière intervention   30
       
      Oula ^^ Alors attends, je crois que je n'ai pas forcément compris le fichier correctement.
      Dans l'onglet "base de données" ce que tu appelles "DLC en heure" correspond à des données fixes ? C'est à dire 9ENTE0002XX toujours = 243h21 ?

      Je veux vérifier que j'ai bien compris :

      Date de fin de transfert = 26/05/2014
      Heure de fin de transfert = 16h00

      DLC en heure = 200h

      Aujourd'hui à 16h décompte = 200 - 24 = 176 ?
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Jb6161 Messages postés 53 Statut Membre
     
    Impossible d'exécuter le sub quand je clique sur " enregistrement " le message d'erreur suivant apparaît : "Erreur d'exécution '70' Permission refusée ".

    Sub enregistrement()

    nb_ligne = 5

    Code = Range("B" & nb_ligne).Value
    nb_ligne = nb_ligne + 1
    Ligne = Range("B" & nb_ligne).Value
    nb_ligne = nb_ligne + 1
    Cuve = Range("B" & nb_ligne).Value
    nb_ligne = nb_ligne + 1
    Date = Range("B" & nb_ligne).Value
    nb_ligne = nb_ligne + 1
    Heure = Range("B" & nb_ligne).Value
    nb_ligne = nb_ligne + 1
    Lot = Range("B" & nb_ligne).Value
    nb_ligne = nb_ligne + 1

    Sheets("Base de données").Activate

    Range("A4:A15000").Select

    num_ligne = Selection.Find(What:=Code, After:=ActiveCell, LookIn:=xlFormulas, _
    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False).Row

    Range("A" & num_ligne).Activate

    ActiveCell.Offset(0, 3) = Ligne
    ActiveCell.Offset(0, 4) = Cuve
    ActiveCell.Offset(0, 5) = Date
    ActiveCell.Offset(0, 6) = Heure
    ActiveCell.Offset(0, 7) = Lot

    End Sub

    Quand je fais le débogage, l'erreur se trouve sur la ligne en gras !
    0
    1. nightsheart Messages postés 319 Date d'inscription   Statut Membre Dernière intervention   30
       
      Je n'ai pas d'erreur quand je l'éxécute pour ma part. Mais essaie de changer le nom de la variable "Date" par "Date_jour" :

      Date_jour = Range("B" & nb_ligne).Value

      ActiveCell.Offset(0, 5) = Date_jour
      0
  7. Jb6161 Messages postés 53 Statut Membre
     
    " Erreur d'execution '91' Variable objet ou variable de bloc with non définie " et cette fois l'erreur proviens d'une autre ligne:

    Sub enregistrement()

    nb_ligne = 5

    Code = Range("B" & nb_ligne).Value
    nb_ligne = nb_ligne + 1
    Ligne = Range("B" & nb_ligne).Value
    nb_ligne = nb_ligne + 1
    Cuve = Range("B" & nb_ligne).Value
    nb_ligne = nb_ligne + 1
    Date = Range("B" & nb_ligne).Value
    nb_ligne = nb_ligne + 1
    Heure = Range("B" & nb_ligne).Value
    nb_ligne = nb_ligne + 1
    Lot = Range("B" & nb_ligne).Value
    nb_ligne = nb_ligne + 1

    Sheets("Base de données").Activate

    Range("A4:A15000").Select

    num_ligne = Selection.Find(What:=Code, After:=ActiveCell, LookIn:=xlFormulas, _
    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False).Row


    Range("A" & num_ligne).Activate

    ActiveCell.Offset(0, 3) = Ligne
    ActiveCell.Offset(0, 4) = Cuve
    ActiveCell.Offset(0, 5) = Date
    ActiveCell.Offset(0, 6) = Heure
    ActiveCell.Offset(0, 7) = Lot

    End Sub
    0
    1. nightsheart Messages postés 319 Date d'inscription   Statut Membre Dernière intervention   30
       
      Remplace tout par :

      Sub enregistrement()

      Dim celltrouve As Range
      Dim code As String

      nb_ligne = 5

      code = Range("B" & nb_ligne).Value
      nb_ligne = nb_ligne + 1
      Ligne = Range("B" & nb_ligne).Value
      nb_ligne = nb_ligne + 1
      Cuve = Range("B" & nb_ligne).Value
      nb_ligne = nb_ligne + 1
      Date = Range("B" & nb_ligne).Value
      nb_ligne = nb_ligne + 1
      Heure = Range("B" & nb_ligne).Value
      nb_ligne = nb_ligne + 1
      Lot = Range("B" & nb_ligne).Value
      nb_ligne = nb_ligne + 1

      Sheets("Base de données").Activate



      With Sheets("Base de données").Columns("A:A")
      Set celltrouve = .Find(code, lookat:=xlWhole)
      End With

      num_ligne = celltrouve.Row
      Range("A" & num_ligne).Activate

      ActiveCell.Offset(0, 3) = Ligne
      ActiveCell.Offset(0, 4) = Cuve
      ActiveCell.Offset(0, 5) = Date
      ActiveCell.Offset(0, 6) = Heure
      ActiveCell.Offset(0, 7) = Lot

      End Sub
      0
    2. Jb6161 Messages postés 53 Statut Membre
       
      ça fonctionne en remplaçant pas " Date_jour " , c'est moi qui ai fait une erreur !
      0
    3. nightsheart Messages postés 319 Date d'inscription   Statut Membre Dernière intervention   30
       
      Cela correspond-il a tes besoins ? Je viens de voir ton mail pour l'afficheur. Je crois avoir saisi ^^
      0
    4. Jb6161 Messages postés 53 Statut Membre
       
      Oui, c'est pile ce qu'il me faut merci :), mais j'ai encore pleins de questions ! ^^
      0
    5. nightsheart Messages postés 319 Date d'inscription   Statut Membre Dernière intervention   30
       
      Vas-y vas-y mais pour l'affichage du décompte puis-je te changer un la mise en page ?
      0