Excel
RésoluPouvez-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
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.
-
si je peut me permetre , est-ce que l'affichage de la formule dans la case A1 est impératif ... on peut s'en passer et enregistrer le fichier directement avec les champs concernés ...
ActiveSheet.SaveAs Filename:="C:\Documents and Settings\thaillot\Bureau\Remi\fiche\" & [D5] & [D7] & [D9] & [I5]
-
Merci vous de même ^^
-
bonne journée ^^
-
arrrrrrrrrrrrrr j'ai enversé feuil 1 et feuil 2, maintenant ca marche!!!
Désolé de vous avoir fait perdre du temps sur une erreur d'innatention.
Encore merci pour tout votre aide,
Cordialement. -
alors plusieurs choses déja...quelle est la feuille enregistrée ? la feuil1 ?
ensuite ou sont les nom avec avec lesquel tu compte enregistrer ta feuille ? en A1 de la feuil2? parce que pour l'instant il prend les valeurs qui sont dans la feuil2 entre B1 et B500With ActiveWorkbook.Sheets(1).Range("b1:b500")
et pour l'instant ca marche pas parce que voici l'endroit ou il voudrait enregistrer le fichier:"C:\Documents and Settings\thaillot\Bureau\Remi" & [B1]
alors qu'il faudrai que ce soit qqch dans ce genre:"C:\Documents and Settings\thaillot\Bureau\Remi\fiche\" & [B1]
-
http://www.cijoint.fr/cjlink.php?file=cj200911/cij2196RiQ.xls
voici le lien moi j'aimerais que ce fichier s'enregistre dans un dosier que j'ai nommé fiche -
bon envoie ton fichier ici http://www.cijoint.fr/index.php et colle le lien qui sera donné pour que je puisse voir ton fichier (enlève les donnée confidentielles avant).
-
Enfet moi quand je met ce code, ca me l'enregistre sous le nom de fiche or moi je veux que ca s'enregistre dans le dosier fiche!
-
cher moi ca fonctionne, donc soit tu as mal recopier le code parce que je voi qu'il manque un "\" ici
ActiveSheet.SaveAs Filename:="C:\Documents and Settings\f\Bureau\Remi\fiche\" & c.Offset(1, 0).Value
soit il n'y a rien dans les case d'enregistrement entre A1:A... soit le nom comporte un caractère indésirable comme [ , ] " ? ; : / \ ...
recopy le message d'erreur renvoyé -
voici le code:
Sub CommandButton1_QuandClic()
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:\Documents and Settings\fBureau\Remi\fiche\" & c.Offset(1, 0).Value
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
Else
ActiveSheet.SaveAs Filename:="C:\Documents and Settings\f\Bureau\Remi\fiche\" & [A1]
End If
End With
End Sub
Il me met en erreuir cette ligne:
ActiveSheet.SaveAs Filename:="C:\Documents and Settings\f\Bureau\Remi\fiche\" & [A1] -
Je vais fixer mon chemin ce serat plus simple, ca donne:
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:\C:\Documents and Settings\f\Bureau\Remi\fiche\" & c.Offset(1, 0).Value
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
Else
ActiveSheet.SaveAs Filename:="C:\C:\Documents and Settings\f\Bureau\Remi\fiche\" & [A1]
End If
End With
C'est ok? -
c'est normale tu as deux fois C:\C:\ il faut en supprimer un:
ActiveSheet.SaveAs Filename:="C:\Documents and Settings\f\Bureau\Remi\fiche\" & [A1]
-
quand je rentre mon chemin dans ce code la cela ne fonctionne pas:
ActiveSheet.SaveAs Filename:="C:\C:\Documents and Settings\f\Bureau\Remi\fiche\" & [A1] -
Avec l'option B1 ca donnerais 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:=[B1] & c.Offset(1, 0).Value
ActiveSheet.SaveAs Filename:=[B1] & [A1]
Loop While Not c Is Nothing And c.Address <> firstAddress
Else
ActiveSheet.SaveAs Filename:="C:\le chemin\" & [A1]
End If
End With-
Ca serait le top si cela fonctionne!-
si tu choisi de placer le chemin d'enregistrement dans la case B1 il faut modifier tous les enregistrement. ce code devrait fonctionner :
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:=[B1] & c.Offset(1, 0).Value Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> firstAddress Else ActiveSheet.SaveAs Filename:=[B1] & [A1] End If End Withsans oublier que le chemin est du style : C:\....\
-
-
bonjour, deux solutions :
-1 tu connais le chemin et il est fixe dans ce cas :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:\le chemin\" & c.Offset(1, 0).Value Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> firstAddress Else ActiveSheet.SaveAs Filename:="C:\le chemin\" & [A1] End If End With-2 il change et est dans une case dans ce cas:ActiveSheet.SaveAs Filename:=[B1] & c.Offset(1, 0).Value ActiveSheet.SaveAs Filename:=[B1] & [A1]
si le chemin se trouve dans la case B1 -
bé je crois que j'avais mal copier le code car j'ai fermé mon fichier et j'ai recommencé et ca a marché.
Cependant dans quel paramétre je dois toucher pour choisir la destination de l'enregistrment de mon fichier, car il se met automatiquement dans mes document mes moi j'aimerais le mettre dans un dossier spécifique... -
Ou était le problème ??
-
il y a bien la fonction Date et Time mais le problème c'est que ca enregistre avec des formats :
JJ/MM/YYYY et HH:MM:SS et le problème c'est que sur windows tu peut pas enregistrer avec des symboles ":" ou "/"
chez moi la macro fonctionne... -
Quand je fais le post 17 sa marche la premiere fois et aprés sa me dit: Microsfot office ne peut pas accéder au fichier.
Est-ce normal? -
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...
- 1
- 2