XL 2019 Enregistrer un classeur en supprimant une formule

  • Initiateur de la discussion Initiateur de la discussion YohanSC
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

YohanSC

XLDnaute Nouveau
Bonjour,

J'ai déjà le code pour enregistrer un fihcier avec un chemin comprenant la date du jour via un bouton.

Voici la macro :
Dim chemin$
With ThisWorkbook
If MsgBox("L'encodage de votre rapport est terminé?", vbYesNo, "Validation") = vbYes Then
If Range("H3") <> "" And Range("B9") <> "" Then
chemin = "\\General\Public\"
ActiveWorkbook.SaveAs Filename:=chemin & "\" & Format(Date, "yyyymmdd") & Range("H3") & Range("B9") & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
ActiveWorkbook.Close False
Else
End If
MsgBox ("Vous devez obligatoirement compléter les informations Machine en (H3) & Équipe en (B9) !")
End If

End With

Ma question est dans le classeur sur la première page une cellule fusionnée en DEF 3 indique la date du jour avec la formule =Aujourdhui().
Je souhaiterais figé la valeur en supprimant la formule à l'enregistremeent du fichier.

Quelqu'un à une idée pour integrer ce parametre dans le code?

Merci

Bonne journée,

Yohan
 
Solution
Euh...
Effectivement , c'est vous qui avez la solution plus simple :
Dim chemin$
With ThisWorkbook
.......
Range("D3:F3").Value = Range("D3:F3").Value
.SaveAs Filename:=chemin & "\" & Format(Date, "yyyymmdd") & Range("H3") & Range("B9") & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

.Close False



Ce code fonctionne parfaitement

Merci
Bonjour,

A Tester :

VB:
With ActiveWorkbook

.Sheets("NomDeLaFeuille").Range("AdresseCellule").Value =.Sheets("NomDeLaFeuille")Range("AdresseCellule").Value

.SaveAs Filename:=chemin & "\" & Format(Date, "yyyymmdd") & Range("H3") & Range("B9") & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

.Close False

End With
Cordialement
 
Quelle rapidité

il m'indique une erreur avec ceci :
.Sheets("Suivi prod").Range("D3:F3").Select = .Sheets("Suivi prod").Range("D3:F3").Value

J'ai aussi essayer avec Value au lieu de select.

merci
Oui,
essayer c'est bien comprendre ce qu'on essaie c'est mieux.

Et cela aurait été plus rapide avec un classeur exemple.
Et encore plus avec le texte de l'erreur
Le select n'a rien à faire là-dedans.
 
voila j'ai essayer et cela fonctionne :

Range("D3:F3").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

le code écrase la formule et quand la sauvegarde s'effectue le classeur source conserve la formule.

la prochaine fois je vais mettre le classeur , c'est nettement mieux en effet.

Merci beaucoup
 
a prochaine fois je vais mettre le classeur , c'est nettement mieux en effet.
Oui, car il y a plus simple que ces "select" "copy" et "pastespecial"

Dans un classeur vierge en A1 mettez la formule =Aujourdhui()
Dans l'éditeur VBA ouvrez la fenêtre d'exécution, si ce n'est déjà fait (CTRL+G) puis tapez dedans :
Range("A1").Value = Range("A1").Value
Validez et voyez ......

Cordialement
 
Euh...
Effectivement , c'est vous qui avez la solution plus simple :
Dim chemin$
With ThisWorkbook
.......
Range("D3:F3").Value = Range("D3:F3").Value
.SaveAs Filename:=chemin & "\" & Format(Date, "yyyymmdd") & Range("H3") & Range("B9") & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

.Close False



Ce code fonctionne parfaitement

Merci
 
Re,

Range("D3:F3") Sans feuille indiquée, peut appartenir à n'importe quelle feuille de n'importe quel classeur.
Qu'il soit dans une structure With ThisWorkBook ou non.
Je répète ce que je disais plus haut : tester c'est bien, comprendre c'est mieux, mais vous faites comme vous voulez.

cordialement
 
Re,

J'ai quand même creusé. ton code fonctionne depuis le début mais ma feuille est protégée donc j'ai rajouté :
ActiveSheet.Unprotect ("test")
.Sheets("Suivi prod").Range("D3:F3").Value = .Sheets("Suivi prod").Range("D3:F3").Value

Merci pour l'aide
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
75
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
246
Réponses
3
Affichages
534
Réponses
2
Affichages
400
Retour