Enregistrer une date

Bonjour

je me trouve devant un petit soucis , sur une feuille de mon classeur en cellule A2 j'ai une datation automatique du type :

=aujourdhui() lorsque je souhaite enregistrer cette feuille vers un classeur d'archivage dont l'onglet devrait porter la meme date

j'ai une erreur du type '1004' " le nom de la feuille n'est pas valide , verifier que le nom de la feuille ne comporte aucun caractère du type ;

:/ * [ou] \ pourtant j'ai opté pour un format de cellule permettant de mettre la date sous la forme : 06 octobre 2011 , mais j'ai toujours

le même message ; erreur 1004.

avec une ligne surlignée sur mon code qui est le suivant ::

Sub Copie_Feuille_journalière()
Dim Chemin As String, Référence_Nom As String

Chemin = ThisWorkbook.Path
Workbooks.Open Filename:=Chemin & "\FEUILLES JOURNALIERES.xls"

Windows("GESTION DES LAISSEZ PASSER.xls").Activate
Sheets("FEUILLE JOURNALIERE").Select
 Référence_Nom = Range("A2")

Sheets("FEUILLE JOURNALIERE").Copy Before:=Workbooks("FEUILLES JOURNALIERES.xls").Sheets(1)
ActiveSheet.Name = Référence_Nom
With ActiveSheet.Range("A2,C31,C33,C37,C39,F31,F33,F37,F39,J31,L31,J34,L34,J37,L37,L40")
    .Value = .Value
End With
    Application.CutCopyMode = False
Windows("FEUILLES JOURNALIERES.xls").Close SaveChanges:=True

Sheets("RESEAU").Select

End Sub

et la ligne surlignée en jaune est :

ActiveSheet.Name = Référence_Nom

Vous remerciant pour tout remarque relative à cette question

C'est parce qu'en A2, ta date comporte des caractères interdits ( /, \, ], [ ... ).

Une solution, mets le code suivant dans un module :

Function replaceArray(texte As String, newText As String)
'fonction de remplacement des caractères interdits dans le nom d'une feuille
    replaceArray = Replace( _
                   Replace( _
                   Replace( _
                   Replace( _
                   Replace( _
                   Replace( _
                   Replace(texte, _
                           ":", newText), _
                           "\", newText), _
                           "/", newText), _
                           "?", newText), _
                           "*", newText), _
                           "[", newText), _
                           "]", newText)
End Function

Ensuite remplace la ligne :

ActiveSheet.Name = Référence_Nom

par

ActiveSheet.Name = replaceArray(Référence_Nom, " ")

Bonjour

Si j'ai bien lu

rocket4 a écrit :

j'ai opté pour un format de cellule permettant de mettre la date sous la forme : 06 octobre 2011

Remplaces

 Référence_Nom = Range("A2")

par

Référence_Nom = Range("A2").Text

Merci à tout les deux pour vos réponses tres efficaces ! une dernière question relative au code precedent

en ajoutant .Text apres Rang("A2") , j'obtiens apres enregistrement de ma feuille dans classeur d'archive

des dates aux cellules ou il ne faudrait pas :

With ActiveSheet.Range("A2,C31,C33,C37,C39,F31,F33,F37,F39,J31,L31,J34,L34,J37,L37,L40")
    .Value = .Value
End With

toutes les cellules dans la parenthèse , après Range sont affectés de la date , alors que je voulais simplement recopier leur contenues

est ce normal d'apres le code ?

Merci

Bonjour

Ce n'est pas en ajoutant .Text que tu as ça

Modifies ton code comme ceci

    Sub Copie_Feuille_journalière()
    Dim Chemin As String, Référence_Nom As String
   Dim Cel As Range
    Chemin = ThisWorkbook.Path
    Workbooks.Open Filename:=Chemin & "\FEUILLES JOURNALIERES.xls"

    Windows("GESTION DES LAISSEZ PASSER.xls").Activate
    Sheets("FEUILLE JOURNALIERE").Select
     Référence_Nom = Range("A2").Text

    Sheets("FEUILLE JOURNALIERE").Copy Before:=Workbooks("FEUILLES JOURNALIERES.xls").Sheets(1)
    ActiveSheet.Name = Référence_Nom
  For Each Cel In Range("A2,C31, C33, C37, C39, F31, F33, F37, F39, J31, L31, J34, L34, J37, L37, L40")
    Cel.Value = Cel.Value
  Next Cel

        Application.CutCopyMode = False
    Windows("FEUILLES JOURNALIERES.xls").Close SaveChanges:=True

    Sheets("RESEAU").Select

    End Sub

Pas d'autre solution pour le moment

Edit : Vérifies si des soucis avec ce code

    Sub Copie_Feuille_journalière()
    Dim Chemin As String, Référence_Nom As String

    Chemin = ThisWorkbook.Path
    Workbooks.Open Filename:=Chemin & "\FEUILLES JOURNALIERES.xls"

    Windows("GESTION DES LAISSEZ PASSER.xls").Activate
    Sheets("FEUILLE JOURNALIERE").Select
     Référence_Nom = Range("A2").Text

    Sheets("FEUILLE JOURNALIERE").Copy Before:=Workbooks("FEUILLES JOURNALIERES.xls").Sheets(1)
    ActiveSheet.Name = Référence_Nom
  With Range("A2:L40")
    .Value = .Value
  End With

        Application.CutCopyMode = False
    Windows("FEUILLES JOURNALIERES.xls").Close SaveChanges:=True

    Sheets("RESEAU").Select

    End Sub

Merci pour ton code remanié il marche tres bien !!!


re....

Une toute dernière question concernant l'enregistrement de ma feuille me viens à l'esprit ,celle ci dispose de boutons affectés chacun d'une macro commande j'en ai 3 en tout , est il possible d'enregistrer ma feuille sans ces derniers par une instruction spécifique ?

Merci à vous


. j'ai essayé d'integrer la ligne de code suivante à mon precedent code

Sheets("LAISSEZ PASSER").Shapes.SelectAll
Selection.Delete

j'ai eu le droit à un message de memoire insuffisante ! ... c'est un peu étonnant sachant qu'excel n'emploi pas autant de ressource

memoire !!!

Rechercher des sujets similaires à "enregistrer date"