OVH Cloud OVH Cloud

UpdateLinks

3 réponses
Avatar
Titi
Bonsoir à tous,

Je cherche la synthaxe pour utiliser UpdateLinks (mettre a jour ou pas
les liaisons d'un classeur)

J'ai essayé ceci, mais cela ne fonctionne pas :

Private WithEvents MonClasseur As Excel.Workbook, MonClasseur2 As
Excel.Workbook
Private MonExcel As Excel.Application, MaFeuille As Excel.Worksheet,
MaFeuille2 As Excel.Worksheet


Private Sub CommandButton1_Click()

dim strChemin as string
dim strFichier as string
dim strAn as string


strChemin = "\\server\Michel\blablabla.......\"
strAn = Month(blabla...)
strFichier = "REND PA " & strAn & ".xls"

Set MonExcel = New Excel.Application
Set MonClasseur = MonExcel.Workbooks.Open.UpdateLinks(strChemin &
strFichier)

Set MaFeuille = MonClasseur.Worksheets(strJour)

MonExcel.Visible = False


etc.....


End Sub


Merci d'avance,
Titi

3 réponses

Avatar
michdenis
Bonjour Titi,



nous amène à la fenêtre où l'on peut choisir l'une des options suivantes

1) ActiveWorkbook.UpdateLinks = xlUpdateLinksUserSetting
Laisser les utilisateurs choisir d'afficher ou non l'alerte

2) ActiveWorkbook.UpdateLinks = xlUpdateLinksNever
Ne pas afficher l'alerte et ne pas mettre à jour...

3) ActiveWorkbook.UpdateLinks = xlUpdateLinksAlways
Ne pas afficher l'alerte et mettre à jour

Ces mises à jour des données, selon l'option que l'on a choisie se font à l'ouverture
du fichier seulement. Cependant, il est possible de forcer ces mises à jour par
code à n'importe quel moment.

Pour mettre à jour les données avec un fichier source bien identifié, on peut
utiliser ceci :
'------------------------
With ThisWorkbook
.UpdateLink Name:=" C : AtravailClasseur1.xls", Type:=xlExcelLinks
End With
'------------------------


Pour mettre à jours tous les liens du classeur
'-------------------------
With ThisWorkbook
Liens =. LinkSources(xlExcelLinks)
For Each lelien In Liens
.UpdateLink Name:=lelien, Type:=xlExcelLinks
Next
End With
' -- -- ------ -- ------ -- -----
En dernier lieu, Excel fait une différence entre les types de liens

A) xlLinkTypeOLELinks : Représente par exemple, le copier-coller
avec liaison d'un texte de l'application Word.

B) XlLinkType : Représente les liens que l'on retrouve au niveau
des formules dans les cellules, Plage nommée, et
séries d'un graphe!

Pour mettre à jour un lien Ole, on utilise les mêmes procédures, mais
avec cette constante xlLinkTypeOLELinks au lieu de xlExcelLinks

enfin, pour ceux qui possèdent une version un peu plus âgée (2000 et - ),
ils ne peuvent compter que sur ce qui suit au sujet des mises à jour à
l'ouverture du classeur :
Application.AskToUpdateLinks = True
impose à Excel de demander à l'utilisateur,
à chaque ouverture d'un fichier possédant des liaisons, s'il
souhaite mettre à jour ces liaisons.

Application.AskToUpdateLinks = False
Excel va mettre à jour automatiquement les liaisons.

Et pour finir, qu'est-ce qui se passe si dans la même procédure,
on utilise ceci qui par définition devrait être contradictoire :
'----------------------------
With ThisWorkbook
.UpdateLinks = xlUpdateLinksNever
End With
Application.AskToUpdateLinks = True
' -- -- -- ------ ------ ------ ----
ET bien, Excel ne demande rien à l'ouverture !
xlUpdateLinksNever a gagné.

Ce qui précède est valide pour les ouvertures de classeurs qui se ne font pas par macro.
(double-clic dans l'explorateur Windows, Menu fichier/open/...

Par macro, il y a dans la méthode "Open" qui accepte un paramètre que l'on peut définir :
Workbooks.Open Filename:=x, UpdateLinks:=True 'or fausse

Ce paramètre a préséance lorsqu'il est défini sur tous les autres paramètres dont il a été
question dans ce texte.


Salutations!






"Titi" a écrit dans le message de news: uIvAIoB$
Bonsoir à tous,

Je cherche la synthaxe pour utiliser UpdateLinks (mettre a jour ou pas
les liaisons d'un classeur)

J'ai essayé ceci, mais cela ne fonctionne pas :

Private WithEvents MonClasseur As Excel.Workbook, MonClasseur2 As
Excel.Workbook
Private MonExcel As Excel.Application, MaFeuille As Excel.Worksheet,
MaFeuille2 As Excel.Worksheet


Private Sub CommandButton1_Click()

dim strChemin as string
dim strFichier as string
dim strAn as string


strChemin = "serverMichelblablabla......."
strAn = Month(blabla...)
strFichier = "REND PA " & strAn & ".xls"

Set MonExcel = New Excel.Application
Set MonClasseur = MonExcel.Workbooks.Open.UpdateLinks(strChemin &
strFichier)

Set MaFeuille = MonClasseur.Worksheets(strJour)

MonExcel.Visible = False


etc.....


End Sub


Merci d'avance,
Titi
Avatar
Titi
Bonjour Titi,



nous amène à la fenêtre où l'on peut choisir l'une des options suivantes

1) ActiveWorkbook.UpdateLinks = xlUpdateLinksUserSetting
Laisser les utilisateurs choisir d'afficher ou non l'alerte

2) ActiveWorkbook.UpdateLinks = xlUpdateLinksNever
Ne pas afficher l'alerte et ne pas mettre à jour...

3) ActiveWorkbook.UpdateLinks = xlUpdateLinksAlways
Ne pas afficher l'alerte et mettre à jour

Ces mises à jour des données, selon l'option que l'on a choisie se font à l'ouverture
du fichier seulement. Cependant, il est possible de forcer ces mises à jour par
code à n'importe quel moment.

Pour mettre à jour les données avec un fichier source bien identifié, on peut
utiliser ceci :
'------------------------
With ThisWorkbook
.UpdateLink Name:=" C : AtravailClasseur1.xls", Type:=xlExcelLinks
End With
'------------------------


Pour mettre à jours tous les liens du classeur
'-------------------------
With ThisWorkbook
Liens =. LinkSources(xlExcelLinks)
For Each lelien In Liens
.UpdateLink Name:=lelien, Type:=xlExcelLinks
Next
End With
' -- -- ------ -- ------ -- -----
En dernier lieu, Excel fait une différence entre les types de liens

A) xlLinkTypeOLELinks : Représente par exemple, le copier-coller
avec liaison d'un texte de l'application Word.

B) XlLinkType : Représente les liens que l'on retrouve au niveau
des formules dans les cellules, Plage nommée, et
séries d'un graphe!

Pour mettre à jour un lien Ole, on utilise les mêmes procédures, mais
avec cette constante xlLinkTypeOLELinks au lieu de xlExcelLinks

enfin, pour ceux qui possèdent une version un peu plus âgée (2000 et - ),
ils ne peuvent compter que sur ce qui suit au sujet des mises à jour à
l'ouverture du classeur :
Application.AskToUpdateLinks = True
impose à Excel de demander à l'utilisateur,
à chaque ouverture d'un fichier possédant des liaisons, s'il
souhaite mettre à jour ces liaisons.

Application.AskToUpdateLinks = False
Excel va mettre à jour automatiquement les liaisons.

Et pour finir, qu'est-ce qui se passe si dans la même procédure,
on utilise ceci qui par définition devrait être contradictoire :
'----------------------------
With ThisWorkbook
.UpdateLinks = xlUpdateLinksNever
End With
Application.AskToUpdateLinks = True
' -- -- -- ------ ------ ------ ----
ET bien, Excel ne demande rien à l'ouverture !
xlUpdateLinksNever a gagné.

Ce qui précède est valide pour les ouvertures de classeurs qui se ne font pas par macro.
(double-clic dans l'explorateur Windows, Menu fichier/open/...

Par macro, il y a dans la méthode "Open" qui accepte un paramètre que l'on peut définir :
Workbooks.Open Filename:=x, UpdateLinks:=True 'or fausse

Ce paramètre a préséance lorsqu'il est défini sur tous les autres paramètres dont il a été
question dans ce texte.


Salutations!






"Titi" a écrit dans le message de news: uIvAIoB$
Bonsoir à tous,

Je cherche la synthaxe pour utiliser UpdateLinks (mettre a jour ou pas
les liaisons d'un classeur)

J'ai essayé ceci, mais cela ne fonctionne pas :

Private WithEvents MonClasseur As Excel.Workbook, MonClasseur2 As
Excel.Workbook
Private MonExcel As Excel.Application, MaFeuille As Excel.Worksheet,
MaFeuille2 As Excel.Worksheet


Private Sub CommandButton1_Click()

dim strChemin as string
dim strFichier as string
dim strAn as string


strChemin = "serverMichelblablabla......."
strAn = Month(blabla...)
strFichier = "REND PA " & strAn & ".xls"

Set MonExcel = New Excel.Application
Set MonClasseur = MonExcel.Workbooks.Open.UpdateLinks(strChemin &
strFichier)

Set MaFeuille = MonClasseur.Worksheets(strJour)

MonExcel.Visible = False


etc.....


End Sub


Merci d'avance,
Titi


Bonjour MichDenis,


Merci beaucoup pour ta réponse claire, précise et complète !

Salutations,
Titi

Avatar
michdenis
Bienvenue Titi,

Sauf que je viens de me rendre compte qu'il y avait eu un copier-coller "erratique"
et le début de ma réponse n'a jamais été publié.

le voici :
'--------------
Les 3 options suivantes, c'est ce que l'on retrouve dans la fenêtre
liaisons ( barre des menus / édition / liaisons / bouton de commande "Invite de démarrage".

Elles sont présentes sauf erreur depuis la version 2002 d'excel.
'--------------

Salutations!

nous amène à la fenêtre où l'on peut choisir l'une des options suivantes

1) ActiveWorkbook.UpdateLinks = xlUpdateLinksUserSetting
Laisser les utilisateurs choisir d'afficher ou non l'alerte

2) ActiveWorkbook.UpdateLinks = xlUpdateLinksNever
Ne pas afficher l'alerte et ne pas mettre à jour...

3) ActiveWorkbook.UpdateLinks = xlUpdateLinksAlways
Ne pas afficher l'alerte et mettre à jour

Ces mises à jour des données, selon l'option que l'on a choisie se font à l'ouverture
du fichier seulement. Cependant, il est possible de forcer ces mises à jour par
code à n'importe quel moment.

Pour mettre à jour les données avec un fichier source bien identifié, on peut
utiliser ceci :
'------------------------
With ThisWorkbook
.UpdateLink Name:=" C : AtravailClasseur1.xls", Type:=xlExcelLinks
End With
'------------------------


Pour mettre à jours tous les liens du classeur
'-------------------------
With ThisWorkbook
Liens =. LinkSources(xlExcelLinks)
For Each lelien In Liens
.UpdateLink Name:=lelien, Type:=xlExcelLinks
Next
End With
' -- -- ------ -- ------ -- -----
En dernier lieu, Excel fait une différence entre les types de liens

A) xlLinkTypeOLELinks : Représente par exemple, le copier-coller
avec liaison d'un texte de l'application Word.

B) XlLinkType : Représente les liens que l'on retrouve au niveau
des formules dans les cellules, Plage nommée, et
séries d'un graphe!

Pour mettre à jour un lien Ole, on utilise les mêmes procédures, mais
avec cette constante xlLinkTypeOLELinks au lieu de xlExcelLinks

enfin, pour ceux qui possèdent une version un peu plus âgée (2000 et - ),
ils ne peuvent compter que sur ce qui suit au sujet des mises à jour à
l'ouverture du classeur :
Application.AskToUpdateLinks = True
impose à Excel de demander à l'utilisateur,
à chaque ouverture d'un fichier possédant des liaisons, s'il
souhaite mettre à jour ces liaisons.

Application.AskToUpdateLinks = False
Excel va mettre à jour automatiquement les liaisons.

Et pour finir, qu'est-ce qui se passe si dans la même procédure,
on utilise ceci qui par définition devrait être contradictoire :
'----------------------------
With ThisWorkbook
.UpdateLinks = xlUpdateLinksNever
End With
Application.AskToUpdateLinks = True
' -- -- -- ------ ------ ------ ----
ET bien, Excel ne demande rien à l'ouverture !
xlUpdateLinksNever a gagné.

Ce qui précède est valide pour les ouvertures de classeurs qui se ne font pas par macro.
(double-clic dans l'explorateur Windows, Menu fichier/open/...

Par macro, il y a dans la méthode "Open" qui accepte un paramètre que l'on peut définir :
Workbooks.Open Filename:=x, UpdateLinks:=True 'or fausse

Ce paramètre a préséance lorsqu'il est défini sur tous les autres paramètres dont il a été
question dans ce texte.


Salutations!






"Titi" a écrit dans le message de news: uIvAIoB$
Bonsoir à tous,

Je cherche la synthaxe pour utiliser UpdateLinks (mettre a jour ou pas
les liaisons d'un classeur)

J'ai essayé ceci, mais cela ne fonctionne pas :

Private WithEvents MonClasseur As Excel.Workbook, MonClasseur2 As
Excel.Workbook
Private MonExcel As Excel.Application, MaFeuille As Excel.Worksheet,
MaFeuille2 As Excel.Worksheet


Private Sub CommandButton1_Click()

dim strChemin as string
dim strFichier as string
dim strAn as string


strChemin = "serverMichelblablabla......."
strAn = Month(blabla...)
strFichier = "REND PA " & strAn & ".xls"

Set MonExcel = New Excel.Application
Set MonClasseur = MonExcel.Workbooks.Open.UpdateLinks(strChemin &
strFichier)

Set MaFeuille = MonClasseur.Worksheets(strJour)

MonExcel.Visible = False


etc.....


End Sub


Merci d'avance,
Titi