Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 7 sur 7
  1. #1
    Invité de passage
    Femme Profil pro magali
    Inscrit en
    février 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Nom : Femme magali
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : février 2013
    Messages : 7
    Points : 0
    Points
    0

    Par défaut Desactiver liens fonctions

    Bonjour,
    J'ai un tableau excel indépendant qui reprend les caractéristiques et prix de tous mes articles.
    Pour chacune des familles de produits, j'ai un MODELE de devis xltm
    Dans ce modèle, j'ai utilisé la fonction index qui me permet de sélectionner mon article en liste déroulante, et ainsi toutes les caractéristiques ainsi que les prix qui sont dans mon classeur indépendant se mettent à jour automatiquement.
    Jusque là, tout va bien.
    Mes problèmes :
    1- pour activer ces liens, il faut que le classeur de prix soit ouvert. Connaitriez vous un moyen (peut être une macro) qui ferait que ce classeur s'ouvre lui aussi automatiquement à l'ouverture du modèle de devis?
    2-Pb plus important : que mes liens se mettent à jour à l'ouverture du modèle, c'est très bien, c'était d'ailleurs le but recherché !!!! Mais une fois que j'enregistre mon devis client en xlsx, qui n'est donc plus un modèle mais un devis normal, unique à un Client spécifique, je voudrais que les mises à jour ne se fassent plus avec mon classeur de base.
    Je m'explique, j'utilise le modèle de devis en 2013, j'envoie le devis au client en 2013 avec caractéristiques et prix 2013. Arrive 2014, je change mes caractéristiques, ou simplement mes prix, je voudrais que mon devis client ne "bouge" pas pour garder une trace de ce que j'ai envoyé en 2013.
    Merci de m'aider.
    Et merci de votre attention.
    Cordialement

  2. #2
    Expert Confirmé Sénior Avatar de jfontaine
    Homme Profil pro Jérôme FONTAINE
    Contrôleur de Gestion
    Inscrit en
    juin 2006
    Messages
    4 732
    Détails du profil
    Informations personnelles :
    Nom : Homme Jérôme FONTAINE
    Âge : 41
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : juin 2006
    Messages : 4 732
    Points : 9 261
    Points
    9 261

    Par défaut

    Bonjour,

    1. pour l'ouverture du classeur tu peux faire cela dans l’évènement Open dans Thisworkbook

    2. si les fichiers ne doivent plus changer après enregistrement, tu peux toujours utiliser l'enregistrement sous format pdf.
    Jérôme

    "Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
    Si la réponse répond à votre besoin, votre vote nous encouragera.
    Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.

  3. #3
    Membre émérite Avatar de keygen08
    Homme Profil pro Christophe GAROT
    Inscrit en
    octobre 2012
    Messages
    439
    Détails du profil
    Informations personnelles :
    Nom : Homme Christophe GAROT
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : octobre 2012
    Messages : 439
    Points : 802
    Points
    802

    Par défaut

    Bonjour
    A placer dans VBAproject/Microsoft excel objets/this workbook
    permet l 'ouverture du classeur source

    Code :
    1
    2
    3
    4
    5
    6
    Private Sub Workbook_Open()
    Dim Cls As Workbook
     
    Set Cls = Application.Workbooks.Open("c:\sources\matériel informatique.xls", , True)
    'true signifie une ouverture en lecture seule, faire trés attention au chemin du fichier
    End Sub
    Permet de rompre les liaisons lors de la fermeture du classeur et ferme le classeur source

    Code :
    1
    2
    3
    4
    5
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
     
        ActiveWorkbook.BreakLink Name:="c:\sources\matériel informatique.xls", Type:=xlExcelLinks
        'nom du classeur source.Close
    End Sub
    C'est au moment où tu vois un moustique sur tes testicules que tu te rends compte qu'il y a moyen de régler certains problèmes autrement que par la violence.
    N'oubliez pas d'indiquer si la réponse convient à vos attentes.

  4. #4
    Invité de passage
    Femme Profil pro magali
    Inscrit en
    février 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Nom : Femme magali
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : février 2013
    Messages : 7
    Points : 0
    Points
    0

    Par défaut Suite essais

    Merci beaucoup keygen08,
    tes conseils fonctionnent parfaitement, c'est génial, merci encore!

    Si je peux me permettre une autre question :
    mon classeur de base étant un modèle
    quand je le ferme, il s'enregistre dans un autre classeur normal
    Grâce à l'action que tu m'as conseillée dans VBA, pas de problème les liens se désactivent.

    en revanche, quand j'ouvre ce nouveau classeur sans liens en xlsm, le classeur de prix de base s'ouvre toujours alors que, pour le coup, je n'en ai plus besoin...
    Peut désactiver son ouverture quand j'enregistre mon devis?

    De plus, toujours pour l'enregistrement, je souhaiterais enregistrer uniquement la feuille en cours d'utilisation...Faute de mémoire, j'aurais un problème si tous mes devis reprennent l'ensemble du classeur.

    Merci encore pour tes conseils si tu peux m'aider.
    cordialement,

  5. #5
    Membre émérite Avatar de keygen08
    Homme Profil pro Christophe GAROT
    Inscrit en
    octobre 2012
    Messages
    439
    Détails du profil
    Informations personnelles :
    Nom : Homme Christophe GAROT
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : octobre 2012
    Messages : 439
    Points : 802
    Points
    802

    Par défaut

    Bonsoir

    Peut désactiver son ouverture quand j'enregistre mon devis?
    Code :
    1
    2
    3
    4
    5
    6
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    'supprime la ligne 4 de thisworkbook-open
        ThisWorkbook.VBProject.VBComponents("thisworkbook").CodeModule.DeleteLines (4)
        ActiveWorkbook.BreakLink Name:="c:\sources\matériel informatique.xls", Type:=xlExcelLinks
        'nom du classeur source.Close
    End Sub
    je souhaiterais enregistrer uniquement la feuille en cours d'utilisation
    Il faudrai, je pense, au moment de l'enregistrement exporter cette feuille dans un nouveau classeur ainsi elle serait seule dans le classeur et il n'y aurait meme plus besoin de modifier l'autre macro. Les liens deviendait egalement inactif a ce moment la.
    Cela donnerai 1 . ouverture des 2 classeurs
    2 . etablissement du devis
    3 . creation d'un classeur, exportation des données, enregistrement
    4 . remise a zero de ton classeur modele et fermeture.

    Ne serai ce pas plus simple ainsi.
    C'est au moment où tu vois un moustique sur tes testicules que tu te rends compte qu'il y a moyen de régler certains problèmes autrement que par la violence.
    N'oubliez pas d'indiquer si la réponse convient à vos attentes.

  6. #6
    Invité de passage
    Femme Profil pro magali
    Inscrit en
    février 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Nom : Femme magali
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : février 2013
    Messages : 7
    Points : 0
    Points
    0

    Par défaut comment?

    Merci encore de ta disponibilité.
    Ton orientation semble en effet super interessante et elle simplifierait énormément les choses...
    Mais là, est ce mon inexpérience ou la tête dans le guidon, mais je suis complètement larguée!
    comment la mettre en oeuvre?
    Merci encore

  7. #7
    Membre émérite Avatar de keygen08
    Homme Profil pro Christophe GAROT
    Inscrit en
    octobre 2012
    Messages
    439
    Détails du profil
    Informations personnelles :
    Nom : Homme Christophe GAROT
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : octobre 2012
    Messages : 439
    Points : 802
    Points
    802

    Par défaut Ajout de code

    Il est un proverbe qui dit : cent fois sur le metier, tu remettras ton ouvrage.

    Donc, on pourrai aussi creer un userform ressemblant a ta feuille et copier les données dans une database(une feuille excel ne contenant que les données), ensuite on rapelle la ligne concernée qui charge le userform en fonction des critere nom, prenom, n°client ou autres.
    avantage: tous est dans le meme classeur
    inconvenient : difficulté de mise en oeuvre pour un débutant

    Tous cela pour dire qu'il n'y pas UNE solution mais DES solutions. Il faut juste trouvé la plus adapté a nos besoins.
    Je te prepare l'idée d'exporter la feuille de saisie dans un autre classeur.
    Avantage : Facile
    Inconvenient : Un fichier par client (mais on peut lister ces fichier dans une colonne et s'arranger pour y acceder d'un clic)
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Private Sub CommandButton1_Click() 'crer un classeur d'une feuille
    Dim Cld As Workbook, Cls As Workbook
    Dim Nom As String, Prenom As String
    'j'ai choisi d'enregistrer le fichier sous nom prenom.xls dans un dossier Devis sur le disque c:
        Nom = ActiveWorkbook.ActiveSheet.Range("a1").Value
        Prenom = ActiveWorkbook.ActiveSheet.Range("b1").Value
    'je copie la feuille source
       ActiveWorkbook.ActiveSheet.Copy
            ActiveWorkbook.SaveAs Filename:="c:\devis\" & Nom & " " & Prenom & ".xls" _
            , FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
           'rompre les liens
            ActiveWorkbook.BreakLink Name:="c:\sources\devis.xls", Type:=xlExcelLinks
     
        ActiveWorkbook.Close True
    'on peut ensuite refermer le classeur d'origine sans modifications pour le retrouver vierge la prochaine fois
    End Sub
    Tu as mis le pied dans un nid de fourmi et la boite à idée est en route.
    C'est au moment où tu vois un moustique sur tes testicules que tu te rends compte qu'il y a moyen de régler certains problèmes autrement que par la violence.
    N'oubliez pas d'indiquer si la réponse convient à vos attentes.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •