Ouverture d'un fichier

renaud97434 Messages postés 31 Date d'inscription lundi 26 novembre 2007 Statut Membre Dernière intervention 26 août 2008 - 28 nov. 2007 à 09:29
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 29 nov. 2007 à 11:54
bonjour.

je suis débutant.

j'ai cherché sur le forum mais pas de réponse.

je suis dans le code de mon bouton de commande:
1/je veux cacher le userform
2/ensuite ouvrir le fichier suivicm
3/lancer la macro qui s'appelle lignes
4/montrer le resultat de ma macro qui est dans la feuille recap
5/fermer l'userform

voila le code :

Private Sub CommandButton1_Click()
UserForm.Hide
xls.Workbooks.Open Filename:="C:\Documents and Settings\davezac\Bureau\suivicm.xls"
Call lignes
Sheets("recap").Show
unload userform

rien ne marche et j'ai un message d'erreur sur xls.workbook.openfinename...

pouvez vous m'aider ?

5 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
28 nov. 2007 à 11:41
Qu'est-ce que "xls" dans
xls.Workbooks.Open ?

Est-ce que tu programmes sous Excel ou sous VB6 ?

Et pourquoi vouloir ouvrir un fichier #2 et activer sa macro plutôt que de faire la même macro à partir du fichier #1 ?

MPi²
0
renaud97434 Messages postés 31 Date d'inscription lundi 26 novembre 2007 Statut Membre Dernière intervention 26 août 2008
28 nov. 2007 à 12:10
je programme sur excel vba. ok pas de xls alors.


 


en fait j'ai un fichier sur lequel est stocké mon userform.
je souhaite que le bouton command de mon userform vienne ouvrir un autre fichier sur lequel la macro s'execute.


 
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
28 nov. 2007 à 23:52
Je répète ma question
Pourquoi vouloir ouvrir un fichier et rouler "sa" macro quand tu pourrais la rouler à partir de ton fichier original ?
C'est-à-dire que tu crées une maco identique à celle du 2e fichier dans le 1er fichier ...
Tu n'as qu'à spécifier le nom du classeur et de sa feuille avant les commandes.

Autrement, tu pourrais démarrer la macro du 2e fichier à l'ouverture de celui-ci. À ce moment-là, tu n'aurais qu'à ouvrir le fichier pour que la macro démarre...

MPi²
0
renaud97434 Messages postés 31 Date d'inscription lundi 26 novembre 2007 Statut Membre Dernière intervention 26 août 2008
29 nov. 2007 à 06:49
bonjour, j'ai copié ma macro dans l'autre fichier.

voila le code:

Sub lignes()
Workbooks("suivcm").Activate
Dim plage As Range
Dim i  As Long
Dim j As Long
Dim s As Double
Dim t As Double
Dim u As Double
Dim v As Double
Dim w As Double
Dim x As Double
Dim y As Double
Dim z As Double
Dim a As Double
Dim b As Double
Dim c As Double
Dim d As Double
Dim e As Double
Dim f As Double
Dim g As Double
Dim h As Double
'initialisation des variables
i = 0
j = 0
s = 0
t = 0
u = 0
v = 0
w = 0
x = 0
y = 0
z = 0
a = 0
b = 0
c = 0
d = 0
e = 0
f = 0
g = 0
h = 0


Do While Sheets("extract").Cells(i + 2, 4) <> ""
i = i + 1
If Sheets("recap").Cells(5, 9) <= Sheets("extract").Cells(i + 1, 4) And Sheets("extract").Cells(i + 2, 4) <= Sheets("recap").Cells(6, 9) And Sheets("extract").Cells(i + 1, 5) = Sheets("recap").Cells(2, 9) Then


j = j + 1


s = s + Sheets("extract").Cells(i + 1, 18).Value
t = t + Sheets("extract").Cells(i + 1, 9).Value
u = u + Sheets("extract").Cells(i + 1, 10).Value
v = v + Sheets("extract").Cells(i + 1, 19).Value
w = w + Sheets("extract").Cells(i + 1, 20).Value
x = x + Sheets("extract").Cells(i + 1, 21).Value
y = y + Sheets("extract").Cells(i + 1, 11).Value
z = z + Sheets("extract").Cells(i + 1, 12).Value
a = a + Sheets("extract").Cells(i + 1, 13).Value
b = b + Sheets("extract").Cells(i + 1, 14).Value
c = c + Sheets("extract").Cells(i + 1, 17).Value
d = d + Sheets("extract").Cells(i + 1, 3).Value
e = e + Sheets("extract").Cells(i + 1, 6).Value
f = f + Sheets("extract").Cells(i + 1, 7).Value
g = g + Sheets("extract").Cells(i + 1, 8).Value
h = h + Sheets("extract").Cells(i + 1, 15).Value
Else
j = j
s = s
t = t
u = u
v = v
w = w
x = x
y = y
z = z
a = a
b = b
c = c
d = d
e = e
f = f
g = g
h = h
End If
Loop
Sheets("recap").Cells(14, 13).Value = i
Sheets("recap").Cells(15, 13).Value = j
Sheets("recap").Cells(17, 13).Value = s
Sheets("recap").Cells(18, 13).Value = t
Sheets("recap").Cells(19, 13).Value = u
Sheets("recap").Cells(20, 13).Value = v
Sheets("recap").Cells(21, 13).Value = w
Sheets("recap").Cells(22, 13).Value = x
Sheets("recap").Cells(23, 13).Value = y
Sheets("recap").Cells(24, 13).Value = z
Sheets("recap").Cells(25, 13).Value = a
Sheets("recap").Cells(26, 13).Value = b
Sheets("recap").Cells(27, 13).Value = c
Sheets("recap").Cells(28, 13).Value = d
Sheets("recap").Cells(29, 13).Value = e
Sheets("recap").Cells(30, 13).Value = f
Sheets("recap").Cells(31, 13).Value = g
Sheets("recap").Cells(32, 13).Value = h


End Sub

workbooks("suivcm").activate fait erreur.
dois je ouvrir le workbook  avec open?
dois je spécifier le chemin complet?


je ne sais pas faire
0

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

Posez votre question
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
29 nov. 2007 à 11:54
Tu pourrais commencer par faire du ménage dans ton code ...
En début de procédure, les variables déclarées dans cette procédure sont toutes initialisées à 0 ou "" selon le type. Donc, inutile de les redéclarer à 0 comme tu le fais.

Aussi, tu mets
j = j
s = s
... etc
Ça ne sert absolument à rien

Finalement, utilise l'indentation dans ton code. C'est plus facile à lire, et pour toi et pour nous.

MPi²
0
Rejoignez-nous