Récupérer valeur cellule autre fichier-enregistrer sous val
Résolu00_com Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
Bonjour le Forum,
Je cale un peu sur ce qui suit :
j’ai 2 documents de travail :
a) le principal : p_forum_bdd
b) les secondaires
p_forum_planf1
p_forum_planf2
p_forum_planf3
et ainsi de suite
les données des les fichiers p_forum_plan .... se récupèrent via les données reprises dans le fichier p_forum_bdd onglet bdd de la ligne 3 : ligne 3 qui change tout le temps après l'enregistrement du fichier p_forum_planf_....
Le but est de créer une base de données clients .
J’essaie de trouver une macro qui enregistrerait par exemple
le classeur p_forum_planf1 ou autre sous le nom de la cellule A14 de l’onglet CP mais uniquement la valeur et non le lien vers le fichier p_forum_bdd
j’ai un code dans le fichier p_forum_planf... mais il enregistre le lien dans les cellules et je ne sais comment faire pour qu’il enregistre uniquement la valeur de la cellule A14 de l’onglet CP.
Sub nom_fichier_valeur_cellule()
'enregistrement classeur entier en rapport avec valeur cellule
Dim Path As String
Dim filename As String
Path = "C:\Users\danhc\Documents\LANAIS\PA\"
filename = Range("A14").Value
r = Application.GetSaveAsFilename(filename, Filefilter:=" fichier xlsm,*.xlsm")
ActiveWorkbook.SaveAs r
End Sub
Au lieu d’indiquer C:\Users\danhc\Documents\L…..\PA\
est-il possible d’avoir d’avoir la fenêtre enregistrer sous pour savoir où l’on enregistre sans pour cela toujours aller dans la macro pour changer le répertoire a cas où ?
je joins les fichiers pour plus de facilité.
Je ne sais pas si je suis très claire dans mes explications
Je vous remercie par avance pour votre aide, je bloque….
merci bcp
PS j'ai pensé à ce raisonnement mais s'il y en a un autre
Comint
bdd : https://www.cjoint.com/c/MAhq6zPJHda
plan : https://www.cjoint.com/c/MAhq7OCVmja
résultat : https://www.cjoint.com/c/MAhrf7TKRva
- Récupérer valeur cellule autre fichier-enregistrer sous val
- Fichier bin - Guide
- Fichier epub - Guide
- Audacity enregistrer son pc - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
5 réponses
Bonjour
Sub nom_fichier_valeur_cellule()
'enregistrement classeur entier en rapport avec valeur cellule
Dim r As String
filename = Range("A14").Value
r = Application.GetSaveAsFilename(filename, FileFilter:="fichier xlsm,*.xlsm")
ActiveWorkbook.SaveAs r
End Sub
Essaye ça
Bonsoir xHaMaz,
merci pour votre réponse rapide : la macro "enregistrement sous" fonctionne parfaitement avec enregistrement de la valeur de la cellule A14.
je me suis peut être mal exprimé mais ce que je souhaite c'est que lorsque je reprends le fichier enregistré
les valeurs des cellules ne pointent plus vers le fichiers p_forum_bdd mais ne reprend que les valeurs de ces celulles.
Le fichier p_forum_planf... est anonymisé au max mais il va y avoir dans tous les onglets du fichier des cellules qui ont un lien avec p_forum_bdd or dans le fichier p_forum_bdd la ligne 4 est amenée à changer c'est pour cela que dans le fichier p_forum_planf... il ne doit y avoir que les valeurs aussi non le fichier enregistré ne reprendra plus les données correctes.
Quand on clique sur la cellule A14 de l'onglet cp du fichier résultat on a :='C:\Users\danhc\Downloads\[p_forum_bdd.xlsx]bdd'!$C$2 et non la valeur : je veux supprimer ce lien et qu'il ne garde que la valeur tintin et milou
et il en est de même pour toutes les cellules du classeur entier
J'espère avoir été plus claire
Merci de votre aide
Bonjour
pour poster un code, merci de faire comme décrit là https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
Bonjour xHaMaz,
Le fichier transmis est anonymisé : il y a très peu de données.
Dans le fichier "terminé" des liens dans tous les onglets et pas uniquement dans CP, donc est-il possible de ne laisser que les valeurs de ces liens et non les liens vers p_forum_bdd pour le classeur entier ?
et ceci à ajouter dans le même vba que "enregistrer sous" qui fonctionne super bien, comme dit plus haut.
Merci de votre aide
Voici :
Sub nom_fichier_valeur_cellule()
'enregistrement classeur entier en rapport avec valeur cellule
Dim Path As String
Dim filename As String
Path = "C:\Users\danhc\Documents\LANAIS\PA\"
filename = Range("A14").Value
r = Application.GetSaveAsFilename(filename, Filefilter:=" fichier xlsm,*.xlsm")
ActiveWorkbook.SaveAs r
End Sub
Au risque de me répéter pour poster un code, merci de faire comme décrit là https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
Il est clairement écrit dans l'article de choisir "Basic"
Sub nom_fichier_valeur_cellule() 'enregistrement classeur entier en rapport avec valeur cellule Dim Path As String Dim filename As String Path = "C:\Users\danhc\Documents\LANAIS\PA\" filename = Range("A14").Value r = Application.GetSaveAsFilename(filename, Filefilter:=" fichier xlsm,*.xlsm") Call Supprimer_Liens ActiveWorkbook.SaveAs r End Sub Sub Supprimer_Liens() Dim Onglet As Worksheet For Each Onglet In ActiveWorkbook.Worksheets Onglet.Hyperlinks.Delete Next Onglet End Sub
J'espère avoir compris cette fois x)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionbonjour,
Ces "liens" sont en fait des formules. Il est possible de supprimer toutes les formules par leur valeur.
Cependant, souhaites-tu vraiment supprimer TOUTES les formules? N'as-tu aucune formule que tu souhaites préserver?
Bonjour yg_be,
Merci de votre réponse.
Je ne souhaite pas préserver les formules dans le doc enregistré car ce sera un doc de travail : les valeurs et les formats doivent être conservés dans le doc enregistré . Les formules sont conservées dans p_forum_planf1.
est-ce possible d'avoir les macros "enregistrer sous" et "supprimer les liens" dans une seule macro ?
Merci de votre aide
- Il ne s'agit pas de supprimer les liens, mais de supprimer les formules en les remplaçant pas les valeurs correspondantes.
- je pense à deux scenarios possibles:
- soit, dans le document de départ, supprimer les formules, enregistrer sous, puis fermer le document de départ
- soit enregistrer sous, ouvrir le nouveau document, supprimer les formules, et le refermer
peut-être alors quelque chose comme ceci:
Dim Path As String Dim filename As String, sh as worksheet, r as string filename = Range("A14").Value r = Application.GetSaveAsFilename(filename, Filefilter:=" fichier xlsm,*.xlsm") for each sh in ActiveWorkbook.sheets sh.usedrange.value=sh.usedrange.value next sh ActiveWorkbook.SaveAs r End Sub