Bonjour,
J'ai besoin, pour faire un suivi, de remplir mensuellement 22 fichiers
différents.
Plusieurs personnes ont accès aux dossiers et je voudrais qu'à chaque
ouverture d'un fichier celui-ci soit enregistré sous un nom différent mais
programmé à l'avance (an + mois prochain).
J'ai écrit une macro dans "TOTO.doc" qui fait (ou plutôt qui devrait faire)
ceci mais je tombe sur un os.
A son ouverture le fichier "TOTO.doc" s'enregistre bien sous
"TOTO-2005-11.doc" mais je conserve à l'écran "TOTO.doc". Il n'est pas
possible de l'ouvrir par VBA ("le document est en cours d'utilisation...").
Si je l'ouvre en manuel, je constate qu'il est absolument vide. Donc je ne
peux pas enregistrer les données dans le nouveau document, dans aucun
cas...!
Qui connaît le coup bas?
Voilà ce que j'ai osé écrire...
Private Sub Document_Open()
Dim a As Variant
Dim Chemin As String
Dim Erreur As Variant
Dim fs As Variant
Dim Mes1 As String
Dim Nom As String
Dim NewNom As String
Dim Test As String
' Initialisation
Chemin = ActiveDocument.Path
Nom = ActiveDocument.Name
' Analyse du type de document ouvert (Modèle (TOTO.doc) ou Fils
(TOTO-2005-10.doc))
'Nom = "Modèle Echéance-2005-01.doc" ' Pour faire une simulation
Test = Right(Left(Nom, Len(Nom) - 4), 2)
' Créer le nouveau nom
If IsNumeric(Right(Left(Nom, Len(Nom) - 4), 2)) Then
NewNom = Left(Nom, Len(Nom) - 12) & "-" & Year(Date) & "-" &
Month(Date) + 1
Else
NewNom = Left(Nom, Len(Nom) - 4) & "-" & Year(Date) & "-" &
Month(Date) + 1
End If
Refaire:
Mes1 = InputBox("Si vous souhaitez conserver la nouvelle version
document que vous venez d'ouvrir, donnez-lui son nouveau nom dès
maintenant.", _
"Archivage d'un nouveau document", NewNom)
If Mes1 = "" Then GoTo Finir
' Test d'existence...
Set fs = CreateObject("Scripting.FileSystemObject")
On Error Resume Next
Set a = fs.CreateTextFile(Chemin & "/" & Mes1 & ".doc", True)
Erreur = Err
Select Case Erreur
Case 0 ' Tout va bien
Case 70 ' Le fichier existe déjà
Mess = MsgBox("Le document " & Mes1 & " existe déjà.", vbOKOnly,
"Archivage d'un nouveau document")
GoTo Refaire
Case Else ' A analyser
Mess = MsgBox("Erreur inattendue ( " & Erreur & " ).", vbOKOnly,
"Archivage d'un nouveau document")
GoTo Finir
End Select
On Error GoTo 0
ActiveDocument.SaveAs FileName:=Chemin & "/" & Mes1,
FileFormat:=wdFormatDocument
' Documents("Mes1").Activate
' ActiveDocument.Save
' Documents.Open FileName:=Chemin & "/" & Mes1 & ".doc"
' Mise à jour de la date automatique
' If ActiveDocument.Fields.Count >= 1 Then
' With ActiveDocument.Fields(1)
' .Update
' .ShowCodes = False
' End With
' End If
Finir:
End Sub
essaie de créer le même ! Chez moi ça plante erreur 5356 Fichier déjà ouvert. Je me demande comment tu arrives à faire autre chose.
Au lieu de créate machin essaie donc avec dir, hachement plus simple, pas de code erreur à gérer. D'ailleurs si tu fais des erreurs à répétitions sans resume il peut y avoir de la casse.
Bonne nuit blanche :-D
-- A+
Bonjour à tous !
Mon tout premier message contient la macro complète... enfin... celle qui
aurait dû fonctionner!
Bon tu sais que la perte de points sur le permis de macro est doubles
les jours fériés ?
Il manque un "option explicit" en début de ton module.
Ca déjà ça coûte cher :-)
Un fichier à 0 octet c'est même pas un fichier word, donc il y a
anguille sous roche et là il faut un permis de pêcher.
Set a = fs.CreateTextFile(Chemin & "/" & Mes1 & ".doc", True)
ça fait quoi, sinon créer un fichier vide qui a pour nom celui que tu
veux créer ?
essaie de créer le même ! Chez moi ça plante erreur 5356
Fichier déjà ouvert.
Je me demande comment tu arrives à faire autre chose.
Au lieu de créate machin essaie donc avec dir, hachement plus simple,
pas de code erreur à gérer. D'ailleurs si tu fais des erreurs à
répétitions sans resume il peut y avoir de la casse.
essaie de créer le même ! Chez moi ça plante erreur 5356 Fichier déjà ouvert. Je me demande comment tu arrives à faire autre chose.
Au lieu de créate machin essaie donc avec dir, hachement plus simple, pas de code erreur à gérer. D'ailleurs si tu fais des erreurs à répétitions sans resume il peut y avoir de la casse.
Bonne nuit blanche :-D
-- A+
Michel RAMEAUX
Bonjour (Nieme) Comme je n'avais jamis programmé la moindre ligne avec Word, J'ai piqué cette idée dans une réponse en me disant que si s'est dans le journal c'est vrai... Mais depuis j'ai décortiqué chaque ligne pour voir ce que cela faisait et j'ai compris. Il ne faut pas créer le fichier pour voir si c'est possible, mais tenter de l'ouvrir avec Open et compter les billes, gérer les erreurs. Et ça marche !
Un grand merci à tous! Une dernière question : Existe-t-il une liste des numéros d'erreurs avec la définition idoine?
"Geo" a écrit dans le message news:
Bonjour à tous !
Mon tout premier message contient la macro complète... enfin... celle qui
aurait dû fonctionner!
Bon tu sais que la perte de points sur le permis de macro est doubles les jours fériés ?
Il manque un "option explicit" en début de ton module. Ca déjà ça coûte cher :-)
Un fichier à 0 octet c'est même pas un fichier word, donc il y a anguille sous roche et là il faut un permis de pêcher.
Set a = fs.CreateTextFile(Chemin & "/" & Mes1 & ".doc", True) ça fait quoi, sinon créer un fichier vide qui a pour nom celui que tu veux créer ?
essaie de créer le même ! Chez moi ça plante erreur 5356 Fichier déjà ouvert. Je me demande comment tu arrives à faire autre chose.
Au lieu de créate machin essaie donc avec dir, hachement plus simple, pas de code erreur à gérer. D'ailleurs si tu fais des erreurs à répétitions sans resume il peut y avoir de la casse.
Bonne nuit blanche :-D
-- A+
Bonjour (Nieme)
Comme je n'avais jamis programmé la moindre ligne avec Word, J'ai piqué
cette idée dans une réponse en me disant que si s'est dans le journal c'est
vrai...
Mais depuis j'ai décortiqué chaque ligne pour voir ce que cela faisait et
j'ai compris.
Il ne faut pas créer le fichier pour voir si c'est possible, mais tenter de
l'ouvrir avec Open et compter les billes, gérer les erreurs.
Et ça marche !
Un grand merci à tous!
Une dernière question : Existe-t-il une liste des numéros d'erreurs avec la
définition idoine?
"Geo" <Geo@sans.pub> a écrit dans le message news:
mn.0c457d5b560c6874.41568@sans.pub...
Bonjour à tous !
Mon tout premier message contient la macro complète... enfin... celle
qui
aurait dû fonctionner!
Bon tu sais que la perte de points sur le permis de macro est doubles
les jours fériés ?
Il manque un "option explicit" en début de ton module.
Ca déjà ça coûte cher :-)
Un fichier à 0 octet c'est même pas un fichier word, donc il y a
anguille sous roche et là il faut un permis de pêcher.
Set a = fs.CreateTextFile(Chemin & "/" & Mes1 & ".doc", True)
ça fait quoi, sinon créer un fichier vide qui a pour nom celui que tu
veux créer ?
essaie de créer le même ! Chez moi ça plante erreur 5356
Fichier déjà ouvert.
Je me demande comment tu arrives à faire autre chose.
Au lieu de créate machin essaie donc avec dir, hachement plus simple,
pas de code erreur à gérer. D'ailleurs si tu fais des erreurs à
répétitions sans resume il peut y avoir de la casse.
Bonjour (Nieme) Comme je n'avais jamis programmé la moindre ligne avec Word, J'ai piqué cette idée dans une réponse en me disant que si s'est dans le journal c'est vrai... Mais depuis j'ai décortiqué chaque ligne pour voir ce que cela faisait et j'ai compris. Il ne faut pas créer le fichier pour voir si c'est possible, mais tenter de l'ouvrir avec Open et compter les billes, gérer les erreurs. Et ça marche !
Un grand merci à tous! Une dernière question : Existe-t-il une liste des numéros d'erreurs avec la définition idoine?
"Geo" a écrit dans le message news:
Bonjour à tous !
Mon tout premier message contient la macro complète... enfin... celle qui
aurait dû fonctionner!
Bon tu sais que la perte de points sur le permis de macro est doubles les jours fériés ?
Il manque un "option explicit" en début de ton module. Ca déjà ça coûte cher :-)
Un fichier à 0 octet c'est même pas un fichier word, donc il y a anguille sous roche et là il faut un permis de pêcher.
Set a = fs.CreateTextFile(Chemin & "/" & Mes1 & ".doc", True) ça fait quoi, sinon créer un fichier vide qui a pour nom celui que tu veux créer ?
essaie de créer le même ! Chez moi ça plante erreur 5356 Fichier déjà ouvert. Je me demande comment tu arrives à faire autre chose.
Au lieu de créate machin essaie donc avec dir, hachement plus simple, pas de code erreur à gérer. D'ailleurs si tu fais des erreurs à répétitions sans resume il peut y avoir de la casse.
Bonne nuit blanche :-D
-- A+
Anacoluthe
Bonjour !
'Michel RAMEAUX' nous a écrit ...
Un grand merci à tous! Une dernière question : Existe-t-il une liste des numéros d'erreurs avec la définition idoine?
Il y a bien un fichier Excel des codes d'erreurs VBA dans l'ORK (Office Ressource Kit) mais j'avoue ne jamais l'avoir utilisé dans la mesure où les erreurs sont suffisamment documentées à la compilation, à l'exécution, dans l'Aide ou dans les ressources web du support Microsoft...
Anacoluthe « Les erreurs sont les portes de la découverte. » - James JOYCE
Bonjour !
'Michel RAMEAUX' nous a écrit ...
Un grand merci à tous!
Une dernière question : Existe-t-il une liste des numéros d'erreurs avec la
définition idoine?
Il y a bien un fichier Excel des codes d'erreurs VBA dans l'ORK
(Office Ressource Kit) mais j'avoue ne jamais l'avoir utilisé
dans la mesure où les erreurs sont suffisamment documentées
à la compilation, à l'exécution, dans l'Aide ou dans les
ressources web du support Microsoft...
Anacoluthe
« Les erreurs sont les portes de la découverte. »
- James JOYCE
Un grand merci à tous! Une dernière question : Existe-t-il une liste des numéros d'erreurs avec la définition idoine?
Il y a bien un fichier Excel des codes d'erreurs VBA dans l'ORK (Office Ressource Kit) mais j'avoue ne jamais l'avoir utilisé dans la mesure où les erreurs sont suffisamment documentées à la compilation, à l'exécution, dans l'Aide ou dans les ressources web du support Microsoft...
Anacoluthe « Les erreurs sont les portes de la découverte. » - James JOYCE
Geo
Il ne faut pas créer le fichier pour voir si c'est possible, mais tenter de l'ouvrir avec Open et compter les billes, gérer les erreurs.
Je me répète, mais la commande dir me parait plus simple à utiliser, il n'y a pas de gestion d'erreur
Et ça marche !
Bon, je dis plus rien. Bonne soirée
-- A+
Il ne faut pas créer le fichier pour voir si c'est possible, mais tenter de
l'ouvrir avec Open et compter les billes, gérer les erreurs.
Je me répète, mais la commande dir me parait plus simple à utiliser, il
n'y a pas de gestion d'erreur