Problème avec mon code

Résolu
Signaler
Messages postés
47
Date d'inscription
vendredi 15 juin 2007
Statut
Membre
Dernière intervention
3 juillet 2007
-
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
-
Bonjour,
dans le code ci-dessous, lorsque je clique sur Ok, VB m'indique une erreur...parce qu'il n'arrive pas à lire la variable Fiche. Celle ci est indiquée dans une textbox que l'utilisateur de l'application entre lui même (il s'agit d'une valeur numérique).
Quelqu'un peut il m'aider

Private Sub Fiche_Change()
Dim Fiche As Integer
End Sub


Private Sub TextBox2_Change()
End Sub

Private Sub CommandButton1_Click()
Dim appexcel As Excel.Application
Dim wbexcel As Excel.Workbook
Dim Fiche As Integer


' Apel du fichier excel
Set appexcel = CreateObject("Excel.Application")
appexcel.Visible = True
Set wbexcel = appexcel.Workbooks.Open(TextBox2.Text)


 
 'apel de la feuille correspondante
appexcel.Sheets("Feuil1").Select
appexcel.Range("A5").Select
appexcel.Selection.Copy
Sheets("Feuil1").Select
Range("A" & Fiche + ligne).Select
ActiveSheet.Paste

Merci
Moz

20 réponses

Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Alors :
En dehors du fait que (comme exposé) on n'a nul besoin de se servir d'Excel pour ouvrir Excel ...
Si ta textbox s'appelle Fiche (je m'en doutais), tu n'as pas à te servir d'une variable Fiche !
Dans ta formule de pointage, il te faut tout bêtement mettre la valeur du contenu de la textbox nommée Fiche !
Attention toutefois : si la textBox Fiche ne contient rien ===>>> plantage assuré.
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
C'est du VB6 (présente section) ou du VBA ???


De toutes manières :


Fiche est une variable numérique (supposons = 6) et ligne également (supposons 3)


Donc fiche + ligne ====>>> te donne 9
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Et on ne voit pas, en plus, où tu établis la valeur de fiche par rapport à ta textbox de saisie !!!
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,
Quel est l'erreur donnée et surtout sur quelle ligne elle survient.
Que vaut Fiche Ligne (et Fiche + Ligne) au moment du plantage si le tout vaut 0 normal que cela plante.

Est ce que tu travaille directemetn sur Excel?

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
47
Date d'inscription
vendredi 15 juin 2007
Statut
Membre
Dernière intervention
3 juillet 2007

c'est une macro sous excel (visual basic editor)
Ce que je ne comprends pas c'est que l'application n'arrive pas à lire la valeur numérique que l'utilisateur entre dans la textbox....

Moz
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
On ne voit pas, nous non plus, où et comment tu lui demandes de lire ce qu'il y a dans la textbox !!!!
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
ben alors pourquoi tu poste dans la section vb6 si tu es sous vba ???

Je déplace, mais ca commence à me soualer les gens qui se plante de forum maintenant !!! 6 dans la matiné !
Messages postés
47
Date d'inscription
vendredi 15 juin 2007
Statut
Membre
Dernière intervention
3 juillet 2007

en fait le probleme vient des que l'appli arrice à
 Range("A" & Fiche + ligne).Select
je pense qu'elle n'arrive pas à lire la variable...
juste pour votre info....je suis neophite débutant..dc il se peut que je commette une erreur bête...

Moz
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
RE,
NOTE:
Quel est l'interet de
Private Sub Fiche_Change()
Dim Fiche As Integer
End Sub

NOTE la variable Fichier de Private Sub Fiche_Change() ne sera en aucun ca (meme une fois renseignée) connu (et donc avec la meme valeur) dans Private Sub CommandButton1_Click()

Donc le mieux est encore de bien expliquer ce que tu souhaite.

De plus si tu travaille sous Excel pourquoi relancer un autre excel????
Set appexcel = CreateObject("Excel.Application")

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Dis-voir (un soupçon, soudain...) : quel est le nom de la textbox de saisie ?
Messages postés
47
Date d'inscription
vendredi 15 juin 2007
Statut
Membre
Dernière intervention
3 juillet 2007

dsl darkisidious, je vais deplacer mon post..je ne pensais pas etre dans VB6...

Moz
Messages postés
47
Date d'inscription
vendredi 15 juin 2007
Statut
Membre
Dernière intervention
3 juillet 2007

j'ouvre une autre feuille excel pour en extraire les données...

Moz
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Re,
NON NE FAIS RIEN DARKSIDIOUS LA DEJA FAIT.

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
47
Date d'inscription
vendredi 15 juin 2007
Statut
Membre
Dernière intervention
3 juillet 2007

la textbox de saisie dans laquelle on entre la valeur numérique s'appelle Fiche_Change()

Moz
Messages postés
47
Date d'inscription
vendredi 15 juin 2007
Statut
Membre
Dernière intervention
3 juillet 2007

waww c impressionnant ici...ça fuse ...
moi qui ne suis pas informaticien, vous m'impressionez..

Moz
Messages postés
47
Date d'inscription
vendredi 15 juin 2007
Statut
Membre
Dernière intervention
3 juillet 2007

donc comment dois je faire pour faire en sorte que la variable fiche (qui est la valeur num que l'utilisateur entre dans la textbox) soit bien prise en compte qd l'utilisateur clic sur OK?

encore merci à tous...

Moz
Messages postés
47
Date d'inscription
vendredi 15 juin 2007
Statut
Membre
Dernière intervention
3 juillet 2007

Merci beaucoup ça marche...en fait je me compliquais la vie..
Juste une question: quelle msgbox je dois mettre en cas de mauvaise saisie par l'utilisateur?
Par ailleurs, peut on mettre des CommonDialog sous VisualBasic Editor, et si oui, je n'arrive pa sà trouver l'objet...

Merci beaucoup
Moz
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Range("A" & Fiche + ligne).Select

C'est dans cette ligne qu'il faut remplacer Fiche (qui est le nom de ta textbox) par la valeur de ce qu'elle contien !
Genre val(Fiche.text)

(vérifier si sous VBA c'est bien .text et non .value... hein)...
Mais quid de ta variable ligne ? on ne la voit pas non plus !
Messages postés
47
Date d'inscription
vendredi 15 juin 2007
Statut
Membre
Dernière intervention
3 juillet 2007

sous tes conseils, j'ai juste enlevé le Dim Fiche as integer
et ça a suffit pour faire fonctionner l'applie (l'apppli permet d'aller extraire des données ciblés dans plusieurs fichiés excel afin de pouvoir les centraliser dans une seule)..

en tout cas, je vous remercie pour le temps que vous avez prix pour me repondre...

Moz
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Popur vérifier la saisie de l'utilisateur ?
La msgbox contenant le texte de ton choix ! (je te propose "ça va pas la tête ?")

L'essentiel est sans aucun doute de vérifier que sa saisie est cohérente ( regarde Isnumeric dans ton aide en ligne) et de quitter ta sub si elle ne l'est pas, en redonnant le Focus à ta Textbox ...
Mais il me semble qu'une autre vérification s'imose également : l'existence de la colonne correspondant à sa saisie...)

Mais tout celà reste du B.A.BA, même pour moi qui ne possède même pas VBA et n'y connais rien de rien !!!