Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[VBA - Excel 2010] - Métaphysique

4 réponses
Avatar
Péhemme
Bonjour à Tous,

Je profite d'avoir une vraie question (objet d'un message séparé) pour, tout
d'abord, poser une question de métaphysique :-)

À l'aide d'une procédure dans mon ficher de départ "An" je crée un fichier
"An + 1".
Le fichier "An" se ferme ; j'ai mon fichier "An + 1" ouvert sur mon
bureau...
Tout fonctionne parfaitement bien.
Cependant, et pour ma bonne compréhension :
cette procédure se termine par un message d'avertissement donnant certaines
instructions à l'utilisateur.
D'où vient cette msgbox ?
Je m'explique :
. vient-elle de la procédure du fichier "An" qui est fermé lorsque la msgbox
apparait ?
. ou vient-elle de cette même procédure qui a été copiée avec la création du
fichier "An +1" ?
En d'autres termes :
. une procédure peut-elle fonctionner même si le fichier est fermé ?
. ou peut-elle se poursuivre dans un fichier nouvellement crée ?

Désolé pour cette question triviale, mais comme je ne crois pas à la magie
je me retourne vers les experts que vous êtes.

Bien amicalement
Michel

4 réponses

Avatar
Geo
Bonjour
À l'aide d'une procédure dans mon ficher de départ "An" je crée un fichier
"An + 1".

Il manque beaucoup d'éléments pour essayer un début de réponse :
Cette "procédure" est en vba ? Elle est où ? dans quel fichier ?
C'est une procédure vba qui ouvre An.xlsm et le recopie en
AnPlusUn.xlsm ?
Le fichier "An" se ferme

Il se ferme pas tout seul ?
Avatar
Péhemme
Bonjour Geo,
Cette "procédure" est en vba ?

Oui.
Elle est où ? dans quel fichier ?

Dans module du fichier source (An.xlsm) mais qui naturellement se recopie
dans le nouveau fichier.
C'est une procédure vba qui ouvre An.xlsm et le recopie en AnPlusUn.xlsm ?

J'ouvre le fichier de l'année N.
Ma procédure nettoie, supprime, met en forme ce fichier de l'année N de
façon à ce qu'il soit utilisable pour l'année N+1.
Ce fichier, en l'état à cet instant, est sauvegardé sous le nom de l'année
N+1 ; ainsi le fichier de l'année N se ferme sans être sauvegardé afin de
conserver ses informations.
Le fichier "An" se ferme

Il se ferme pas tout seul ?

Ben, si -voir plus haut-
:-)
Si cela peut aider voici les dernières lignes de mon code :
'IV - Sauvegarde du nouveau fichier
NomFichier = NouvelleAnnée & " - Rem de Chèques.xlsm"
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Chemin & NomFichier
Application.DisplayAlerts = True
'V - Dernière information avant première utilisation du nouveau fichier
MsgBox "Il est maintenant recommandé de :" & vbNewLine & _
vbTab & "1°) Fermer et Sauvegarder le fichier en" & vbNewLine &
_
vbTab & "utilisant la 'croix de fermeture' dans le ruban" &
vbNewLine & _
vbTab & "2°) déplacer le fichier dans le dossier de travail" &
vbNewLine & _
vbTab & "de l'année concernée" & vbNewLine & _
vbTab & "3°) vérifier que les 2 icones externes sont présentes"
& vbNewLine & _
vbTab & "dans le nouveau dossier de travail", _
vbOKOnly + vbInformation, _
"Fin des Travaux Préparatoires"
End Sub
Ma question 'métaphysique' concerne le point V.
Cette fin de procédure est exécutée au départ du fichier d'origine (déjà
refermé) ou est-ce ce nouveau fichier qui a pris le relais (puisque, en
quelque sorte, c'est le fichier d'origine qui ne fait que changer de nom) ?
Voili, voilou, maintenant c'est toi qui a le problème.
:-))
Merci d'avance
Bien amicalement
Michel
"Geo" a écrit dans le message de groupe de discussion :
Bonjour
À l'aide d'une procédure dans mon ficher de départ "An" je crée un fichier
"An + 1".

Il manque beaucoup d'éléments pour essayer un début de réponse :
Cette "procédure" est en vba ? Elle est où ? dans quel fichier ?
C'est une procédure vba qui ouvre An.xlsm et le recopie en
AnPlusUn.xlsm ?
Le fichier "An" se ferme

Il se ferme pas tout seul ?
Avatar
MichD
Bonjour,
A ) Tu as pensé à créer un modèle? Nul besoin alors d'avoir à nettoyer le fichier pour en créer
un nouveau... le modèle est là pour cela.
B ) Si le fichier "Michd.xlsm" est ouvert et que je demande par macro d'enregistrer ce fichier
sous un autre nom "MichD1.xlsm", je n'ai toujours qu'un seul fichier d'ouvert et c'est le
fichier "MichD1.xlsm". L'autre fichier existe que sur ton disque dur, mais il n'est plus en
mémoire vive. Le fait de modifier le nom d'un fichier par macro ne modifie en rien la suite de
l'exécution de la macro puisque le fichier sous la nouvelle appellation est toujours ouvert et
n'a jamais été fermé. L'ancien fichier "MichD.xlsm" et le nouveau fichier "MichD1.xlsm"
représentent le même fichier... c'est seulement le nom qui a été modifié. Le contenu de
l'ancien fichier "MichD.xlsm" sera constitué de ce qu'il contenait lors de sa dernière
sauvegarde. Les procédures VBA n'ont pas été modifiées et ne sont pas touchées par ce type de
manipulation.
MichD
Avatar
Péhemme
Bonjour Denis,
Pour le A) : excellente idée, mais pour certains des fichiers je dois garder
la dernière page qui me sert de point de départ pour l'année suivante.
J'ai donc, en son temps, choisi de rester homogène dans le traitement de
tous les fichiers...
Pour le point B) : C'est ce que je pensais de façon subjective sans en être
certain. C'est la raison pour laquelle je souhaitais avoir l'avis de
techniciens avisés.
Merci à Tous de vos réponses.
Bien amicalement
Michel
"MichD" a écrit dans le message de groupe de discussion :
oi5s9i$1rn3$
Bonjour,
A ) Tu as pensé à créer un modèle? Nul besoin alors d'avoir à nettoyer le
fichier pour en créer
un nouveau... le modèle est là pour cela.
B ) Si le fichier "Michd.xlsm" est ouvert et que je demande par macro
d'enregistrer ce fichier
sous un autre nom "MichD1.xlsm", je n'ai toujours qu'un seul fichier
d'ouvert et c'est le
fichier "MichD1.xlsm". L'autre fichier existe que sur ton disque dur, mais
il n'est plus en
mémoire vive. Le fait de modifier le nom d'un fichier par macro ne modifie
en rien la suite de
l'exécution de la macro puisque le fichier sous la nouvelle appellation est
toujours ouvert et
n'a jamais été fermé. L'ancien fichier "MichD.xlsm" et le nouveau fichier
"MichD1.xlsm"
représentent le même fichier... c'est seulement le nom qui a été modifié. Le
contenu de
l'ancien fichier "MichD.xlsm" sera constitué de ce qu'il contenait lors de
sa dernière
sauvegarde. Les procédures VBA n'ont pas été modifiées et ne sont pas
touchées par ce type de
manipulation.
MichD