EXCEL ***Boite de message Enregistrer sous non conforme***

Résolu/Fermé
faisdlair - Modifié le 19 janv. 2018 à 17:12
faisdlair Messages postés 171 Date d'inscription vendredi 19 janvier 2018 Statut Membre Dernière intervention 31 décembre 2023 - 20 janv. 2018 à 21:19
Bonjour,


Je viens de decouvrir ce forum


Voila , j'ai une macro qui a comme fonction d'enregistrer mon classeur selon la valeur de 2 cellules
Ce que ca me donne est "19 JANVIER 2018 (17-5501) si je sauve aujourd'hui
Normalement cette macro devrait , si le fichier n'existe pas, le creer tout simplement mais ce que j'ai toujours comme avertissement, c'est que ce fichier existe deja
Ce message de remplacer ne devrait pas y etre si ce classeur est nouveau
Dans la fenetre qui apparait, il y a le bouton OK et Annuler
La commande Annuler ne change rien, le classeur s'enregistre quand meme
A la cellule AC3, j'ai aussi une macro qui me donne la date du jour en V3
Je pense que celle-ci cause le probleme
J'ai besoin d'aide

merci

voici le classeur

https://www.cjoint.com/c/HAtqgy8Sio4



A voir également:

3 réponses

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
20 janv. 2018 à 07:14
Bonjour,
Sauf erreur de ma part, votre problème se situe là:
        Do While Len(nomfichier) > 0
            If nomfichier = ThisWorkbook.Name Then
                flag = 1
            End If
            nomfichier = Dir
        Loop

mettre:
        Do While Len(nomfichier) > 0
            If nomfichier = Nom Then
                flag = 1
            End If
            nomfichier = Dir
        Loop

Cdlt
1
faisdlair Messages postés 171 Date d'inscription vendredi 19 janvier 2018 Statut Membre Dernière intervention 31 décembre 2023 6
20 janv. 2018 à 13:00
Merci beaucoup pour le suivi
Une partie du probleme est réglé
Le classeur est enregistré dans le dossier source comme il devrait l'etre
Mais lorsque j'essai une deuxieme fois de le sauvegarder, je devrait avoir cette boite de message qui me dit que ce classeur existe deja, ce qui n'est pas le cas

Martin
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
20 janv. 2018 à 14:57
Comme ceci
        Do While Len(nomfichier) > 0
            If nomfichier = nom1C Then
                flag = 1
                If flag = 1 Then
                    rep = InputBox("" & nom1C & " Existe Déjà." & Chr(13) & Chr(13) & "Changez Pour :", nom1C, nom1C)
                    Exit Sub
                End If
            End If
            nomfichier = Dir
        Loop


Cdlt
1
faisdlair Messages postés 171 Date d'inscription vendredi 19 janvier 2018 Statut Membre Dernière intervention 31 décembre 2023 6
Modifié le 20 janv. 2018 à 15:25
Merci Beaucoup pour le retour

meme résultat

Le classeur est enregistré dans le dossier source comme il devrait l'etre
Mais lorsque j'essai une deuxieme fois de le sauvegarder, je devrait avoir cette boite de message qui me dit que ce classeur existe deja, ce qui n'est pas le cas

AS TU ESSAYÉ LE CLASSEUR CHEZ TOI pour voir si tu as le meme résultat ?

merci

Martin
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
20 janv. 2018 à 19:14
Oui, je l'ai testé plusieurs fois avec des dates différentes, et ça fonctionne parfaitement bien.
A chaque premier enregistrement, le classeur est sauvegardé avec le nom de la feuille exemple: "21 JANVIER 2018 (17-5501).xlsm", puis aux tentatives suivantes, j'ai bien une boîte de dialogue qui s'ouvre pour dire que le classeur existe déjà, A ce propos un simple message était suffisant plutôt qu'une boîte de dialogue.
Autre petit problème détecté, quand on change de date, il y a un message d'erreur qui bloque sur la macro "Private Sub Worksheet_Change(ByVal Target As Range)", le format de date(le tiret) ne lui convient pas. Je vous conseille de la rempacer par celle-ci qui ne génère pas d'erreur(Remplacement du tiret par le tiret bas "souligné"):
Private Sub Worksheet_Change(ByVal Target As Range)
'MAcro Dan le 08/12/2010
    If Not Intersect(Target, Range("V3")) Is Nothing Then
        ActiveSheet.Name = Format(Target, "dd_mm_yyyy")
    End If
End Sub

Pour le reste , je ne comprends pas, puisque tout fonctionne bien.
Voici quand même le fichier, au cas ou il y aurait des différences avec le votre.
https://mon-partage.fr/f/PFFb4N3U/
Cdlt
0
faisdlair Messages postés 171 Date d'inscription vendredi 19 janvier 2018 Statut Membre Dernière intervention 31 décembre 2023 6
20 janv. 2018 à 21:19
Je viens d'essayer ton fichier et ca fonctionne
J'ai du faire une erreur en modifiant le code

Je te remercie beaucoup

Martin
0