Gestion de prod

nainkisiteur Messages postés 4 Date d'inscription mercredi 16 janvier 2008 Statut Membre Dernière intervention 17 janvier 2008 - 16 janv. 2008 à 14:45
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 17 janv. 2008 à 13:48
Bonjour, je fais un tableau de production recapitulatif de la production de chaque jour sur une annee sur excel.
j ai fais un userform pour rentrer la date le produit et la quantite, mais j aurai aime pouvoir mettre dans la colonne du produit la quantite a la bonne date. c est a dire choisir la case ou mettre la quantite qui a pour abcisse la date et pour ordonne le produit.

merci de votre aide

6 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
16 janv. 2008 à 17:13
Salut
Excel est du VBA, pas du VB6 --> Modif catégorie de la question

Pour ta question, ça manque de précision.
Tu as exprimé ton besoin, mais pas de question précise.
Tu veux que le programme choisisse seul la cellule dans laquelle ranger les données saisies ?
ou bien veux-tu donner à l'utilisateur le soin de choisir ?
Qu'y a t-il dans ta feuille actuellement ?
La colonne "date" de ta feuille a t-elle déjà toutes les dates de l'année ou bien doit-on se mettre à la fin des données ?
Idem pour les colonnes "produit"

Ici on peut tenter de résoudre les problèmes de programmation.
Le but de ton programme est accessoire.
Ta question devrait donc plutôt ressembler à "Comment faire une recherche dans une feuille" ou "Comment désigner une cellule à partir d'un numéro de colonne et de ligne" ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
nainkisiteur Messages postés 4 Date d'inscription mercredi 16 janvier 2008 Statut Membre Dernière intervention 17 janvier 2008
17 janv. 2008 à 06:29
bon ok je crois que j ai pas assez precise, dans mon tableau il y a deja les dates et les produits d entres. l utilisateur va mettre la date et le produit qu il veut dans un userform ce qui doit selectionner une seule case du tableau, et l autre valeur rentree correspond a la quantite produite.

c est sur que si il n y avait que 3 dates et 3 produits ca serait facile mais je me vois mal faire des conditions pour chaque case...

j ai essaye de faire une comparaison de la date rentree et de la plage de dates dans une boucle en incrementant la cellule cible (je pense que c est la solution ...) mais je suis debutant et j arrive pas a trouver les bonnes formules ...

j espere avoir ete clair
0
nainkisiteur Messages postés 4 Date d'inscription mercredi 16 janvier 2008 Statut Membre Dernière intervention 17 janvier 2008
17 janv. 2008 à 09:32
voila le code que j ai ecris mais ca marche pas ...

Private Sub ok_Click()

Dim cellule As Range
Dim ind As Integer

If ComboBox1.Value = "CHNL 005" Then
ind = 1
'Set cellule = Range("c4")
End If
If ComboBox1.Value = "CHNL 006" Then
ind = 3
'il y a une 15aine de produit donc 15 if ...

'selection de la premiere case des dates
Range("b4").Select
Do While TextBox1.Value <> ActiveCell.Value
'tant que la valeur de la case est pas egale a la date dans l userform
ActiveCell.Offset(1, 0).Select
Loop
'on se decale de "ind" dans la colonne du bon produit selectionne
ActiveCell.Offset(0, ind).Select
ActiveCell = TextBox2.Value
"on met la valeur
End Sub

bon voila je pense avoir un raisonement correct mais la il reste bloque dans la boucle, c est pas un probleme de format de la date puisque j ai essaye avec des nombres simples...
dur dur les debuts, venez moi en aide Oh grands maitres du VBA
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
17 janv. 2008 à 12:28
J'ai de la difficulté à visualiser ta feuille, mais bon, ça te donnera une idée comment je procéderais à l'aide de la fonction FIND.

Un problème qui pourrait éventuellement survenir, c'est le format de la date. Si les cellules contiennent une date réelle ou si elles contiennent du texte, il faudra agir différemment... Ici, j'utilise CDate pour forcer le texte de TextBox1 à devenir une date et non pas du texte. Change ça au besoin.

Sub TrouveCoordonnee()
    Dim Ligne As Long, Colonne As Long
    Dim Recherche As Range
   
    'Recherche de la date sur la ligne 1
    Set Recherche = Rows(1).Find( CDate(TextBox1) ) 'recherche d'une date
    If Not Recherche Is Nothing Then
        Colonne = Recherche.Column
    Else
        MsgBox "La date n'a pas été trouvée"
        Exit Sub
    End If
   
    'Recherche du produit dans la colonne A
    Set Recherche = Columns("A").Find(combobox1.Text)
    If Not Recherche Is Nothing Then
        Ligne = Recherche.Row
    Else
        MsgBox "Le produit n'a pas été trouvé"
        Exit Sub
    End If
   
    'Inscrire la valeur
    Cells(Ligne, Colonne) = TextBox2
End Sub

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nainkisiteur Messages postés 4 Date d'inscription mercredi 16 janvier 2008 Statut Membre Dernière intervention 17 janvier 2008
17 janv. 2008 à 13:23
merci pour ce code, je comprend mieux et c est plus simple.
bon je l ai applique, et il y a bien un probleme de format de date, il ne me trouve jamais la date. mais meme quand je met un format nombre et que je tape le nombre dans le textbox il ne le trouve pas, une idee ?
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
17 janv. 2008 à 13:48
Si tu utilises un nombre plutôt qu'une date, il faut enlever la mention CDate.

Si tu utilises une date dans la feuille, ne te fies pas à ce que tu vois dans la cellule, mais plutôt à ce que tu vois dans la barre de formule quand tu sélectionnes une date.

La cellule peut afficher 17 janv, mais la barre de formule indiquera 2008-01-17 avec les séparateurs selon la configuration de Windows, je pense. C'est donc cette valeur que tu devras rechercher. C'est donc très important que les valeurs dans la cellule et dans le textbox soient de même type et équivalentes.

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
Rejoignez-nous