Excel

Résolu
rem -  
pou pouille Messages postés 212 Statut Membre -
Bonjour,
Pouvez-vous m'aider?
j'aimerais lorsque je clique sur un bouton, enregistrer directement ma feuille excel sur une autre feuille ( feuille 1 devient feuille 2) et j'aiemrais l'enregistrer sous le nom d'une cellule.
J ne sais pas si cela est possible?

Merci d'avance
cordialement
Configuration: Windows XP Internet Explorer 7.0

39 réponses

  • 1
  • 2
Résumé de la discussion

L'objectif est d'enregistrer une feuille Excel dans un autre fichier et d'utiliser le nom d'une cellule comme nom de fichier pour éviter d'écraser le fichier existant.
Plusieurs réponses proposent une approche via une macro VBA associée à un bouton, utilisant la commande SaveAs et un chemin explicite, tout en s'assurant que la référence cellule déclenche le nom du fichier.
Des échanges exposent aussi des difficultés pratiques comme des doublons de chemin ou des erreurs de référence, et suggèrent d'ajuster le code ou de tester dans le dossier cible.
D'autres messages mentionnent l'intérêt d'une gestion dynamique du nom de fichier via Find dans les valeurs de cellule et la correction des chemins pour éviter les conflits lors de multiples enregistrements.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. fredba Messages postés 752 Statut Membre 94
     
    bonjour,
    je ne pense pas que se soit possible, tu peut chercher du coté le l'incrémentation.
    ;-)
    0
  2. rem
     
    et enregistrer ma feuille dans un autre fichier excel c'est possible?
    0
  3. fredba Messages postés 752 Statut Membre 94
     
    je ne pas te dire, a part faire enregistrer sous à chaque fois.
    bon courage
    0
  4. pou pouille Messages postés 212 Statut Membre 31
     
    bonjour, oui c'est possible
    pour enregistrer la feuil tu peut faire:
    ActiveSheet.SaveAs Filename:="nom_fichier.xls"

    tu peut aussi lui donner le nom de la cellule A1 par exemple :
    ActiveSheet.SaveAs Filename:=[A1]
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. rem
     
    ok meric, mais je rentre ce code dans une macros?
    0
  7. pou pouille Messages postés 212 Statut Membre 31
     
    tu crée un bouton (barre d'outil\ boite à outils controles) et avec ce bouton de commande dans l'éditeur VB soit tu place directement ce code dans le bouton, soit tu créer un macro et tu appele la macro depuis le bouton
    0
  8. rem
     
    j'ai crée le bouton j'ai rentré le code et maintenant lorsque je clique sur le bouton rien ne se passe...
    0
  9. pou pouille Messages postés 212 Statut Membre 31
     
    dans l'éditeur VB quand tu clique sur la feuille ou est le bouton tu obtien to code comme cela ...
    Private Sub CommandButton1_Click()
    ActiveSheet.SaveAs Filename:=[A1] & ".xls"
    End Sub
    
    le & ".xls" c'est dans le cas ou ta cellule A1 ne contienne que le nom et pas l'extention
    0
  10. rem
     
    Merci j'ai enfin reussi :)
    Mais moi enfete ce que j'aimerais c'est que le fichier s'enregistre sous un nom different a chaque fois, le nom d'une cellule.
    Je sais pas si c'est possible...
    Merci de votre aide...
    Cordialement
    0
    1. pou pouille Messages postés 212 Statut Membre 31
       
      heu ,je suis pas sur de comprendre ... qu'est ce qui doit changer , le nom de la cellule ?
      un petit peut plus de détail serait le bienvenu
      0
  11. rem
     
    oui en fete je veu enregistré ma feuille en un autre fichier, et le nom du fichier serait le nom d'une cellule enfete.
    Caar j'ai créer une fiche type que je voudrais utiliser plusieur fois en modifiant a chaque fois les données et je voudrais enregistrer automatiquement sous le nom d'une cellule.

    Car si je garde la configuration actuelle, a chaque fois que j'enregistre c'est sous le même nom donc je dois écraser à chaque fois.

    Je ne sais pas si c'est plus claire?
    0
  12. pou pouille Messages postés 212 Statut Membre 31
     
    à adapter avec le nombre de cellules...
    Private Sub CommandButton1_Click()
    For i = 1 To 3
    If ActiveWorkbook.Name <> Range("A" & i).Value Then
    ActiveSheet.SaveAs Filename:=Range("A" & i).Value
    Exit Sub
    End If
    Next i
    End Sub
    

    edit je viens de me rendre compte que ca va marcher pour les 2premier fichier mais ensuite ... ca marchera plus ^^
    0
  13. rem
     
    merci, mais si ca marche que pour deux fichier ca va pas aller ^^.
    je ne vois vraiment pas commen faire!
    0
  14. pou pouille Messages postés 212 Statut Membre 31
     
    en gros l'algorithme à écrire c'est :
    chercher le nom du classeur dans la plage des nom enregistrement.
    si on trouve alors enregistrer le nom suivant
    si on trouve pas enregistrer avec le premier nom.

    la ou je bloc c'est sur la recherche dans la plage... un truc du genre range("...").find pourai aider mais bon faudrai l'avis de quelqu'un d'autre
    0
  15. rem
     
    Oui en gros c'est nomer le fichier selon le nom d'une cellule puis l'enregistrer suivant cette cellule.

    En gros, c'est une fiche que je renseigne plusieur fois par jour, et a chaque fois que je la renseigne je voudrais qu'elle s'enregistre sous un autre fichier avec a chaque fois un nom différents.
    0
  16. rem
     
    Enfete j'aimerais, que dans ce code si :
    ActiveSheet.SaveAs Filename:="nom_fichier.xls"

    Le nom puisse etre une valeur d'une cellule .
    0
  17. pou pouille Messages postés 212 Statut Membre 31
     
    alors avec l'aide de VBA j'ai trouvé ca :
    With ActiveWorkbook.Sheets(1).Range("a1:a500")
        Set c = .Find(ActiveWorkbook.Name, LookIn:=xlValues)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                ActiveSheet.SaveAs Filename:=c.Offset(1, 0).Value
                            Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress
        Else
        ActiveSheet.SaveAs Filename:=[A1]
        End If
    End With
    ici si le nom du fichier est différent des noms dans les cases A1à A500 alors il enregistre avec le nom de la cellule A1 , ensuite si le nom du document est trouvé dans la plage A1:A500 il enregistre avec la cellule suivante.
    0
  18. rem
     
    Merci, mais se serait pas plus simple de modifier ce code:
    ActiveSheet.SaveAs Filename:="nom_fichier.xls"
    en modif nom par le nom d'une cellule, je comprend pas pourquoi cela ne marche pas.
    0
  19. pou pouille Messages postés 212 Statut Membre 31
     
    si c'est justement ce que je fait dans mon post 17 : j'enregistre avec la cellule après celle trouvée
    ActiveSheet.SaveAs Filename:=c.Offset(1, 0).Value
    et si il ne trouve pas le nom du fichier il enregistre avec la cellule A1
    ActiveSheet.SaveAs Filename:=[A1]
    maintenant peut etre que dans les cellules il faut l'extention *.xls ...
    as-tu essayé le code du poste 17 ??
    0
  20. rem
     
    oui j'ai essayé et sa me met: ActiveSheet.SaveAs Filename:=[A1] erreur d'execution '1004'.
    0
  21. rem
     
    sinon c'est possible d'enregistrer automatique le fichier avec la date, de ce faite le nom du fichier changera chaque jour.
    Mais bon j'aurais voulu l'enregistrer sous un nom différent plusieur fois par jours...
    0
  • 1
  • 2