prob USF avec des classeurs

bobjazz

XLDnaute Impliqué
Bonjour le Forum

En dessous il y a le code d'un USF, il fonctionne trés bien si il y a que son classeur d'ouvert, si je travaille avec un autre ouvert, il va chercher les informations sur le nouveau.

Encore debutant, je sais il faut declarer que je travaille sur la feuille de son classeur, mais depuis hier je bloque

Quelqu'un peut m'aider :eek:

Merci

Bobjazz


Option Explicit


Private Sub CmdValid_Click()

End Sub

Private Sub UserForm_Initialize()

' on remplie les numeros des pièces

Dim i As Integer
Dim Article As String

For i = 2 To Feuil1.Range('B4').End(xlDown).Row
Article = Feuil1.Range('B' & i).Value
ListBox1.AddItem Article
Next i
End Sub


Private Sub ListBox1_Click()
Dim i As Integer
' on remplie les données fixes en fct du n° choisi

i = ListBox1.ListIndex + 2
CmdValid.Visible = True
CmdExit.Visible = True
TextBox1 = Sheets(1).Range('H' & i).Value
TextBox4 = Format(Sheets(1).Range('F' & i).Value, '0.00')
TextBox7 = Sheets(1).Range('D' & i).Value
TextBox8 = Sheets(1).Range('C' & i).Value
End Sub


Private Sub CmdExit_Click()
Unload UserApproMag
End Sub
 

Dan

XLDnaute Barbatruc
Bonjour,

Je suis pas un grand spécialiste de VBA mais bon, je vais essayer de t'aider.

Il te faut placer l'instruction suivante après les déclarations de variables :

Code:
Workbooks('nom du classeur contenant l'USF').Sheets('feuil1').Activate
Codes aussi à amender:
1. remplacer :
Code:
For i = 2 To Feuil1.Range('B4').End(xlDown).Row
par
Code:
For i = 2 To sheets('feuil1').Range('B4').End(xlDown).Row
2. remplacer :
Code:
Article = Feuil1.Range('B' & i).Value
par
Code:
Article = sheets('Feuil1').Range('B' & i).Value

Espérant que cela te conviendra.

;)

Message édité par: Dan, à: 07/08/2005 13:33
 

bobjazz

XLDnaute Impliqué
Salut Dan

Merci de ta reponce, mais j'ai tjs une erreur 9
'L'indice n'appartient pas à la selection'

J'ai bien fait comme tu as marque, apres essaye des chose avec ce que tu m'as dit mais tjs parreil

Merci

Bobjazz

voici le code transformé qui fait de defaut




Option Explicit
Private Feuille As Worksheet
Private Ligne As Integer
' Mon classeur s'appelle Magasin
' Ma feuille s'appelle stock



Private Sub UserForm_Initialize()

' on remplie les numeros des pièces

Dim i As Integer
Dim Article As String

Workbooks('Magasin').Sheets('Stock').Activate
For i = 2 To Sheets('Stock').Range('B4').End(xlDown).Row
Article = Sheets('Stock').Range('B' & i).Value

ListBox1.AddItem Article
Next i
End Sub


Private Sub ListBox1_Click()
Dim i As Integer
' on remplie les données fixes en fct du n° choisi



i = ListBox1.ListIndex + 2
CmdValid.Visible = True
CmdExit.Visible = True
TextBox1 = Sheets(1).Range('H' & i).Value
TextBox4 = Format(Sheets(1).Range('F' & i).Value, '0.00')
TextBox7 = Sheets(1).Range('D' & i).Value
TextBox8 = Sheets(1).Range('C' & i).Value


End Sub


Private Sub CmdExit_Click()
Unload UserApproMag
End Sub
 

Dan

XLDnaute Barbatruc
Re,

Mais pourquoi ouvrir une nouveau fil pour cela !!
Reste sur celui -ci maintenant on perd complètement le suivi du fil.
Je viens à peine de dire la même chose Lien supprimé.

Message édité par: Dan, à: 07/08/2005 21:25
 

bobjazz

XLDnaute Impliqué
OK
Excuse
je te joint le fichier, tu y verras plus clair
Moi honnetement je ne vois pas mais je debute,

Merci

Bobjazz [file name=Magasin_20050807212706.zip size=21081]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Magasin_20050807212706.zip[/file]
 

Pièces jointes

  • Magasin_20050807212706.zip
    20.6 KB · Affichages: 14

Creepy

XLDnaute Accro
RE all,

Bon j'ai regardé ton fichier y'a pas mal de trucs que je comprends pas.

1° - Je n'ai pas de message d'erreur N°9 moi, mais plusieurs autres dus au code 'buggé' que tu as fait.

2° - Je veux bien corriger le code mais dit moi exactement ce que tu souhaites faire ?

J'ai cru comprendre que tu voulais mettre les informations de ta userform dans la feuille stock ??

Merci d'avance

++

Creepy
 

bobjazz

XLDnaute Impliqué
Bonsoir Creepy

Merci à toi

Tu sais, cela fait 1 mois que je me suis mis au VBA, j'ai acheté un livre, mais quand on devient accro à 45 ans , le Forum de Excel Download devient une bible, vraiment continuer et pardon si des fois je suis maladroit.

Pour mon fichier, la demarche

1) Je choisis ma pièce, mes TextBox se mettent à jour ('Secteur, Ref, Stock Actuel et Prix Actuel').
2) Je choisis ma Quantité (Appro), qui s'additionne avec le stock actue, la valeur s'affiche dans nouveau stock.
3) Idem pour le prix
4) CmdValid = je rentre la nouvelle quantité dans la cellule concerné de la colonne 'H3' et le nouveau prix 'F'


Merci

Bobjazz
 

Creepy

XLDnaute Accro
RE bonsoir,

Tu trouveras en PJ ton application que j'ai bcp modifé, avec plein de commentaires pour que tu puisses comprendre. Cependant quelques remarques pour t'aider.

Comme tu débutes c'est important de prendre les bonnes habitudes de suite, sinon après c'est mort.

1 - On nomme systematiquement les controls avec le type du control + son utilité : par exemple :TxtPrix pour une textbox affichant le prix.

2 - On donne des noms 'logiques' aux variables pour eviter d'avoir des A,B, C qu'on ne comprend pas !

Imagine si tu reprends ton code dans deux ans ou que quelqu'un d'autre le lit, c'est quand meême bcp plus simple de s'y retrouver quand tout est bien explicite !!

3 - On indente les lignes de code là aussi pour une meilleure lisibilité !

Voila, je ne veux pas être moralisateur juste des petits conseils pour t'aider à bien débuter.

Donc tu trouveras ton appli en PJ.

Il y aurait bcp de petites choses à modifier et/ou ajouter genre de stock negatif impossible, etc...
De plus je n'ai pas touché à ton prix ponderé, je ne sais pas ce que tu voulais faire avec : moyenne, mise à jour seulement si prix change ?

Voila

Je reste à ta disposition si tu ne comprends pas quelque chose dans le code

bonne soirée

@+

Creepy [file name=Magasin_Creepy.zip size=29006]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Magasin_Creepy.zip[/file]

Message édité par: Creepy, à: 07/08/2005 23:16
 

Pièces jointes

  • Magasin_Creepy.zip
    28.3 KB · Affichages: 18

bobjazz

XLDnaute Impliqué
Bonsoir

Merci pour ta rapidité, mais je pense que je vais le regarder et l'analiser demain, il se fait tard et depuis 2 jours dessus, je vais faire le vide.
En tout cas je vais écouter tes conseils, on tout cas, tu as compris ma demarche.
Je pense que j'aurai besoin de toi pour autre chose, là plus dur pour moi, j'etais dessus, avec le meme fichier. Mais je vais essaye de tiens au courant demain

Merci

Bonne Soirée

Bobjazz
 

bobjazz

XLDnaute Impliqué
Re Bonsoir

Avec ton fichier l'USF fonctionne bien, mais des que je l'integre dans le complet, il me fait une erreur de compilation 'Variable non définie', pour le débogage il surligne 'CbxNmrPiece'.

C'est le meme fichier, la seule difference c'est le nombre de ligne remplie, il a 500 lignes, mais je ne pense pas que ce soit ca. En tout cas moi ???, ,j'ai essayé de le declarer en Dim As Integer, mais rien

Excuse

Bonne soirée

Bobjazz
 

bobjazz

XLDnaute Impliqué
RE RE Bonsoir

J'ai trouvé, en regadant bien ton fichier et tu l'expliques en plus.

'' on remplie les données fixes en fct du n° choisi
' j'ai pris soin de renommer tes controls pour les même raisons que les variables
Cherche = CbxNmrPiece.Value ' On met en variable ce qu'on recherche'

Voila ta phrase

Merci et je te tiens au courant, mais là je vais me coucher

Bonne soirée

Bobjazz
 

Discussions similaires

Réponses
6
Affichages
302
Réponses
11
Affichages
361
Réponses
4
Affichages
238

Statistiques des forums

Discussions
312 582
Messages
2 089 951
Membres
104 314
dernier inscrit
Tuubibumi