XL 2019 Enregistrer un classeur en supprimant une formule

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

Hasco

XLDnaute Barbatruc
Repose en paix
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
 

Hasco

XLDnaute Barbatruc
Repose en paix
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.
 

YohanSC

XLDnaute Nouveau
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
 

Hasco

XLDnaute Barbatruc
Repose en paix
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
 

YohanSC

XLDnaute Nouveau
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
 

Hasco

XLDnaute Barbatruc
Repose en paix
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
 

YohanSC

XLDnaute Nouveau
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
 

Discussions similaires

Statistiques des forums

Discussions
315 093
Messages
2 116 125
Membres
112 666
dernier inscrit
Coco0505