Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1634 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  qu'est ce qui cloche avec ma macro

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

qu'est ce qui cloche avec ma macro

n°788043
veryfree
Posté le 06-07-2004 à 14:05:11  profilanswer
 

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 :(

mood
Publicité
Posté le 06-07-2004 à 14:05:11  profilanswer
 

n°788066
JihemAir
Je sais pas
Posté le 06-07-2004 à 14:20:19  profilanswer
 

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 :
  1. Sub Macro2()
  2. Dim objSheet As Worksheet
  3. Dim objCell As Range
  4. Dim i As Integer
  5.     Reset
  6.     ' campagneID = InputBox("Campagne ID" )
  7.    
  8.     Open "c:\mes documents\request1.TXT" For Output As #1
  9.     Set objSheet = ThisWorkbook.Worksheets("Feuil1" )
  10.     i = 1
  11.     Do While objSheet.Range("A" & i).Value <> ""
  12.         Print #1, objSheet.Range("A" & i).Value
  13.         i = i + 1
  14.     Loop
  15.     Close #1
  16.     MsgBox "Done"
  17. End Sub


 

n°788082
JihemAir
Je sais pas
Posté le 06-07-2004 à 14:30:24  profilanswer
 

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.
 

n°788088
veryfree
Posté le 06-07-2004 à 14:36:47  profilanswer
 

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 :  
 
· 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.


 
tout d'abord merci beaucoup pour ton aide :jap:
 
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 :D  ?)  
 
ps: le prob des sauvegarde est résolu, j'executait les macros a partir d'un fichier csv :/


Message édité par veryfree le 06-07-2004 à 14:39:05
n°788102
JihemAir
Je sais pas
Posté le 06-07-2004 à 14:46:02  profilanswer
 

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.  :wahoo:  
 
 

Citation :

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 :D  ?)

Nan  :cry:  Il faut tester d'abord et affecter après.
 

n°788117
veryfree
Posté le 06-07-2004 à 15:04:02  profilanswer
 

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
 
 :hello:


Message édité par veryfree le 06-07-2004 à 15:04:39
n°788173
veryfree
Posté le 06-07-2004 à 15:47:05  profilanswer
 

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  

n°788211
JihemAir
Je sais pas
Posté le 06-07-2004 à 16:01:39  profilanswer
 

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.

n°788221
Arjuna
Aircraft Ident.: F-MBSD
Posté le 06-07-2004 à 16:04:49  profilanswer
 

Le premier Close #1
 
C'est pas plutôt un Free #1 que tu veux faire :??:

n°788251
veryfree
Posté le 06-07-2004 à 16:16:11  profilanswer
 

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 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.


 
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 :)

mood
Publicité
Posté le 06-07-2004 à 16:16:11  profilanswer
 

n°788270
JihemAir
Je sais pas
Posté le 06-07-2004 à 16:29:47  profilanswer
 


Code :
  1. je pense que tu parle de la feuille de calcul mais comment tu met ce bouton ?

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 :
  1. Sub toto()
  2. Dim objWb As Workbook
  3.     For Each objWb In Application.Workbooks
  4.         Debug.Print objWb.Name
  5.     Next
  6. End Sub

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.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  qu'est ce qui cloche avec ma macro

 

Sujets relatifs
Besoin d aide pour une macro excel / VBA svp[OOo/Macro] - Impossible de lire un fichier INI
Petit pb simple de macro excel[VBA] Lancement automatique d'une macro lors d'une modif
une macro dédoublonnage???[VB] macro pour imprimer une page sur powerpoint
Macro Excel à la con....Lancer une macro excel depuis un batch
Lancer Macro access depuis excel[VBA Excel] Lien hypertext + macro
Plus de sujets relatifs à : qu'est ce qui cloche avec ma macro


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR