Mettre à jour un lien puis ouvrir le fichier choisi puis le fermer
jdije69150
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
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.
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:
- Mettre à jour un lien puis ouvrir le fichier choisi puis le fermer
- Comment ouvrir un fichier epub ? - Guide
- Comment ouvrir un fichier bin ? - Guide
- Ouvrir un fichier .dat - Guide
- Comment ouvrir un fichier docx ? - Guide
- Comment ouvrir un fichier 7z - Guide
2 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
je ne comprends pas ce que tu veux dire par "mettre à jour les liens", ne suffit-il pas de recalculer le classeur?
je n'ai pas testé, et je suppose que le fichier wbSource est compatible avec les liens.
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.
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.
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.
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?
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?