Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

question VBA

5 réponses
Avatar
Andre
Bonjour à toutes et tous

J'ai une question: Comment puis-je exécuter le code suivant wb.close

voici le code:

explication en 2 mots de la tâche à exécuter
--------------------------------------------

J'ouvre un fichier sauvegardé sur SharePoint.

En s'ouvrant, il ouvre un autre fichier de configuration.
Ce dernier contient différentes listes.
Une fois la mise à jour terminée, je ferme le fichier de configuration.
Enfin, je remet à jour les différents tableaux.

code dans l'évenement open :
--------------------------
Dim wb As Workbook
Dim ws As Worksheet

' Le fichier étant sauvé sur SharePoint, je fait un Check Out
' Afin d'éviter qu'un autre utilisateur n'ouvre le fichier
' ***********************************************************
FileCheckOut (ActiveWorkbook.FullName)
fg_SharePoint = True

' J'ouvre le fichier de configuration
' ***********************************
Workbooks.Open Filename:=fichier_setup
Set wb = ActiveWorkbook

' .... Ici je fait mon controle ...

' Je ferme le fichier de configuration
' ************************************

wb.Close SaveChanges:=False

' A partir d'ici, plus aucun code informatique n'est exécuté.
' Toutes les variables ont disparues.
' je n'ai plus la main. Suis-je encore dans l'event 'open'?
' je ne pense pas. Mais, où suis-je alors?

' Mettre à jour des listes
' ************************

....
....
....

Comment puis-je exécuter ce code ?
Merci d'avance pour votre aide

André

5 réponses

Avatar
MichD
Bonjour,

A ) Tu peux combiner ces 2 lignes pour n'en faire qu'une
Workbooks.Open Filename:=fichier_setup
Set wb = ActiveWorkbook

'Si tu ne mets pas le chemin où est ton fichier, il recherchera le fichier
' dans le répertoire courant du moment, tu risques d'avoir des surprises...
Set Wb = Workbooks.Open(Filename:=fichier_setup)

Ce serait mieux comme ceci :
Set Wb = Workbooks.Open(Filename:="c:LeCheminfichier_setup.xls")

B ) Pour le Wb.Close
Dès que tu fermes le fichier, ce denier n'est plus disponible.
Ton code (procédure) doit être écrit dans un autre module d'un autre fichier
Si c'est le cas, les variables devraient demeurer valides



MichD
--------------------------------------------
"Andre" a écrit dans le message de groupe de discussion :

Bonjour à toutes et tous

J'ai une question: Comment puis-je exécuter le code suivant wb.close

voici le code:

explication en 2 mots de la tâche à exécuter
--------------------------------------------

J'ouvre un fichier sauvegardé sur SharePoint.

En s'ouvrant, il ouvre un autre fichier de configuration.
Ce dernier contient différentes listes.
Une fois la mise à jour terminée, je ferme le fichier de configuration.
Enfin, je remet à jour les différents tableaux.

code dans l'évenement open :
--------------------------
Dim wb As Workbook
Dim ws As Worksheet

' Le fichier étant sauvé sur SharePoint, je fait un Check Out
' Afin d'éviter qu'un autre utilisateur n'ouvre le fichier
' ***********************************************************
FileCheckOut (ActiveWorkbook.FullName)
fg_SharePoint = True

' J'ouvre le fichier de configuration
' ***********************************
Workbooks.Open Filename:=fichier_setup
Set wb = ActiveWorkbook

' .... Ici je fait mon controle ...

' Je ferme le fichier de configuration
' ************************************

wb.Close SaveChanges:úlse

' A partir d'ici, plus aucun code informatique n'est exécuté.
' Toutes les variables ont disparues.
' je n'ai plus la main. Suis-je encore dans l'event 'open'?
' je ne pense pas. Mais, où suis-je alors?

' Mettre à jour des listes
' ************************

....
....
....

Comment puis-je exécuter ce code ?
Merci d'avance pour votre aide

André
Avatar
André
Bonjour,

J'aimerais vous remercier pour votre réaction rapide.

* En ce qui concerne "fichier_setup", c'est une variable qui contient un lien
"http:// ...." + le nom du fichier, car ce sont des fichiers sauvegardés sur un
server SharePoint. De plus, comme je dois faire un checkIN / Check Out, je suis
obligé d'avoir le path complet.

* Pour le point A, c'est vrais, vous avez raison, je peux tout mettre sur une
ligne.

* Pour le point B, je trouve cela étrange, car avant que les fichiers soient
sauvés sur le server SharePoint, cela fonctionnait. C'est depuis ce transfert.

Je pense (je me trompe peut être), du fait que je dois faire ce check IN / Check
Out, lorsque ce job est fait, la macro s'arrête naturellement.

Je dois voir si je ne pourrais pas faire ce travail sans faire ce check IN /
Check Out. Vu que je ne fait que lire le document de configuration. Je ne le
modifie pas.

A voir,

Encore une fois, merci pour votre aide

André




In article <j3ldck$s34$, MichD says...

Bonjour,

A ) Tu peux combiner ces 2 lignes pour n'en faire qu'une
Workbooks.Open Filename:=fichier_setup
Set wb = ActiveWorkbook

'Si tu ne mets pas le chemin où est ton fichier, il recherchera le fichier
' dans le répertoire courant du moment, tu risques d'avoir des surprises...
Set Wb = Workbooks.Open(Filename:=fichier_setup)

Ce serait mieux comme ceci :
Set Wb = Workbooks.Open(Filename:="c:LeCheminfichier_setup.xls")

B ) Pour le Wb.Close
Dès que tu fermes le fichier, ce denier n'est plus disponible.
Ton code (procédure) doit être écrit dans un autre module d'un autre fichier
Si c'est le cas, les variables devraient demeurer valides



MichD
--------------------------------------------
"Andre" a écrit dans le message de groupe de discussion :


Bonjour à toutes et tous

J'ai une question: Comment puis-je exécuter le code suivant wb.close

voici le code:

explication en 2 mots de la tâche à exécuter
--------------------------------------------

J'ouvre un fichier sauvegardé sur SharePoint.

En s'ouvrant, il ouvre un autre fichier de configuration.
Ce dernier contient différentes listes.
Une fois la mise à jour terminée, je ferme le fichier de configuration.
Enfin, je remet à jour les différents tableaux.

code dans l'évenement open :
--------------------------
Dim wb As Workbook
Dim ws As Worksheet

' Le fichier étant sauvé sur SharePoint, je fait un Check Out
' Afin d'éviter qu'un autre utilisateur n'ouvre le fichier
' ***********************************************************
FileCheckOut (ActiveWorkbook.FullName)
fg_SharePoint = True

' J'ouvre le fichier de configuration
' ***********************************
Workbooks.Open Filename:=fichier_setup
Set wb = ActiveWorkbook

' .... Ici je fait mon controle ...

' Je ferme le fichier de configuration
' ************************************

wb.Close SaveChanges:úlse

' A partir d'ici, plus aucun code informatique n'est exécuté.
' Toutes les variables ont disparues.
' je n'ai plus la main. Suis-je encore dans l'event 'open'?
' je ne pense pas. Mais, où suis-je alors?

' Mettre à jour des listes
' ************************

....
....
....

Comment puis-je exécuter ce code ?
Merci d'avance pour votre aide

André

Avatar
MichD
Comme je ne travaille pas en réseau, c'est quoi un "check IN / Check Out"

est-ce un appel d'une procédure qui est fait dans ta macro générale ?



MichD
--------------------------------------------
"André" a écrit dans le message de groupe de discussion :

Bonjour,

J'aimerais vous remercier pour votre réaction rapide.

* En ce qui concerne "fichier_setup", c'est une variable qui contient un lien
"http:// ...." + le nom du fichier, car ce sont des fichiers sauvegardés sur un
server SharePoint. De plus, comme je dois faire un checkIN / Check Out, je suis
obligé d'avoir le path complet.

* Pour le point A, c'est vrais, vous avez raison, je peux tout mettre sur une
ligne.

* Pour le point B, je trouve cela étrange, car avant que les fichiers soient
sauvés sur le server SharePoint, cela fonctionnait. C'est depuis ce transfert.

Je pense (je me trompe peut être), du fait que je dois faire ce check IN / Check
Out, lorsque ce job est fait, la macro s'arrête naturellement.

Je dois voir si je ne pourrais pas faire ce travail sans faire ce check IN /
Check Out. Vu que je ne fait que lire le document de configuration. Je ne le
modifie pas.

A voir,

Encore une fois, merci pour votre aide

André




In article <j3ldck$s34$, MichD says...

Bonjour,

A ) Tu peux combiner ces 2 lignes pour n'en faire qu'une
Workbooks.Open Filename:=fichier_setup
Set wb = ActiveWorkbook

'Si tu ne mets pas le chemin où est ton fichier, il recherchera le fichier
' dans le répertoire courant du moment, tu risques d'avoir des surprises...
Set Wb = Workbooks.Open(Filename:=fichier_setup)

Ce serait mieux comme ceci :
Set Wb = Workbooks.Open(Filename:="c:LeCheminfichier_setup.xls")

B ) Pour le Wb.Close
Dès que tu fermes le fichier, ce denier n'est plus disponible.
Ton code (procédure) doit être écrit dans un autre module d'un autre fichier
Si c'est le cas, les variables devraient demeurer valides



MichD
--------------------------------------------
"Andre" a écrit dans le message de groupe de discussion :


Bonjour à toutes et tous

J'ai une question: Comment puis-je exécuter le code suivant wb.close

voici le code:

explication en 2 mots de la tâche à exécuter
--------------------------------------------

J'ouvre un fichier sauvegardé sur SharePoint.

En s'ouvrant, il ouvre un autre fichier de configuration.
Ce dernier contient différentes listes.
Une fois la mise à jour terminée, je ferme le fichier de configuration.
Enfin, je remet à jour les différents tableaux.

code dans l'évenement open :
--------------------------
Dim wb As Workbook
Dim ws As Worksheet

' Le fichier étant sauvé sur SharePoint, je fait un Check Out
' Afin d'éviter qu'un autre utilisateur n'ouvre le fichier
' ***********************************************************
FileCheckOut (ActiveWorkbook.FullName)
fg_SharePoint = True

' J'ouvre le fichier de configuration
' ***********************************
Workbooks.Open Filename:=fichier_setup
Set wb = ActiveWorkbook

' .... Ici je fait mon controle ...

' Je ferme le fichier de configuration
' ************************************

wb.Close SaveChanges:úlse

' A partir d'ici, plus aucun code informatique n'est exécuté.
' Toutes les variables ont disparues.
' je n'ai plus la main. Suis-je encore dans l'event 'open'?
' je ne pense pas. Mais, où suis-je alors?

' Mettre à jour des listes
' ************************

....
....
....

Comment puis-je exécuter ce code ?
Merci d'avance pour votre aide

André

Avatar
Andre
Bonjour,

Le check IN / Check Out: Ce sont des instructions propre à SharePoint.
SharePoint est un système permettant de gérer les fichiers en les versionnants.

C'est pas mal comme système, mais très lourd à utiliser.
Surtout que le management ici, a créer une structure très complexe. Donc, on
retrouve plus rien.

Au niveau pratique, quand vous ouvrez un fichier pour l'éditer, afin d'éviter
qu'une autre personne l'ouvre en même temps, il faut faire un "Check Out". Une
fois le travail fini, pour remettre le fichier publique, il faut faire un "Check
IN".

Voilà, j'espère éclairer votre lanterne.
Au plaisir de vous aider.

André


In article <j3lj0j$cfm$, MichD says...

Comme je ne travaille pas en réseau, c'est quoi un "check IN / Check Out"

est-ce un appel d'une procédure qui est fait dans ta macro générale ?



MichD
--------------------------------------------
"André" a écrit dans le message de groupe de discussion :


Bonjour,

J'aimerais vous remercier pour votre réaction rapide.

* En ce qui concerne "fichier_setup", c'est une variable qui contient un lien
"http:// ...." + le nom du fichier, car ce sont des fichiers sauvegardés sur un
server SharePoint. De plus, comme je dois faire un checkIN / Check Out, je suis
obligé d'avoir le path complet.

* Pour le point A, c'est vrais, vous avez raison, je peux tout mettre sur une
ligne.

* Pour le point B, je trouve cela étrange, car avant que les fichiers soient
sauvés sur le server SharePoint, cela fonctionnait. C'est depuis ce transfert.

Je pense (je me trompe peut être), du fait que je dois faire ce check IN / Check
Out, lorsque ce job est fait, la macro s'arrête naturellement.

Je dois voir si je ne pourrais pas faire ce travail sans faire ce check IN /
Check Out. Vu que je ne fait que lire le document de configuration. Je ne le
modifie pas.

A voir,

Encore une fois, merci pour votre aide

André




In article <j3ldck$s34$, MichD says...

Bonjour,

A ) Tu peux combiner ces 2 lignes pour n'en faire qu'une
Workbooks.Open Filename:=fichier_setup
Set wb = ActiveWorkbook

'Si tu ne mets pas le chemin où est ton fichier, il recherchera le fichier
' dans le répertoire courant du moment, tu risques d'avoir des surprises...
Set Wb = Workbooks.Open(Filename:=fichier_setup)

Ce serait mieux comme ceci :
Set Wb = Workbooks.Open(Filename:="c:LeCheminfichier_setup.xls")

B ) Pour le Wb.Close
Dès que tu fermes le fichier, ce denier n'est plus disponible.
Ton code (procédure) doit être écrit dans un autre module d'un autre fichier
Si c'est le cas, les variables devraient demeurer valides



MichD
--------------------------------------------
"Andre" a écrit dans le message de groupe de discussion :


Bonjour à toutes et tous

J'ai une question: Comment puis-je exécuter le code suivant wb.close

voici le code:

explication en 2 mots de la tâche à exécuter
--------------------------------------------

J'ouvre un fichier sauvegardé sur SharePoint.

En s'ouvrant, il ouvre un autre fichier de configuration.
Ce dernier contient différentes listes.
Une fois la mise à jour terminée, je ferme le fichier de configuration.
Enfin, je remet à jour les différents tableaux.

code dans l'évenement open :
--------------------------
Dim wb As Workbook
Dim ws As Worksheet

' Le fichier étant sauvé sur SharePoint, je fait un Check Out
' Afin d'éviter qu'un autre utilisateur n'ouvre le fichier
' ***********************************************************
FileCheckOut (ActiveWorkbook.FullName)
fg_SharePoint = True

' J'ouvre le fichier de configuration
' ***********************************
Workbooks.Open Filename:=fichier_setup
Set wb = ActiveWorkbook

' .... Ici je fait mon controle ...

' Je ferme le fichier de configuration
' ************************************

wb.Close SaveChanges:úlse

' A partir d'ici, plus aucun code informatique n'est exécuté.
' Toutes les variables ont disparues.
' je n'ai plus la main. Suis-je encore dans l'event 'open'?
' je ne pense pas. Mais, où suis-je alors?

' Mettre à jour des listes
' ************************

....
....
....

Comment puis-je exécuter ce code ?
Merci d'avance pour votre aide

André




Avatar
MichD
Je réitère le faît que la seule fermeture d'un classeur à l'aide d'une variable
comme Wb.Close ne devrait pas altérer la valeur des variables d'une procédure.

Si à chaque fois que tu fermes un fichier, un "check in" doit s'effectuer, il se peut
que ce processus ait un impact sur la valeur des variables comme la commande en
VBA : "End" ou lorsque l'on passe l'application Excel en mode "création" pour l'ajout
d'un contrôle dans une feuille ou encore lorsque l'on ajoute ou supprime une procédure
dans un projetVBA.

Quoi qu'il en soit, une façon de contourner le problème serait d'insérer dans ton classeur
une feuille masquée à l'aide de la commande:
Worksheets("NomDeLaFeuille").Visible = xlSheetVeryHidden
Avec cette façon de faire, la feuille est inaccessible par l'interface de la feuille de calcul.
Avant de fermer le classeur, tu pourrais affecter la valeur de chacune des variables à une
cellule de cette feuille. Ces données seraient déjà à nouveau disponibles après le "check in".
Si tu n'as que quelques variables, tu peux utiliser un "NOM" (insertion / nom) pour y conserver
la valeur de tes variables.

Exemple :
'--------------------------------------------------
Sub test()

Dim MaVariable As String
MaVariable = "MaValeur"

'Commande pour ajouter le nom : MyVar1
ThisWorkbook.Names.Add "MyVar1", MaVariable, False

'Pour retrouver la valeur du nom
MsgBox [MyVar1]

End Sub
'--------------------------------------------------


MichD
--------------------------------------------
"Andre" a écrit dans le message de groupe de discussion :

Bonjour,

Le check IN / Check Out: Ce sont des instructions propre à SharePoint.
SharePoint est un système permettant de gérer les fichiers en les versionnants.

C'est pas mal comme système, mais très lourd à utiliser.
Surtout que le management ici, a créer une structure très complexe. Donc, on
retrouve plus rien.

Au niveau pratique, quand vous ouvrez un fichier pour l'éditer, afin d'éviter
qu'une autre personne l'ouvre en même temps, il faut faire un "Check Out". Une
fois le travail fini, pour remettre le fichier publique, il faut faire un "Check
IN".

Voilà, j'espère éclairer votre lanterne.
Au plaisir de vous aider.

André


In article <j3lj0j$cfm$, MichD says...

Comme je ne travaille pas en réseau, c'est quoi un "check IN / Check Out"

est-ce un appel d'une procédure qui est fait dans ta macro générale ?



MichD
--------------------------------------------
"André" a écrit dans le message de groupe de discussion :


Bonjour,

J'aimerais vous remercier pour votre réaction rapide.

* En ce qui concerne "fichier_setup", c'est une variable qui contient un lien
"http:// ...." + le nom du fichier, car ce sont des fichiers sauvegardés sur un
server SharePoint. De plus, comme je dois faire un checkIN / Check Out, je suis
obligé d'avoir le path complet.

* Pour le point A, c'est vrais, vous avez raison, je peux tout mettre sur une
ligne.

* Pour le point B, je trouve cela étrange, car avant que les fichiers soient
sauvés sur le server SharePoint, cela fonctionnait. C'est depuis ce transfert.

Je pense (je me trompe peut être), du fait que je dois faire ce check IN / Check
Out, lorsque ce job est fait, la macro s'arrête naturellement.

Je dois voir si je ne pourrais pas faire ce travail sans faire ce check IN /
Check Out. Vu que je ne fait que lire le document de configuration. Je ne le
modifie pas.

A voir,

Encore une fois, merci pour votre aide

André




In article <j3ldck$s34$, MichD says...

Bonjour,

A ) Tu peux combiner ces 2 lignes pour n'en faire qu'une
Workbooks.Open Filename:=fichier_setup
Set wb = ActiveWorkbook

'Si tu ne mets pas le chemin où est ton fichier, il recherchera le fichier
' dans le répertoire courant du moment, tu risques d'avoir des surprises...
Set Wb = Workbooks.Open(Filename:=fichier_setup)

Ce serait mieux comme ceci :
Set Wb = Workbooks.Open(Filename:="c:LeCheminfichier_setup.xls")

B ) Pour le Wb.Close
Dès que tu fermes le fichier, ce denier n'est plus disponible.
Ton code (procédure) doit être écrit dans un autre module d'un autre fichier
Si c'est le cas, les variables devraient demeurer valides



MichD
--------------------------------------------
"Andre" a écrit dans le message de groupe de discussion :


Bonjour à toutes et tous

J'ai une question: Comment puis-je exécuter le code suivant wb.close

voici le code:

explication en 2 mots de la tâche à exécuter
--------------------------------------------

J'ouvre un fichier sauvegardé sur SharePoint.

En s'ouvrant, il ouvre un autre fichier de configuration.
Ce dernier contient différentes listes.
Une fois la mise à jour terminée, je ferme le fichier de configuration.
Enfin, je remet à jour les différents tableaux.

code dans l'évenement open :
--------------------------
Dim wb As Workbook
Dim ws As Worksheet

' Le fichier étant sauvé sur SharePoint, je fait un Check Out
' Afin d'éviter qu'un autre utilisateur n'ouvre le fichier
' ***********************************************************
FileCheckOut (ActiveWorkbook.FullName)
fg_SharePoint = True

' J'ouvre le fichier de configuration
' ***********************************
Workbooks.Open Filename:=fichier_setup
Set wb = ActiveWorkbook

' .... Ici je fait mon controle ...

' Je ferme le fichier de configuration
' ************************************

wb.Close SaveChanges:úlse

' A partir d'ici, plus aucun code informatique n'est exécuté.
' Toutes les variables ont disparues.
' je n'ai plus la main. Suis-je encore dans l'event 'open'?
' je ne pense pas. Mais, où suis-je alors?

' Mettre à jour des listes
' ************************

....
....
....

Comment puis-je exécuter ce code ?
Merci d'avance pour votre aide

André