A l'aide

Résolu
bobo919 Messages postés 10 Date d'inscription samedi 22 janvier 2011 Statut Membre Dernière intervention 29 janvier 2011 - 23 janv. 2011 à 14:56
NHenry Messages postés 15150 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 août 2024 - 29 janv. 2011 à 22:14
bonjour a toutes et a tous

voila mon probleme je cherche a coller la valeur d'une cellule (a) dans une autre cellule (b) en fonction d'une variable qui aide a determiner la valeur de (a)

c'est pas tres clair je sais donc voila mon ebauche de code qui le sera peu etre plus

Sub Bouton1_Cliquer()
Range("F1").Select
ref = ActiveCell.Value

Range("G1").Select
mvt = ActiveCell.Value

Range("I1").Select
stock = ActiveCell.Value

If ref = "a" Then
Range("B1").Select
ActiveCell.FormulaR1C1 = stock

ElseIf ref = "b" Then
Range("B2").Select
ActiveCell.FormulaR1C1 = stock

ElseIf ref = "c" Then
Range("B3").Select
ActiveCell.FormulaR1C1 = stock

ElseIf ref = "d" Then
Range("B4").Select
ActiveCell.FormulaR1C1 = stock

End If

End Sub

se code marche comme il faut, le seul probleme c'est que ma base de donne fait environ 1000 lignes je pense qu'il faudrais utilise une fonction .find mais je n'arrive pas a la programmer
est ce que quelqu'un pourais m'aider merci

18 réponses

NHenry Messages postés 15150 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 août 2024 159
23 janv. 2011 à 18:04
Bonjour,

D'accord, j'avais pas compris comme ça.

Je suppose donc que ta référence est présente dans une colonne et la quantité dans une autre.

Dim i as long

Dim MaRef as String
Dim MaQuantite as Long

i=1
Do While cells(i,1).value<>"" 'A1
if cells(i,2).value=MaRef then 'B1
cells(i,3).value=cells(i,3).value+MaQuantite 'C1
end if
i=i+1
Loop


Avec:
Colonne A : Une case vide, signifie la fin du tableau
Colonne B : référence du produit
Colonne C : quantité en stock

A toi d'adapter.

Mon site
3
NHenry Messages postés 15150 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 août 2024 159
23 janv. 2011 à 15:29
Bonjour,

Juste petite proposition :

Remplace :
Range("B1").Select
ActiveCell.FormulaR1C1 = stock

Par
Range("B1").FormulaR1C1 = stock

ou
Cells(1,2).FormulaR1C1 = stock

Ce sera plus rapide.

Mon site
0
bobo919 Messages postés 10 Date d'inscription samedi 22 janvier 2011 Statut Membre Dernière intervention 29 janvier 2011
23 janv. 2011 à 15:36
merci c'est sympa de m'aider a alleger mon code
sinon serais tu comment m'aider pour mon probleme
0
NHenry Messages postés 15150 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 août 2024 159
23 janv. 2011 à 17:14
Bonjour,

Ce code répondra peut être à tes besoins :
Option Explicit

Sub Bouton1_Cliquer()
dim i as long 
i=1

do while cells(i,6).value<>"" 'F1

select case cells(i,6) 'F1
case "a"
cells(i,2).value=cells(i,9).value 'B1, I1
case "b"
cells(i+1,2).value=cells(i,9).value 'B2, I1
case "c"
cells(i+2,2).value=cells(i,9).value 'B3, I1
case "d"
cells(i+3,2).value=cells(i,9).value 'B4, I1
end select

i=i+1
loop

End Sub 


Mon site
0

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

Posez votre question
bobo919 Messages postés 10 Date d'inscription samedi 22 janvier 2011 Statut Membre Dernière intervention 29 janvier 2011
23 janv. 2011 à 17:24
merci ais c'est toujours le meme probleme il faut ecrire un millier de ligne de code si je veut que le code source prenne en compte toute la base de donnée mais merci quand meme
0
NHenry Messages postés 15150 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 août 2024 159
23 janv. 2011 à 17:32
Bonjour,

Non !!
Ce code parcours toutes les lignes de ton tableau jusqu'à la première cellule de la colonne F vide.

Mon site
0
bobo919 Messages postés 10 Date d'inscription samedi 22 janvier 2011 Statut Membre Dernière intervention 29 janvier 2011
23 janv. 2011 à 17:40
oui je sais

en fait ce programme est pour de la gestion de stock (entrée/sortie)et en fait il n'y a pas que a b c d il y a des milliers de reference et je voudrais associer le mouvement de stock par rapport a la reference
du coup avec une loop ou un if else je suis obligé d'ecrire une ligne de code par reference enfin je pense je ne suis pas programmeur

mais merci pour ton aide
0
bobo919 Messages postés 10 Date d'inscription samedi 22 janvier 2011 Statut Membre Dernière intervention 29 janvier 2011
23 janv. 2011 à 18:32
si je comprend bien le code la variable MaRef sont mes reference dans ma base de donnée

mais je doit avouer que je ne comprend pas tres bien ce code
0
NHenry Messages postés 15150 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 août 2024 159
23 janv. 2011 à 18:54
Bonjour,

Le code proposé parcours toutes les lignes du tableau et regardes la valeur de :
- la colonne A "cells(i,1)", pour vérifier si la fin du tableau est atteint.
- La colonne B "cells(i,2)", pour la référence, si c'est la colonne F, remplacer 2 par 6
- La colonne C "cells(i,3), pour la quantité.

J'ai juste oublié le "Exit Do" avant le "End If".

Mon site
0
bobo919 Messages postés 10 Date d'inscription samedi 22 janvier 2011 Statut Membre Dernière intervention 29 janvier 2011
23 janv. 2011 à 18:58
ok
c'est tout a fait ce que je cherche a faire mais merci je vais essayer de me debrouillier avec sa

merci
0
NHenry Messages postés 15150 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 août 2024 159
23 janv. 2011 à 19:25
Bonjour,

D'accord, sinon, n'hésite pas à préciser ce que tu veux, parfois, on se comprend mais on a du mal à se faire comprendre.

Mon site
0
bobo919 Messages postés 10 Date d'inscription samedi 22 janvier 2011 Statut Membre Dernière intervention 29 janvier 2011
23 janv. 2011 à 19:28
sa je sait mais je vais essayer de faire ce code moi meme

c'est comme sa qu'on apprend
dans tout les cas merci pour ton aide
0
bobo919 Messages postés 10 Date d'inscription samedi 22 janvier 2011 Statut Membre Dernière intervention 29 janvier 2011
25 janv. 2011 à 21:47
salut

j'ai reussi a faire ce que je voulais par contre j'ai un petit probleme le programme ne fait pas la diference entre les minuscules et les majuscules

voici mon code:


Sub Bouton2_Cliquer()
Dim i As Long
Dim MaRef As String
Dim MaQuantite As Long
MaRef = Range("B1").Value

MaQuantite = Range("B2").Value


i = 1
ActiveWorkbook.Worksheets("Produits Référencés").Select


Do While Cells(i, 1).Value <> "" 'fait tant que la case n'est pas vide

If Cells(i, 1).Value = MaRef Then 'si la cellule egale maref alors

Cells(i, 8).Value = Cells(i, 8).Value + MaQuantite 'dans la cellule en face de la celulle trouve on ecrit la valeur de la cellule +la valeur de ma quantite




Exit Do


End If
i = i + 1
Loop

If Cells(i, 1).Value <> MaRef Then

MsgBox ("la reference n'existe pas vous devez la creer")
End If
End Sub
0
NHenry Messages postés 15150 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 août 2024 159
25 janv. 2011 à 22:17
Bonjour,

En haut de ton module, tu devrait avoir "Option Explicit" (si ce n'est pas le cas, ajoutes-le), après lui, tu mets : "Option Compare Binary".
(Sans les " évidemment :) )


Mon site
0
bobo919 Messages postés 10 Date d'inscription samedi 22 janvier 2011 Statut Membre Dernière intervention 29 janvier 2011
26 janv. 2011 à 08:22
merci mais je suis mal exprimer en fait il fait la difference et je voudrais qu'il ne la fasse pas
0
NHenry Messages postés 15150 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 août 2024 159
26 janv. 2011 à 12:18
Bonjour,

Option Compare Text
alors :)

Mon site
0
bobo919 Messages postés 10 Date d'inscription samedi 22 janvier 2011 Statut Membre Dernière intervention 29 janvier 2011
29 janv. 2011 à 21:26
hello voici mon code il marche bien si cela peu aider quelqu'un.


Sub Bouton_enregistrer_Cliquer()
Dim i As Long
Dim MaRef As String
Dim MaQuantite As Long
MaRef = Range("B1").Value

MaQuantite = Range("B2").Value


i = 1
ActiveWorkbook.Worksheets("Produits Référencés").Select


Do While Cells(i, 1).Value <> "" 'fait tant que la case n'est pas vide

If Cells(i, 1).Value = MaRef Then 'si la cellule egale maref alors

Cells(i, 8).Value = Cells(i, 8).Value + MaQuantite 'dans la cellule en face de la celulle trouve on ecrit la valeur de la cellule +la valeur de ma quantite




Exit Do


End If
i = i + 1
Loop

If Cells(i, 1).Value <> MaRef Then

MsgBox ("la reference n'existe pas vous devez la creer")
End If


Worksheets("Mouvement de Stock").Select
Cells(1, 2).ClearContents
Cells(2, 2).ClearContents



End Sub


Sub Bouton_creer_Cliquer()
Dim i As Long
Dim ref As String
Dim prix_achat
Dim prix_vente
Dim desi, vehi As String
Dim stock



ref = Range("A9").Value
desi = Range("B9").Value
vehi = Range("C9").Value
prix_achat = Range("D9").Value
prix_vente = Range("E9").Value
stock = Range("F9").Value

If ref "" Or desi "" Or vehi = "" Or prix_achat = "" Or prix_vente = "" Or stock = "" Then

MsgBox ("Remplit tout les champs gros con")

Exit Sub


End If

ActiveWorkbook.Worksheets("Produits Référencés").Select

i = 1




Do
If Cells(i, 1).Value = "" Then
Cells(i, 1).FormulaR1C1 = ref
Cells(i, 2).FormulaR1C1 = desi
Cells(i, 3).FormulaR1C1 = vehi
Cells(i, 4).FormulaR1C1 = prix_achat
Cells(i, 5).FormulaR1C1 = prix_vente
Cells(i, 8).FormulaR1C1 = stock


Exit Do

End If
i = i + 1
Loop
ActiveWorkbook.Worksheets("Mouvement de Stock").Select
Cells(9, 1).ClearContents
Cells(9, 2).ClearContents
Cells(9, 3).ClearContents
Cells(9, 4).ClearContents
Cells(9, 5).ClearContents
Cells(9, 6).ClearContents



End Sub
0
NHenry Messages postés 15150 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 août 2024 159
29 janv. 2011 à 22:14
Bonjour,

Merci pour le message final, penses à mettre réponse acceptée sur la ou les réponses qui t'ont aidées.

Penses aussi à mettre la coloration syntaxique pour le code, ça le rendra plus lisible (troisième icône en partant de la droite).

Mon site
0
Rejoignez-nous