qu'est ce qui cloche avec ma macro - VB/VBA/VBS - Programmation
Marsh Posté le 06-07-2004 à 14:20:19
Question de base...As-tu les droits en ecriture (ça expliquerait le fichier pas créé et les macros pas sauvegardées)
Sinon:
1: Essaie qq chose comme ça. Après, on verra pour l'ouverture du fichier. (je ne suis pas sûr que le pb. initial soit là)
Code :
|
Marsh Posté le 06-07-2004 à 14:30:24
Une application hôte peut désactiver ou activer des macros. Les causes de cette erreur et les solutions pour la corriger sont les suivantes :
· Vous avez ouvert le document avec l'option Macros Désactivées.
Fermez le document, puis ouvrez-le de nouveau en activant l'option Activer les Macros.
Marsh Posté le 06-07-2004 à 14:36:47
JiHemAir a écrit : Une application hôte peut désactiver ou activer des macros. Les causes de cette erreur et les solutions pour la corriger sont les suivantes : |
tout d'abord merci beaucoup pour ton aide
je vais tout refaire par rapport a ton exemple qui marche niquel.
sinon , c'est possible de crée le fichier dans le repertoir courrant plutot que dans c:\ ?
et aussi, y a moyen de faire l'affectation en meme temps que la comparaison:
Do While objSheet.Range("B" & i).Value <> "" ( pour optimiser le truc ?)
ps: le prob des sauvegarde est résolu, j'executait les macros a partir d'un fichier csv
Marsh Posté le 06-07-2004 à 14:46:02
Citation : sinon , c'est possible de crée le fichier dans le repertoir courrant plutot que dans c:\ ? |
Open CurDir & "\request1.TXT" For Output As #1 pour travailler dans le rep. courant.
Citation : et aussi, y a moyen de faire l'affectation en meme temps que la comparaison: |
Nan Il faut tester d'abord et affecter après.
Marsh Posté le 06-07-2004 à 15:04:02
a ma grande surprise tout les fichers etait crée dans mes docs .
CurDir retourne
Citation : C:\Documents and Settings\jerry\Mes documents |
alors que le fichier xls se trouve a :
Citation : C:\Documents and Settings\jerry\Bureau\macros |
enfin c'est pas tres grave.Merci encore
Marsh Posté le 06-07-2004 à 15:47:05
derniere chose, comment tu fait pour les distribuer tes macros?
on recevra un fichier excel tout les mois et il faudrai executer clele que j'ai ecrit sur ce fichier, c'est quoi le moyen le plus simple pour ne pas avoir a faire 50 manipulations?
surtout que ce sera pas a moi de les faire...
Merci
Marsh Posté le 06-07-2004 à 16:01:39
Le mieux, c'est d'ecrire cette macro dans un fichier qui ne contient qu'elle, avec une seule feuille et un bouton dessus pour la lancer.
Quand tu reçois le fichier mensuel, tu l'ouvres en même temps que celui qui contient le bouton. Avec une petite gymnastique dans la macro pour savoir le nom du workbook qui n'est pas celui de la macro, tu dois pouvoir t'en tirer.
Marsh Posté le 06-07-2004 à 16:04:49
Le premier Close #1
C'est pas plutôt un Free #1 que tu veux faire
Marsh Posté le 06-07-2004 à 16:16:11
JiHemAir a écrit : Le mieux, c'est d'ecrire cette macro dans un fichier qui ne contient qu'elle, avec une seule feuille et un bouton dessus pour la lancer. |
quand tu parle de feuille, c'est la feuille de calcul ou un form VB ?
je pense que tu parle de la feuille de calcul mais comment tu met ce bouton ?
sinon a chaque ouverture de fichier ca crée une nouvelle instance d'excel donc je sais pas si ca marchera mais je testerai qd ce sera ok
Marsh Posté le 06-07-2004 à 16:29:47
Code :
|
Oui, c'est sur la feuille de calcul que je met le bouton.
Citation : sinon a chaque ouverture de fichier ca crée une nouvelle instance d'excel donc je sais pas si ca marchera mais je testerai qd ce sera ok |
Non. Tu n'as qu'une instance d'Excel, mais plusieurs WorkBooks. La preuve, ouvre plusieurs fichiers Excel et dans le module ThisWorkbook de l'un d'eux, colle ce code:
Code :
|
Tu verras qu'il liste tous les fichiers(classeurs) ouverts. A l'aide des objet Workbook, tu peux acceder a chacun (ainsi qu'à leur contenu) individuellement.
Marsh Posté le 06-07-2004 à 14:05:11
hello
la voici:
Sub Macro2()
Dim mail, request, CurrRow, LastRow
Close #1
campagneID = InputBox("Campagne ID" )
Open "request" & campagneID & ".TXT" For Output As #1
LastRow = Application.CountA(ActiveSheet.Range("A:A" ))
For Each Cell In Range("A1:A" & LastRow)
mail = Cell.Value
Print #1, mail
Next Cell
Close #1
MsgBox "Done"
End Sub
le fichier n'est pas crée ca c'est le probleme de base.
le 2em c'est pourquoi ce fichu excel (version 2002 ) a effacé mes macros lorsque je l'ai fermé sachant que je sauvegardait a chaque modification
y'a un espoir de les retrouver ?
merci