Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

casser les connexions


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    casser les connexions
    Bonjour à tous
    j'ai 180 fichiers, chacun possède des liens vers d'autre document.

    je peux les rompres manuellement en allant dans l'onglet Donnée puis en cliquant sur "modifier les liens"

    avec l'enregistrement de macro sa me donne ce programme:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
        ActiveWorkbook.BreakLink Name:= _
            "2200 MHz - AX131° - XY position à 131° - ducoco- avec ventre - avec déphasage - 23-12-2019 .xlsx" _
            , Type:=xlExcelLinks

    malheureusement le "131" bouge en fonction du fichier que j'ouvre

    mon programme qui est dans un excel vierge, il ouvre un par un chaque fichier fait des manip puis les fermes.

    Le PB c'est qu'à chaque ouverture de fichier il demande à mettre à jour le lien (car il le perds du fait qu'on bouge les fichiers).
    Questions comment ou quel fonction permet de rompre le lien avant que la fenêtre s'affiche (fenêtre de demande MAJ)?

    la fonction on error goto, j'ai du mal à la comprendre mais j'ai l'impression que ce n'est pas adapté
    des suggestions?

  2. #2
    Rédacteur/Modérateur

    Salut,

    s'il s'agit ici de casser toutes les liaisons, tu peux passer par une boucle du style:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim TesLiens As Variant 
    Dim i as Integer
     
        TesLiens = ActiveWorkbook.LinkSources(Type:=xlExcelLinks) 
     
    'Parcours
        For i = LBound(TesLiens ) To UBound(TesLiens )
            ActiveWorkbook.BreakLink _ 
                Name:=TesLiens (i), _ 
                Type:=xlExcelLinks
    Next i
    Cycle de vie d'un bon programme :
    1/ ca fonctionne 2/ ca s'optimise 3/ ca se refactorise

    Pas de question technique par MP, je ne réponds pas

    Apprendre à programmer avec Access 2016 et Access 2019

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre à l'essai
    malheureusement sa marche pas,
    il ouvre le fichier mais la fenêtre POP quand même, je pense qu'il a pas le temps de casser le lien puisque la fenêtre pop dès l'ouverture du doc
    faut il rompre le manuellement pour tous?

  4. #4
    Rédacteur/Modérateur

    L'ouverture du classeur se fait depuis un autre classeur en VBA ?

    Auquel cas il te suffit lors de l'ouverture de passer False sur le 2eme parameter (UpdateLinks)

    Ou sinon de desactiver (temporairement) les messages d'alerte avec
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Application.DisplayAlerts=False
    Cycle de vie d'un bon programme :
    1/ ca fonctionne 2/ ca s'optimise 3/ ca se refactorise

    Pas de question technique par MP, je ne réponds pas

    Apprendre à programmer avec Access 2016 et Access 2019

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre à l'essai
    Citation Envoyé par Jean-Philippe André Voir le message
    L'ouverture du classeur se fait depuis un autre classeur en VBA ?

    Auquel cas il te suffit lors de l'ouverture de passer False sur le 2eme parameter (UpdateLinks)

    Ou sinon de desactiver (temporairement) les messages d'alerte avec
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Application.DisplayAlerts=False

    justement j'ai déjà appliquer displayalerts=false et sa me laisse la fenêtre d'où ma frustration de pas pouvoir la virer

    mais peut tu détaillé l'histoire du 2ème paramètre stp

  6. #6
    Rédacteur/Modérateur

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    Dim wbk as Workbook
    Set wbk = Application.Workbooks.Open(TonChemin, False)
    Cycle de vie d'un bon programme :
    1/ ca fonctionne 2/ ca s'optimise 3/ ca se refactorise

    Pas de question technique par MP, je ne réponds pas

    Apprendre à programmer avec Access 2016 et Access 2019

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  7. #7
    Membre à l'essai
    Citation Envoyé par Jean-Philippe André Voir le message
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    Dim wbk as Workbook
    Set wbk = Application.Workbooks.Open(TonChemin, False)
    et bien même avec ces 2 solutions sa marches pas bon je vais me débrouiller autrement merci

  8. #8
    Rédacteur/Modérateur

    Dans le menu Options/Options Avancées/Onglet Général
    décocher la case "Confirmer la mise à jour automatique des liens"
    Cycle de vie d'un bon programme :
    1/ ca fonctionne 2/ ca s'optimise 3/ ca se refactorise

    Pas de question technique par MP, je ne réponds pas

    Apprendre à programmer avec Access 2016 et Access 2019

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  9. #9
    Membre à l'essai
    Citation Envoyé par Jean-Philippe André Voir le message
    Dans le menu Options/Options Avancées/Onglet Général
    décocher la case "Confirmer la mise à jour automatique des liens"
    SUPER C'est que je voulais tu m'a tout débloqué, MERCI!!!!!