Save as Filename
Bonjour à tous et merci de votre précieuse aide potentielle.
Sur Ecel 2010, J’ai 4 fichiers Excel.xlsm nommés : LIA maint ;CM maint ;CPmx maint-CLmaint, ouverts chronologiquement au lancement par LIA maint (cela est ok). Seul m’intéresse ici LIA et CPmx maint.
Le fichier LIA contient les chemins d’accès aux 4 fichiers mais un petit tableau préalable détermine le chemin complet suivant les modifications initiales du nom (windows) d’utilisateur et des fichiers XX maint.xlsm en maintenance ou XX.xlsm pour le client hors du contexte présent.
Le bon chemin final des fichiers dans LIA maint est relayé dans les autres dont CPmx aux cellules suivantes CA/CC103 pour CPmx (tableau noir Excel de l’image jointe).
Problème :
La macro d’enregistrement de CPmx, lorsqu’il est actif, a déjà fonctionnée correctement mais régulièrement, elle se bloque à la ligne With Workbooks (Nomfichierp) pour lequel, il ne trouve pas toujours le nom du fichierp (hors indice) ou vide. Ce nom est récupéré dans la cellule CC103 du fichier Cpmx maint.
des essais complémentaires modifiant le nom du fichier à récupérer sont présentés dans le cadre du tableau de l’image jointe. NomFichierp pris sur CA103 au lieu de CC103 ; même essai en prenant le nom, dans CPmx, par filename d’une cellule de ce fichier ou un dernier en prenant le nom du fichier entre[].
Il arrive qu’un l’enregistrement s’effectue mais dans C\Documents sous le même nom… Erreur
Je recherche :
Pourquoi ce bout de macro n’arrive pas à s’effectuer et bien sur une ou des solutions pour que l’enregistrement s’effectue toujours correctement.
Je rajoute la bonne utilisation des 3 lignes :
‘Application.DisplayAlerts Application.EnableEvents Application.ScreenUpdating
= False au début et= True à la fin
Grand Merci à tous les contributeurs et belle route à tous.
Bonjour,
Merci de poster votre code plutôt qu'une image. Le cas échéant on est obligé de tout retaper pour tester.
Pour répondre à votre question :
La macro d’enregistrement de CPmx, lorsqu’il est actif, a déjà fonctionnée correctement mais régulièrement, elle se bloque à la ligne With Workbooks (Nomfichierp) pour lequel, il ne trouve pas toujours le nom du fichierp (hors indice) ou vide. Ce nom est récupéré dans la cellule CC103 du fichier Cpmx maint.
A la lecture du code, il faut être sûr que vous êtes toujours sur la bonne feuille.
Ma question serait déjà de savoir quelle est l'extension du fichier sauvegardé car vous ne mentionnez rien.
essayez le code comme ceci
Sub ep()
Dim cheminp As String, nomfichierp As String
Application.ScreenUpdating = False
With ActiveSheet
If UCase(.Name) = "CONTACT" Then
nomfichierp = .Range("CC103").Value
With Workbooks(nomfichierp)
cheminp = .Path & "\"
.SaveAs Filename:=cheminp & nomfichierp 'extension ????"
End With
End If
If .Range("A47").Value = "ep" And .Range("B47").Value = "" Then .Range("B47") = "fp"
End With
Application.ScreenUpdating = True
End SubJe rajoute la bonne utilisation des 3 lignes :
‘Application.DisplayAlerts Application.EnableEvents Application.ScreenUpdating
Seul le screenupdating sert ici. Oubliez enableevents qui ne sert pas et d'ailleurs est à éviter.
Si vous utilisez le display alert, excel ne vous dira pas si vous avez une erreur, donc ce n'est pas un bon choix.
Si ok pensez à
Cordialement
Bonjour Dan et merci de ta précieuse aide puisque votre macro fonctionne sur chacun des 4 fichiers.
Je n'avais pas pensé effectivement utilisé le Ucase.name qui a son importance et à utiliser ActiveSheet en lieu et place de Workbooks(nom fichier).
Concernant l'xtension, comme il ya des macros dans chacun des fichiers, ils sont tous en .xlsm et elle est bien écrite dans le fichier LIA en complément des chemins complets et apparait, plusieurs fois, sur l'image du fchier Excel présenté.
Je m'excuse d'ailleurs de ne pas avoir joint la macro sous sa forme classique. Idem pour un simple extrait du fichier Excel concerné. Cela vous a pris du temps et je vous en suis vraiment très reconnaissant.
Merci aussi pour vos conseils concernant les 3 lignes qui démarrent et terminent l'enregistrement. Je saurais maintenant les utiliser avec parcimonie.
Pour conclure, ce projet, en cours de finalisation, est un logiciel complexe de codage et décodage, sous Excel volontairement, de messages, de longs textes, de tableaux Excel en A4 et de données personnelles. Il comporte 4 fichiers de base pour un mesage plus un des 4 fichiers optionnels pour les autres fonctions. Les macros, dans chacun d'eux gère les automatismes d'ergonomie (lancement automatique et choix d'options, configurations utilisateurs, enregistrements automatiques etc.
Si lidée vous tente et la curiosité vous y incite, je pourrais vous le transmettre sur demande, avec tous les fichiers pédagogiques d'emploi,en essais et durée cconvenue. N'hésitez pas à me le demander.
Je clos le sujet dans la foulée en vous souhaitant de belles suites pour vous.