nainkisiteur
Messages postés4Date d'inscriptionmercredi 16 janvier 2008StatutMembreDernière intervention17 janvier 2008
-
16 janv. 2008 à 14:45
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 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.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
nainkisiteur
Messages postés4Date d'inscriptionmercredi 16 janvier 2008StatutMembreDernière intervention17 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 ...
nainkisiteur
Messages postés4Date d'inscriptionmercredi 16 janvier 2008StatutMembreDernière intervention17 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
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
nainkisiteur
Messages postés4Date d'inscriptionmercredi 16 janvier 2008StatutMembreDernière intervention17 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 ?
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 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