Problème récupération Valeur de variable - VB/VBA/VBS - Programmation
MarshPosté le 11-04-2006 à 08:22:53
Bonjour !
Actuellement je suis en train de travailler sur un projet de gestion de Bordereau de prix Le projet comporte 2 feuilles par défaut (« Articles_Prix » et « Modèles_Métrés »).
Dans la feuille « Articles_prix », nous retrouvons la liste des prix que nous devons insérer Exemple :
A2 « CodeA », B2 « DefinitonA », C2 « UnitéA », D2 « Prix UnitaireA » A3 « CodeB », B3 « DefinitonB », C3 « UnitéB », D3 « Prix UnitaireB » Ainsi de suite .
Une fois les codes rentrés, il suffit de lancer la Macro qui copie littéralement la Feuille « Modèles_Métrés » (la macro copie Autant de fois la feuille, quil y a de Code(s) inséré(s)). Par exemple, si nous avions rentré les codes AAA, BBB, CCC, nous aurions eu comme onglets : Articles_Prix, Modèles_Métrés, AAA, BBB, CCC
Linterêt de créer ces feuilles est que nous pouvons justifier auprès du clients les quantités de matériaux, produits ou denrées dans chaque feuille, puis ces quantités sont répercutées dans la feuille « Articles_Prix » du code Correspondant. En loccurrence si jattribue 10 Kg dorange à la feuille AAA, dans la feuille « Articles_Prix » nous retrouverons bien la Quantités au poste attitré !
Problème : Pour pouvoir insérer les codes prix, jai créé une macro qui se déclenche par le clic droit de la souris. Premièrement il faut créer les lignes de saisi de codes 1- Clic droit 2- Bouton Configuration 3- Bouton insertion Lignes 4- Puis on tape le nombre de ligne souhaitée. (Exemple : 4 Codes donnent 4 lignes)
Remarque : le nombre de ligne est stocké dans la variable i (Dans cet exemple i=4)
Ensuite dans le tableau créé on tape les codes que nous voulons. Puis on créé les onglets 1- Clic droit 2- Bouton Configuration 3- Bouton Création des Onglets Oh ! Miracle, les onglets se créent.
Le problème est que lorsque lon retourne sur la feuille « Articles_Prix », les opérations ne seffetuent pas (Prix x Quantité= rien)
Dans la Userform4 renommée Menu_4, stockage du nombre de ligne dans la variable i Dans la feuille « Articles_Prix » on recupere la valeur de i pour lentendue de la boucle pour effectuer les calculs automatiquement. Le problème est là je narrive pas à récupéré cette valeur. Tandis que si je remplace i par un nombre, Ok ça fonctionne mais il faut systématiquement rentrer dans le code VBA pour tapé le nombre de ligne dont on a besoin
Private Sub Worksheet_Activate() Dim p As Integer For p = 3 To i On Error Resume Next Range("E1" ).Offset(p - 2, 0) = Sheets(p).Range("L42" ) Range("F1" ).Offset(p - 2, 0) = (Range("d" & p - 1) * Range("e" & p - 1)) Next p End Sub
Marsh Posté le 11-04-2006 à 08:22:53
Bonjour !
Actuellement je suis en train de travailler sur un projet de gestion de Bordereau de prix
Le projet comporte 2 feuilles par défaut (« Articles_Prix » et « Modèles_Métrés »).
Dans la feuille « Articles_prix », nous retrouvons la liste des prix que nous devons insérer
Exemple :
A2 « CodeA », B2 « DefinitonA », C2 « UnitéA », D2 « Prix UnitaireA »
A3 « CodeB », B3 « DefinitonB », C3 « UnitéB », D3 « Prix UnitaireB »
Ainsi de suite .
Une fois les codes rentrés, il suffit de lancer la Macro qui copie littéralement la Feuille « Modèles_Métrés » (la macro copie Autant de fois la feuille, quil y a de Code(s) inséré(s)).
Par exemple, si nous avions rentré les codes AAA, BBB, CCC, nous aurions eu comme onglets : Articles_Prix, Modèles_Métrés, AAA, BBB, CCC
Linterêt de créer ces feuilles est que nous pouvons justifier auprès du clients les quantités de matériaux, produits ou denrées dans chaque feuille, puis ces quantités sont répercutées dans la feuille « Articles_Prix » du code Correspondant. En loccurrence si jattribue 10 Kg dorange à la feuille AAA, dans la feuille « Articles_Prix » nous retrouverons bien la Quantités au poste attitré !
Problème :
Pour pouvoir insérer les codes prix, jai créé une macro qui se déclenche par le clic droit de la souris. Premièrement il faut créer les lignes de saisi de codes
1- Clic droit
2- Bouton Configuration
3- Bouton insertion Lignes
4- Puis on tape le nombre de ligne souhaitée. (Exemple : 4 Codes donnent 4 lignes)
Remarque : le nombre de ligne est stocké dans la variable i (Dans cet exemple i=4)
Ensuite dans le tableau créé on tape les codes que nous voulons.
Puis on créé les onglets
1- Clic droit
2- Bouton Configuration
3- Bouton Création des Onglets
Oh ! Miracle, les onglets se créent.
Le problème est que lorsque lon retourne sur la feuille « Articles_Prix », les opérations ne seffetuent pas (Prix x Quantité= rien)
Dans la Userform4 renommée Menu_4, stockage du nombre de ligne dans la variable i
Dans la feuille « Articles_Prix » on recupere la valeur de i pour lentendue de la boucle pour effectuer les calculs automatiquement. Le problème est là je narrive pas à récupéré cette valeur. Tandis que si je remplace i par un nombre, Ok ça fonctionne mais il faut systématiquement rentrer dans le code VBA pour tapé le nombre de ligne dont on a besoin
Private Sub Worksheet_Activate()
Dim p As Integer
For p = 3 To i
On Error Resume Next
Range("E1" ).Offset(p - 2, 0) = Sheets(p).Range("L42" )
Range("F1" ).Offset(p - 2, 0) = (Range("d" & p - 1) * Range("e" & p - 1))
Next p
End Sub
Quelquun peut il maider ?
Merci beaucoup
Mike
Fichier Disponible:
http://www.megaupload.com/?d=HEXW309R