Réalisation d'un décompte sous excel
Jb6161
Messages postés
49
Date d'inscription
Statut
Membre
Dernière intervention
-
Jb6161 Messages postés 49 Date d'inscription Statut Membre Dernière intervention -
Jb6161 Messages postés 49 Date d'inscription Statut Membre Dernière intervention -
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 !
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 !
A voir également:
- Comment faire un décompte sur excel
- Liste déroulante excel - Guide
- Comment faire un tri personnalisé sur excel - Guide
- Comment calculer la moyenne sur excel - Guide
- Word et excel gratuit - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
6 réponses
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 ?
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 ?



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
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 ?
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 ?
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 ?
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 ?
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.
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 ?
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 ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 !
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 !
" 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
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
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
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