Récupérer valeur cellule autre fichier-enregistrer sous val

Résolu/Fermé
00_com Messages postés 21 Date d'inscription mercredi 27 juillet 2022 Statut Membre Dernière intervention 18 janvier 2023 - Modifié le 7 janv. 2023 à 18:41
00_com Messages postés 21 Date d'inscription mercredi 27 juillet 2022 Statut Membre Dernière intervention 18 janvier 2023 - 9 janv. 2023 à 21:16

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

A voir également:

5 réponses

xHaMaz Messages postés 108 Date d'inscription mardi 3 janvier 2023 Statut Membre Dernière intervention 23 avril 2023 15
7 janv. 2023 à 20:22

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

0
00_com Messages postés 21 Date d'inscription mercredi 27 juillet 2022 Statut Membre Dernière intervention 18 janvier 2023
8 janv. 2023 à 00:59

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

0
xHaMaz Messages postés 108 Date d'inscription mardi 3 janvier 2023 Statut Membre Dernière intervention 23 avril 2023 15
8 janv. 2023 à 01:47

Bonsoir,

C'est pas de votre faute j'ai dû mal comprendre, en résumé vous voulez que les valeurs de vos cellules de l'onglet CP n'aient pas de liens vers le fichier p_forum_bdd ?

0
Whismeril Messages postés 18959 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 29 février 2024 921 > xHaMaz Messages postés 108 Date d'inscription mardi 3 janvier 2023 Statut Membre Dernière intervention 23 avril 2023
8 janv. 2023 à 09:12

Bonjour 

pour poster un code, merci de faire comme décrit là https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code

0
xHaMaz Messages postés 108 Date d'inscription mardi 3 janvier 2023 Statut Membre Dernière intervention 23 avril 2023 15 > Whismeril Messages postés 18959 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 29 février 2024
8 janv. 2023 à 16:15

Bonjour

Ok ça marche désolé 

0
00_com Messages postés 21 Date d'inscription mercredi 27 juillet 2022 Statut Membre Dernière intervention 18 janvier 2023
Modifié le 8 janv. 2023 à 08:57

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

0
00_com Messages postés 21 Date d'inscription mercredi 27 juillet 2022 Statut Membre Dernière intervention 18 janvier 2023
Modifié le 8 janv. 2023 à 15:53

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
0
Whismeril Messages postés 18959 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 29 février 2024 921
8 janv. 2023 à 15:58

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"

0
xHaMaz Messages postés 108 Date d'inscription mardi 3 janvier 2023 Statut Membre Dernière intervention 23 avril 2023 15
8 janv. 2023 à 18:37
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)

0
Whismeril Messages postés 18959 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 29 février 2024 921 > xHaMaz Messages postés 108 Date d'inscription mardi 3 janvier 2023 Statut Membre Dernière intervention 23 avril 2023
8 janv. 2023 à 18:54

Tu peux le constater toi-même, c'est bien plus agréable à lire non?

0
xHaMaz Messages postés 108 Date d'inscription mardi 3 janvier 2023 Statut Membre Dernière intervention 23 avril 2023 15 > Whismeril Messages postés 18959 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 29 février 2024
8 janv. 2023 à 19:03

C'est clairement plus agréable, merci à toi

0
yg_be Messages postés 22505 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 mars 2024 1 449 > xHaMaz Messages postés 108 Date d'inscription mardi 3 janvier 2023 Statut Membre Dernière intervention 23 avril 2023
8 janv. 2023 à 19:54

bonjour,

c'est aussi agréablement plus clair!

0

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

Posez votre question
yg_be Messages postés 22505 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 mars 2024 1 449
8 janv. 2023 à 20:01

bonjour,

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?

0
yg_be Messages postés 22505 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 mars 2024 1 449
9 janv. 2023 à 08:57

je voulais écrire "Il est possible de remplacer toutes les formules par leur valeur."

0
00_com Messages postés 21 Date d'inscription mercredi 27 juillet 2022 Statut Membre Dernière intervention 18 janvier 2023
9 janv. 2023 à 08:59

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

0
yg_be Messages postés 22505 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 mars 2024 1 449 > 00_com Messages postés 21 Date d'inscription mercredi 27 juillet 2022 Statut Membre Dernière intervention 18 janvier 2023
9 janv. 2023 à 10:55
  • 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
0
yg_be Messages postés 22505 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 mars 2024 1 449 > 00_com Messages postés 21 Date d'inscription mercredi 27 juillet 2022 Statut Membre Dernière intervention 18 janvier 2023
9 janv. 2023 à 14:47

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
1
00_com Messages postés 21 Date d'inscription mercredi 27 juillet 2022 Statut Membre Dernière intervention 18 janvier 2023 > yg_be Messages postés 22505 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 mars 2024
9 janv. 2023 à 16:02

Fantastique ! 

c'est exactement ce que je cherchais.

Merci Merci MERCI

Allez on avance !

1