Mettre à jour un lien puis ouvrir le fichier choisi puis le fermer

Fermé
jdije69150 Messages postés 2 Date d'inscription mardi 16 mars 2021 Statut Membre Dernière intervention 17 mars 2021 - 16 mars 2021 à 17:54
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 - 17 mars 2021 à 11:58
Bonjour tout le monde,

je cherche à pallier au problème excel des somme.si/ens qui font référence à une cellule ou à une plage dans un classeur fermé entraînent une #VALUE. comme erreur.

En l'occurrence, je dois :
- mettre à jour une liaison sur un autre fichier excel que nous nommerons B
- ouvrir ce fichier excel B afin que la fonction somme.si puisse fonctionner
- refermer le fichier B

J'ai récupéré un bout de code mais il manque la fonction pour mettre à jour les liens tout en utlisant "wbSource" (le fichier que j'ai choisi ci-dessous).

Voici le code :
Public Sub Ouvrir_Fichier_Quelconque()

Dim wbSource, wbFichierUsager As Workbook
Dim strFileName As String
Dim intChoice As Integer 'Déclarer les variables de base

Set wbFichierUsager = ThisWorkbook

' On va appeler une application de MS Office afin de chercher et d’ouvrir le bon fichier
' Avec la commande qui suit, on indique que nous ne voulons qu’un seul fichier
Application.FileDialog(msoFileDialogOpen).AllowMultiSelect = False

' On affiche l’écran de dialogue de MS Office
intChoice = Application.FileDialog(msoFileDialogOpen).Show

' On s’assure que l’usager a fait un choix
If intChoice <> 0 Then

' On récupère le nom complet du fichier
strFileName = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
Workbooks.Open strFileName
Set wbSource = ActiveWorkbook

' Sinon, on arrête tout en notifiant l’usager
Else

' S’il n’y a pas de fichier, on quitte sans rien faire
MsgBox "La procédure est annulée car aucun fichier n’a été entré."

Exit Sub
End If

' Ici, on insère le code qui applique les changements voulus au fichier ouvert, qui sera ensuite refermé

wbSource.Close SaveChanges:=False 'On ferme le fichier sans le sauver

End Sub

Quelqu'un aurait-il le code pour mettre à jour la liaison en utilisant "wbSource" ?

Je vous remercie d'avance pour les minutes que vous consacrerez à mon problème.

Configuration: Windows / Chrome 89.0.4389.82
A voir également:

2 réponses

yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
16 mars 2021 à 18:59
bonjour,
je ne comprends pas ce que tu veux dire par "mettre à jour les liens", ne suffit-il pas de recalculer le classeur?
wbFichierUsager.calculate


je n'ai pas testé, et je suppose que le fichier wbSource est compatible avec les liens.
0
jdije69150 Messages postés 2 Date d'inscription mardi 16 mars 2021 Statut Membre Dernière intervention 17 mars 2021
17 mars 2021 à 08:54
Bonjour, il ne suffit pas simplement de recalculer le classeur car la fonction somme.si ne fonctionne pas si elle pointe sur un autre fichier qui est fermé.
Dans mon cas, la fonction pointe sur un ancien fichier (celui du mois précédent), il faut que je le mette à jour avec le fichier du mois présent, et que j'ouvre après le fichier pour la fonction fasse le calcul.
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
17 mars 2021 à 11:58
pourquoi écris-tu que le fichier est fermé, alors que le code vient de l'ouvrir, et qu'il est donc ouvert au moment de recalculer?
tu n'as pas donné le nom du fichier, ni le contenu des liens.
essaie de donner des infos factuelles.
si le nom du fichier change, il faut modifier tous les liens.
il serait préférable de travailler autrement.

tu avais écrit que ton problème était que le fichier était fermé. le problème ne serait-il pas tout différent?
0