renaud97434
Messages postés31Date d'inscriptionlundi 26 novembre 2007StatutMembreDernière intervention26 août 2008
-
28 nov. 2007 à 09:29
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 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...
renaud97434
Messages postés31Date d'inscriptionlundi 26 novembre 2007StatutMembreDernière intervention26 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.
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 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...
renaud97434
Messages postés31Date d'inscriptionlundi 26 novembre 2007StatutMembreDernière intervention26 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 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.