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

Résolu
00_com Messages postés 21 Statut Membre -  
00_com Messages postés 21 Statut Membre -

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

5 réponses

  1. xHaMaz Messages postés 123 Date d'inscription   Statut Membre Dernière intervention   18
     

    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
  2. 00_com Messages postés 21 Statut Membre
     

    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
    1. xHaMaz Messages postés 123 Date d'inscription   Statut Membre Dernière intervention   18
       

      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
      1. xHaMaz Messages postés 123 Date d'inscription   Statut Membre Dernière intervention   18 > Utilisateur anonyme
         

        Bonjour

        Ok ça marche désolé 

        0
  3. 00_com Messages postés 21 Statut Membre
     

    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
  4. 00_com Messages postés 21 Statut Membre
     

    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
    1. xHaMaz Messages postés 123 Date d'inscription   Statut Membre Dernière intervention   18
       
      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
    2. Utilisateur anonyme > xHaMaz Messages postés 123 Date d'inscription   Statut Membre Dernière intervention  
       

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

      0
    3. xHaMaz Messages postés 123 Date d'inscription   Statut Membre Dernière intervention   18 > Utilisateur anonyme
       

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

      0
    4. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > xHaMaz Messages postés 123 Date d'inscription   Statut Membre Dernière intervention  
       

      bonjour,

      c'est aussi agréablement plus clair!

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

    Posez votre question
  6. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     

    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
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

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

      0
    2. 00_com Messages postés 21 Statut Membre
       

      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
    3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > 00_com Messages postés 21 Statut Membre
       
      • 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
    4. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > 00_com Messages postés 21 Statut Membre
       

      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
    5. 00_com Messages postés 21 Statut Membre > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
       

      Fantastique ! 

      c'est exactement ce que je cherchais.

      Merci Merci MERCI

      Allez on avance !

      1