Variable dans excel

Résolu
chaudier37 Messages postés 209 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 15 juillet 2009 - 13 févr. 2008 à 10:26
chaudier37 Messages postés 209 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 15 juillet 2009 - 22 févr. 2008 à 10:42
Bonjour,
je travaille dans excel et vba.
dans excel j'appuie sur un bouton qui appelle un inputbox. me demande une quantité d'article à entrer et la reference de l'article concerné. j'entre les deux informations.
à partir de ces informations, les variables qui sont la quantité et la ref vont s'inscrire dans un tableau de la page excel. je voudrais que ces infos aillent aussi sur une autre page et cela ne fonctionne pas. quelqu'un peut il me donner la marche à suivre pour que ma variable aille sur deux pages en même temps ? merci

6 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
14 févr. 2008 à 11:10
Pour éviter de tout refaire, il faudrait que tu expliques ce qui ne fonctionne pas... message d'erreur ? si oui lequel et quel est son numéro ? sur quelle ligne apparaît-il ?

Pour connaître le nombre de lignes (en colonne A) d'une feuille, utilise ceci
DerniereLigne = Cells(Rows.Count, " A ").End(xlUp).Row + 1
En ajoutant +1, ça te donne la première ligne vide. Ensuite, tu peux utiliser cette variable pour inscrire tes données
Range("A" & DerniereLigne) = Date
Range("B" & DerniereLigne) = qte

Range("C" & DerniereLigne) = ref

Pour trouver une valeur sur une ligne de la feuil2, utilise Find
Dim Recherche As Range
Set Recherche = Sheets("Feuil2").Columns("A").Find(ref)
If Not Recherche Is Nothing Then  'trouvé
    Sheets("Feuil2").Range("B" & Recherche.Row) = _
           qte + Sheets("Feuil2").Range("B" & Recherche.Row)
End If

De cette façon, tu n'as pas à sélectionner explicitement la Feuil2 et la procédure sera plus rapide. N'oublie pas le début de ma réponse, si tu rencontres une erreur...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
3
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
13 févr. 2008 à 11:57
Ton code doit être dans la page en lui-même.
C'est à dire que ton bouton se situe dans la feuille appellé "Feuil1".
Ton code lui doit être quelque chose du genre : range("A1").Value = inputbox("......")

Avec ce code, tu ne peux agir que sur la feuille à laquelle ton code est rattaché.
Pour écrire dans une autre feuille, il faut préciser l'adresse de la cellule en incluant en plus le nom de la feuille, ce qui se fait avec l'objet Worksheets.

Donc, pour écrire sur tes deux feuilles en même temps, ce que tu dois faire doit ressembler à ceci :

Worksheets("Feuil1").range("A1").value = InputBox("blablabla")
Worksheets("Feuil2").range("A1").value = Worksheets("Feuil1").range("A1").value

Molenn
0
chaudier37 Messages postés 209 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 15 juillet 2009
13 févr. 2008 à 16:53
voici la présentation de ce que j'ai fait
j'ai ceci dans ma feuille 1 :





<colgroup>
<col style=\"WIDTH: 60pt\" span=\"5\" width=\"80\" />
</colgroup>

----

date,
qte,
ref,

,

,

----

janv.-00,
1,
1,<?xml:namespace prefix v ns "urn:schemas-microsoft-com:vml" /??>
<v:shape id="CommandButton1" style="MARGIN-TOP: 8.25pt; Z-INDEX: 1; MARGIN-LEFT: 1.5pt; WIDTH: 113.25pt; POSITION: absolute; HEIGHT: 46.5pt" o:insetmode="auto" strokecolor="windowText [64]" stroked="f" type="#_x0000_t201" o:spid="_x0000_s1026">
bouton d'enregistrement
</v:shape>,

----

févr.-08,
3,
2,

----

févr.-08,
4,
1,

----

févr.-08,
5,
7,

----

févr.-08,
5,
8





et ceci dans ma feuille 2


<colgroup>
<col style=\"WIDTH: 60pt\" span=\"2\" width=\"80\" />
</colgroup>

----

ref,
quantité,

----

1,

 ,

----

2,

 ,

----

3,

 ,

----

4,

 ,

----

5,

 ,

----

6,

 ,

----

7,

 ,

----

8,

 ,

----

9






Quand je clique sur le bouton d'enregistrement, voici le programme qui se déclenche :

Private Sub CommandButton1_Click()
le curseur se positionne sur la première cellule de la page et va à la fin de cette colonne et une cellule en dessous
 Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
Là, je déclare mes variables : qte est la variable quantité, ref la variable reference
Dim qte As Integer
Dim ref As String
Là je mets qte = 1 et je précise au programme, tant que la qte est difféente de 0, continue de lancer la boite message...
qte = 1
While qte <> 0
qte = InputBox("entrez la quatité")
ref = InputBox("entrez la reference")
Là je positionne sur ma feuille les infos voulues : la date, la quantité et la ref
Selection = Date
ActiveCell.Offset(0, 1) = qte
ActiveCell.Offset(0, 2) = ref
là je me posittionne à la fin de mon tableau pour recommencer l'opération jusqu'à ce que la quantité soit égale à 0
ActiveCell.Offset(1, 0).Range("A1").Select
et là, je dits au programme d'aller à la feuille 2, de se positionner sur la vellule A1 et, de jusqu'à ce que la cellule active soit égale à la variable ref, de descendre d'une cellule.
Worksheets("Feuil2").Range("A1").Select
Do Until ActiveCell = ref
ActiveCell.Offset(1, 0).Select
Loop
quand la cellule active est égale à la ref, va à la cellule à côté et ajoute à la valeur de la cellule la variable qté.
ActiveCell.Offset(0, 1) = qte+ Val(ActiveCell.Offset(0, -1))
Wend
End Sub

et cela ne fonctionne pas, comment je peux faire ? merci de votre aide
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
13 févr. 2008 à 23:51
Qu'est-ce qui ne fonctionne pas ?
As-tu un message d'erreur ? si oui, il faudrait le donner ainsi que le numéro de cette erreur.

Ce que je pense, c'est que tu devrais activer la feuil2 avant de sélectionner sa cellule
<strike>Worksheets("Feuil2").Range("A1").Select</strike>
Worksheets("Feuil2").Activate
Range("A1").Select

Autrement, je changerais trop de chose et je devrais refaire tout le code...

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
chaudier37 Messages postés 209 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 15 juillet 2009
14 févr. 2008 à 10:39
Bonjour,
je suis disposée à tout changer pourvu que cela fonctionne...
0
chaudier37 Messages postés 209 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 15 juillet 2009
22 févr. 2008 à 10:42
merci infiniment
ça a marché et ça a tout changé...
0
Rejoignez-nous