Message "Sélectionner une feuille" pendant macro d'actualisation de liaison

Bonjour,

Je bloque...

J'ai plusieurs classeurs avec plusieurs feuilles qui comporte des cellules nommées.

Tout les mois, je récupère les données des cellules nommées.

Comme les chemins sont évolutifs, je me sert d'une source pour compiler ces nouveau "chemin".

Pour pouvoir travailler sur classeur fermé, j'utilise ceci en fin de macro pour coller les nouveau chemin :

Sub Actualiser_synthése()
Application.DisplayAlerts = False
[E2:E5] = Range("D2:D5").Value
Application.DisplayAlerts = True
End Sub

Pendant l'exécution de la macro, Si les onglets sont bien créer, tout va bien, si il en manque un, j'ai le message suivant que même Application.DisplayAlerts = False ne bloque pas :

capture

Comment éviter ce message d'erreur? Ou le fermer automatiquement?

Je joint à ce post des classeurs allégés en donnée ou se trouve la macro et l'emplacement des données à récolter ainsi qu'un classeur source ou il manque volontairement une feuille.

Possible de me donner un coup de pouce?

Merci :-)

6classeur1.xlsm (9.85 Ko)
8synthese.xlsm (32.21 Ko)

Bonjour

Je n'ai pas trop compris ce que vous voulez au final en colonne E. C'est logique que displaylaerts ne bloque pas puisque vous faites une erreur dans le code

Si on prend la ligne 2, vous voulez quoi comme résultat en E2 ?

Hello,

Mes éscuses pour la réponse tardive, j'avais un peu laissé ce projet de coté.

En fait je voulais avoir :

En E2 : la valeur du Classeur 1 / Feuil1 / cellule nommée Total1Feuil1 (soit la cellule A1)

En E3 : la valeur du Classeur 1 / Feuil2 / cellule nommée Total1Feuil2 (soit la cellule A1)

En E4 : la valeur du Classeur 1 / Feuil3 / cellule nommée Total1Feuil3 (soit la cellule A1)

En E5 : la valeur du Classeur 1 / Feuil4 / cellule nommée Total1Feuil4 (soit la cellule A1)

Mais comme la Feuil4 n'existe pas, j'ai un message d'erreur.

Entre temps, j'ai approfondie le sujet.

Avant de lancer cette opération, je vais faire une boucle pour vérifier si la feuille existe, ligne par ligne.

Si la feuille existe alors j'actualise la liaison, sinon ligne suivante.

Re

Je ne sais pas ce que vous avez fait dans votre fichier synthèse, mais il faudrait tout de même que vous m'expliquiez comment vous êtes arrivé à avoir deux Thisworkbook dans l'éditeur VBA ???

Vous devriez supprimer votre fichier synthèse et le refaire complètement

En colonne E, vous voulez le résultat par code ou via une formule comme je le vois dans votre fichier posté ?

Edit : essayez ceci à la place du code actuel mais n'oubliez pas de refaire votre fichier synthese

Sub Actualiser_synthese()
Dim i As Integer

With ThisWorkbook.Sheets("SYNTHESE")
    On Error Resume Next
    For i = 2 To .Range("D" & .Rows.Count).End(xlUp).Row
        .Range("E" & i).FormulaR1C1 = .Range("D" & i).Value
    Next i
End With
End Sub

Cordialement

Le deuxième est apparue quand j'ai utilisé ce code :

https://forum.excel-pratique.com/excel/creer-plusieurs-classeur-en-fonction-d-une-liste-avec-modele-...

Merci pour le nouveau code mais cela pose toujours le même problème.

Raisonnablement, après réflexion, il me parait absurde d'actualiser des liaison avec des feuilles ou des classeurs qui n'existe pas.

Je vais donc au préalable lancer des test ligne par ligne et si et seulement si les test sont ok, alors j'actualise les liaisons.

Raisonnablement, après réflexion, il me parait absurde d'actualiser des liaison avec des feuilles ou des classeurs qui n'existe pas

Effectivement

Si vous voulez aller chercher la valeur de A1 dans un autre fichier, il suffit de faire le code qui permet d'aller chercher la valeur en dur en question dans votre autre fichier. Donc sans formule. Le tout est de savoir le répertoire où se trouve le classeur1 et s'il ne se trouve pas dans le même répertoire que le classeur Synthèse

Crdlt

Rechercher des sujets similaires à "message selectionner feuille macro actualisation liaison"