Nous sommes actuellement le 04 Juil 2026, 21:51

Le fuseau horaire est UTC-5 heures [Heure d’été]




Publier un nouveau sujet Répondre au sujet  [ 3 message(s) ] 
Auteur Message
MessagePublié: 08 Fév 2006, 18:03 
Hors-ligne
A réponse à tout!
A réponse à tout!
Avatar de l’utilisateur

Inscription : 07 Jan 2002, 02:19
Message(s) : 3490
Localisation : Québec, QC
Hello,

J'ai un petit problème avec une petite macro sous Excel. Étant donné que la méthode ActiveWorkbook.SaveCopyAs ne permet pas de sauvegarder dans le format texte tabulation, je dois utiliser la méthode SaveAs.

Le problème est que si je fais ça et que je ferme.. je perds les spécificités Excel (calculs, macros..). Normal mais c'est pas ce que je souhaite.

Donc ce que je fais c'est que je sauvegarde mes modifs au format Excel, puis je save as en format texte. Ensuite je ferme le fichier au format texte que je ne veux pas voir à l'écran et j'ouvre à nouveau mon fichier au format Excel original.

Le problème se situe là. J'arrive à ferme mon classeur, mais je n'arrive pas à le réouvrir. Mon code ressemble à :

Code :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  If Redemarre = True Then
    MsgBox EnCours
    Workbooks.Open Filename:=EnCours
  End If
End Sub


Je vois bien mon MsgBox contenant le nom de mon fichier à ouvrir, mais le classeur ne s'ouvre jamais :(.

Vous voyez le problème ? Ou à la limite une aure façon de faire pour parvenir au résultat.

Merci

_________________
Homer


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 09 Fév 2006, 21:57 
Hors-ligne
Nouvel adepte
Nouvel adepte
Avatar de l’utilisateur

Inscription : 15 Jan 2002, 21:46
Message(s) : 81
Localisation : Laval
Le problème avec ta macro est qu'elle s'arrête dès que le fichier est fermé. Si tu veux garder le fichier ouvert il vaudrait mieux donc ne pas utiliser une procédure de type Before_Close.

Tu pourrais utiliser une macro de type Before_Save ou bien juste une macro régulière que tu déclenches au moment désiré.

Ci-joint le code qui ferait la job
1- Identifie le nom de ton fichier et le path
2- Fait une copie de la feuille dans un nouveau fichier
3- Sauvegarde le nouveau fichier en format txt avec le même nom +.txt
4- Ferme le nouveau fichier
5- Revient au fichier de base automatiquement

Code :
Sub Macro1()

    Application.DisplayAlerts = False
        vFichier = ActiveWorkbook.Name
        vPath = ActiveWorkbook.Path
        vFileName = vPath & "\" & vFichier & ".txt"
       
        vSheet = ActiveSheet.Name
        Sheets(vSheet).Copy
       
        ActiveWorkbook.SaveAs Filename:=vFileName, FileFormat:=xlText _
            , CreateBackup:=False
        ActiveWindow.Close
    Application.DisplayAlerts = True
End Sub


Salutations
Eric


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 10 Fév 2006, 09:41 
Hors-ligne
A réponse à tout!
A réponse à tout!
Avatar de l’utilisateur

Inscription : 07 Jan 2002, 02:19
Message(s) : 3490
Localisation : Québec, QC
Ça marche :)

Merci !

_________________
Homer


Haut
 Profil  
Répondre en citant  
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 3 message(s) ] 

Le fuseau horaire est UTC-5 heures [Heure d’été]


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 0 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum

Recherche de:
Aller vers :  
cron
Propulsé par phpBB® Forum Software © phpBB Group
Traduction et support en françaisHébergement de site