lancement automatique d'une macro à l'ouverture d'un classeur excel

lancement automatique d'une macro à l'ouverture d'un classeur excel - VB/VBA/VBS - Programmation

Marsh Posté le 27-09-2007 à 14:04:28    

Bonjour
 
je cherche un moyen pour executer automatiquement une macro à l'ouverture d'un classeur excel (ASC01.xls) à partir d'une autre classeur (Fiches.xls)
 
j'ai essayer workbook open et auto open, mais ça ne marche pas.
 
je voudrais aussi que la macro s'effectue à la fermeture de ce même fichier, je pense que la programation est similaire, maispour le moment, je n'y arrive pas. tout ce que j'arrive à faire est le lancement de ma macro quand je lance directement et uniquement le classeur ciblé (asc01.xls)
 
merci de votre aide

Reply

Marsh Posté le 27-09-2007 à 14:04:28   

Reply

Marsh Posté le 27-09-2007 à 16:15:13    

L'événement Workbook_Open fonctionne très bien.
Qu'entends-tu par « ...mais ça ne marche pas. » ?

Reply

Marsh Posté le 27-09-2007 à 16:36:44    

mon fichier asc 01.xls est ouvert par un lien hypertexte depuis le classeur fiches.xls.
 
quand j'ouvre le fichier asc 01.xls en cliquant sur le lien, la macro ne s'effectue pas, de même quand je ferme asc01.xls
 
si vous voulez voir, je peux vous envoyer les classeurs.

Reply

Marsh Posté le 27-09-2007 à 17:05:09    

mets ton fichier sur cjoint par exemple

Reply

Marsh Posté le 27-09-2007 à 23:56:11    

voici le fichier fiches.xls
 
http://cjoint.com/?jBxY7ERPQv
 
 
le fichier asc est plus conséquent et donc zipper en .rar
 
http://cjoint.com/?jBx2FAMnSc
 
 
j'ai réécrit le vba sous word, c'est peut-être plus clair...
 
http://cjoint.com/?jBx4b0EAg8

Reply

Marsh Posté le 01-10-2007 à 02:40:59    

essaie de placer le code workbook_open et workbook_close dans l'objet ThisWorkbook et non dans une des feuilles ou un module, je pense que ça devrait fonctionner

Reply

Marsh Posté le 01-10-2007 à 22:08:21    

merci fragarch, mon probleme est résolu.
 
par contre j'en est un autre
 
je voudrais que la date du jour soit mise automatiquement en B2 si cette date n'est pas mise et si la case A2 est remplieet ce sur toute la colonne, j'ai essayé le prog suivant, mais ca ne marche pas
 
 
    For i = 2 To 1000
        If Sheets("cd" ).Range("A" & i).Value > 0 Then
            If Sheets("cd" ).Range("B" & i).Value = 0 Then
            today = Sheets("cd" ).Range("B" & i).Value
            End If
        End If
    Next i
 
merci du coup de main

Reply

Marsh Posté le 02-10-2007 à 11:12:45    

Je ne vois pas pourquoi tu utilises VBA pour faire ça.
Les formules Excel suffisent.
Les fonctions NB(), et LIGNE() pourront t'aider.

Reply

Marsh Posté le 02-10-2007 à 20:51:14    

je dois passer par une macro, c'est plus simple pour moi, comme cela tout est vérifié en même temps.
 
merci pour l'info comme même

Reply

Marsh Posté le 03-10-2007 à 00:04:02    

j'ai trouver et résolu le problème. maintenant, il ne m'en reste plus qu'un, comment je peux ouvrir un nouveau classeur défini par un lien hypertexte sous le classeur source à l'aide d'une macro????

Reply

Marsh Posté le 03-10-2007 à 00:04:02   

Reply

Marsh Posté le 22-10-2007 à 16:56:27    

Hello
 
Je remonte ce topic parce que j'ai un problème un peu similaire.
J'ai fait une macro qui donne une valeur à une cellule suivant la couleur de remplissage qu'on lui donne.
Manuellement elle s'exécute très bien, mais impossible de la faire s'exécuter automatiquement (à l'ouverture ou à la fermeture du fichier, peu importe)
 

Code :
  1. Sub Workbook_Open()
  2.     For Each Cell In Range("A1:DD65" )
  3.    
  4.     If Cell.Interior.ColorIndex = 8 Then
  5.         Cell.Value = 8
  6.         Cell.Font.ColorIndex = 8
  7.     End If
  8. [...]
  9. Next
  10.    
  11. End Sub


Où est la couillade ? :/


---------------
Lu et approuvé.
Reply

Marsh Posté le 22-10-2007 à 17:05:44    

Chez moi le code fonctionne nickel.
Peut être une histoire de paramétrage avec l'execution des macros.
Comment sais-tu qu'elle ne s'execute pas ?

Reply

Marsh Posté le 22-10-2007 à 17:21:58    

Ton objet Cell n'étant pas préfixé par la worksheet (ou le workbook me souviens plus), es-tu sûr que la feuille active est bien celle que tu crois ?
edit : dans le Open la feuille est déjà active ?


Message édité par tegu le 22-10-2007 à 17:22:47
Reply

Marsh Posté le 23-10-2007 à 08:51:01    

Ah yes, j'ai trouvé [:shay]
En fait c'est parce que j'avais fait ça dans un module, et non pas dans ThisWorkbook. Merci :o
 
Pendant que vous êtes chaud si je veux faire que ça s'exécute à chaque sauvegarde plutôt qu'à chaque ouverture, je dois remplacer Open par quoi ?


---------------
Lu et approuvé.
Reply

Marsh Posté le 23-10-2007 à 09:17:50    

par Workbook_BeforeSave. Voir aide en ligne pour le détail.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed