Enregistrer sous selon nom de cellule

Fermé
Shadtita Messages postés 42 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 20 avril 2012 - 2 nov. 2009 à 08:57
Shadtita Messages postés 42 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 20 avril 2012 - 5 nov. 2009 à 17:57
Bonjour,

Je souhaiterais savoir s'il est possible de créer une macro qui permette l'enregistrement d'un fichier selon un nom de cellule ?

Par exemple, la cellule C2 se nomme "trucmachin", je voudrais avoir un bouton ou autre me permettant d'enregistrer directement le doc en "trucmachin" sans passer par "enregistrer sous" et de préférence dans un dossier spécifié !

Merci par avance...

Je précise que je ne connais absolument rien à VBA :( malheureusement d'ailleurs !

36 réponses

pou pouille Messages postés 207 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 20 juillet 2012 31
2 nov. 2009 à 09:50
bonjours,
voici un exemple, penser à renseigner le chemin complet en A2 ex:
C:\...
http://www.cijoint.fr/cjlink.php?file=cj200911/cijcYoTqpx.xls
0
Re,

Alors...j'avoue que je n'ai pas bien compris..Puis-je avoir quelques explications supplémentaires ?

Merciiii
0
Shadtita Messages postés 42 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 20 avril 2012
2 nov. 2009 à 10:25
Le nom de ma cellule est aléatoire (il s'agit de n° de devis), je voudrais donc qu'il enregistre selon une cellule.

J'ai essayé comme Pou pouille le propose, j'arrive à enregistrer selon le chemin proposé... mais pas selon le nom de la cellule.

Merci en tout cas pour ce début de réponse !
0
pou pouille Messages postés 207 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 20 juillet 2012 31
2 nov. 2009 à 10:26
Re,
dans mon fichier si dans la case A2 on met l'emplacement avec le nom du fichier désiré
ici j'ai mis l'emplacement C:\nouveauclasseur.xls
donc le document est enregistrer dans le dossier C:\ avec comme nom nouveauclasseur.xls
quand on clic sur le bouton le document est enregistrer.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Shadtita Messages postés 42 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 20 avril 2012
2 nov. 2009 à 10:29
Oui, ça a très bien marché et c'est super parce que je ne connaissais pas !

Cependant, je voudrais que ça l'enregistre selon le nom d'une autre cellule (la cellule comportant mon nom de devis) et cela à un certain endroit...

Comment as tu fait pour le code ? tu le connaissais ? ou c'est via une macro que tu l'as créé ?
0
pou pouille Messages postés 207 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 20 juillet 2012 31
2 nov. 2009 à 10:34
Re,
quel est l'emplacement de cette cellule ?? si c'est en C2 alors tu remplace la case A2 par ceci :
="c:\" & C2
j'ai appris en cherchant un peut sur des forums, et en écrivant un peut mes macro.
0
Shadtita Messages postés 42 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 20 avril 2012
2 nov. 2009 à 11:00
Ma cellule est B-C 14 (B-C parce que c'est une cellule fusionnée)

j'écris le chemin et après je fais &BC14 ?

J'essaye mais ça ne fonctionne pas, cela donne &BC14 comme nom :(

0
pou pouille Messages postés 207 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 20 juillet 2012 31
2 nov. 2009 à 11:33
Re,
oui tu écrit : le chemin que tu souhaite ( attention à bien utiliser les " ")
="c:\" & B14
et bien respecter les espaces avant et après le signe &
(il suffit de metre B14 pour la cellul fusionnée)
0
Shadtita Messages postés 42 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 20 avril 2012
2 nov. 2009 à 14:38
Bon alors plusieurs choses :

- ça marche, j'ai réussi... mais uniquement lorsque B14 est remplie, sinon il me met un message d'erreur...
- y a t il une solution pour ne pas faire apparaître le chemin sur la feuille (qu'il n'y ait que le bouton)

Encore une fois, merci !
0
pou pouille Messages postés 207 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 20 juillet 2012 31
2 nov. 2009 à 14:47
Re,
plusieurs possibilités:
1- tu fait masqué la colonne
2- tu indique le chemin dans ton code vba
pour cela il faut que tu ouvre Microsoft visual basic ( Alt+F11)
et que dans la feuil 1 ;Private Sub CommandButton1_Click()
tu change Fichier = Range("A2").Value
par
Fichier = "C:\...\" & Range("A2").Value
bien sur il faut indiquer un chemin pour C:\...\
et dans A2 tu ne garde que le nom de ton fichier
0
Shadtita Messages postés 42 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 20 avril 2012
2 nov. 2009 à 14:54
C'est bien ça que je dois mettre :

Private Sub CommandButton1_Click()
Dim Fichier As Variant
Fichier = "W:\nomdemonchemin\" & Range("B14").Value
ActiveWorkbook.SaveAs Filename:= _
Fichier
End Sub

parce qu'en écrivant ça, ça ne fonctionne pas et je n'arrive pas à trouver d'où vient le problème.

Je vais être embêtante, mais une fois que j'aurais réussi cette étape, est-il possible qu'en + de s'enregistrer sous un nom spécial, dans un endroit spécial, ... ça s'enregistre en PDF ? ... *non ne tapez pas* !
0
pou pouille Messages postés 207 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 20 juillet 2012 31
2 nov. 2009 à 15:13
essayez en ecrivant cette fonction sur la meme ligne
ActiveWorkbook.SaveAs Filename:=Fichier
chez moi cela fonctionne.
deplus le lecteur W (qui je pense est un lecteur réseau doit etre accessible en écriture).
si possible envoyez le fichier sur http://www.cijoint.fr/index.php sans donnée confidentielle et postez le lien fournis. merci
0
Shadtita Messages postés 42 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 20 avril 2012
2 nov. 2009 à 15:21
Je ne sais pas pourquoi mais maintenant ça marche !
Aléluia ! J'adore quand ça marche !

Pour mon histoire de PDF maintenant :D as tu une idée ?
0
pou pouille Messages postés 207 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 20 juillet 2012 31
2 nov. 2009 à 15:25
heu , la j'ai bien une idée mais ca va etre un peut plus compliqué. pour commencer , une petite recherche s'impose sur le forum ( je pense que ce sujet à déja du etre abordé)
mon idé est que ce doit etre une propiété de la fonction savefilename as ...
peut etre activer une option dans les préférences de visual basic editor
si vous avez pdf creator .. un début de solution https://forums.commentcamarche.net/forum/affich-1214587-vba-macro-pour-convertir-en-pdf
0
Shadtita Messages postés 42 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 20 avril 2012
2 nov. 2009 à 15:32
ok je vais chercher sur le forum, sinon je referai peut-être un sujet non ? vu que tu es le seul à venir à mon secours xD

En tout cas merci beaucoup pour tout ça déjà !

ps : je n'ai pas trop compris => "une propiété de la fonction savefilename as ... peut etre activer une option dans les préférences de visual basic editor "

Merci encore je mets en "résolu" ^^
0
pou pouille Messages postés 207 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 20 juillet 2012 31
2 nov. 2009 à 15:40
je prendrais un peut de temps ce soir pour réfléchir au problème pour le pdf
(c'est quelque chose que je n'ais encore jamais réalisé, donc il faut que je me renseigne avant)
0
Shadtita Messages postés 42 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 20 avril 2012
2 nov. 2009 à 15:53
c'est très gentil merci.
je le ferais bien de mon coté mais je n'ai absolument aucune idée de comment m'y prendre...

En tout cas j'observe bien VBA pour comprendre comment ça marche (héhé) !
0
Shadtita Messages postés 42 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 20 avril 2012
5 nov. 2009 à 10:35
re

me voilà de nouveau avec un petit souci !

Le fichier que j'ai créé, je l'ai enregistré dans "modèles" pour que personne n'écrase le fichier d'origine.
Et je l'ai mis sur tous les postes de l'entreprise...sauf que le chemin pour mes boutons n'est pas le même selon l'ordinateur !!

Comment puis-je faire pour que mon bouton fonctionne quelque soit l'ordi ?
(je rappelle le bouton => enregistrer selon nom de cellule + dans un dossier spécifié + pas encore mais bientot, en PDF)

Merci à vous !
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 754
5 nov. 2009 à 12:04
Bonjour,
Je ne connais pas ta macro permettant d'enregistrer mais tu peux, par exemple définir une variable stockant le chemin du fichier ouvert :

Dim var As String
var = ActiveWorkbook.Path
ActiveWorkbook.SaveAs (var & "\" & [A1] & ".xls")

Sauvegarde sous le même répertoire que le fichier que tu as ouvert sous le nom contenu en A1...
0
pou pouille Messages postés 207 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 20 juillet 2012 31
5 nov. 2009 à 11:56
bonjours , qu'appelle tu chemin pour les boutons ?
je vois pas très bien la.
0
Shadtita Messages postés 42 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 20 avril 2012
5 nov. 2009 à 14:10
Dites que je m'exprime mal ! ^^

J'appelle chemin en fait, la destination du fichier pour l'enregistrement.
Et en fait, a priori le chemin est le même...

Les ordis sont en réseau, et mon ordi est le serveur, ça devrait marcher ou pas ?

Pikaju, peux tu m'expliquer la logique de la macro stp ? j'ai besoin de savoir ce que ça veut dire !

Dim var As String
var = ActiveWorkbook.Path
ActiveWorkbook.SaveAs (var & "\" & [A1] & ".xls")

que demande-t-on à mon petit ordinateur ?
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 754
5 nov. 2009 à 14:23
Oui tu t'exprime mal... Je plaisant rassures toi. En fait tu as écrit le "chemin de mes boutons" ce qui ne veux absolument rien dire. On ne t'en veux pas, d'ailleurs je t'avais compris... Ceci : J'appelle chemin en fait, la destination du fichier pour l'enregistrement est bien plus clair.
Les ordis sont en réseau, et mon ordi est le serveur, ça devrait marcher ou pas ? Non car chaque utilisateur utilise (certainement) une "partie" du serveur qui lui est réservée. Du genre :
C:\Documents and Settings\JTartempion\Bureau
ou encore :
C:\Documents and Settings\MPokora\Bureau
Le pourquoi de mon code :

'Je déclare une variable en tant que chaîne de caractères :
Dim var As String
'Je lui affecte le chemin d'ouverture du fichier, sans le nom de ce fichier. Juste le chemin exemple : C:\Documents and Settings\MPokora\Bureau (et non pas C:\Documents and Settings\MPokora\Bureau\monfichier.xls)
var = ActiveWorkbook.Path
'J'enregistre le fichier sous : le chemin d'ouverture (var) exemple C:\Documents and Settings\MPokora\Bureau
et \ et nom du fichier (valeur contenue dans A1 : [A1]) et l'extension (.xls)
ActiveWorkbook.SaveAs (var & "\" & [A1] & ".xls")

Voili voilou...
0