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

Mise à jour d'un nouvel indice de code VBA

4 réponses
Avatar
merguez07
Bonjour à tous,

voilà mon pb, j'ai developpé sous VBA une petite application excel que
différentes personnes de mon boulot utilisent. Pour ce faire chacune de
ses personnes a copié cette application dans son répertoire perso (on
peut pas tous travailler sur le même fichier en même temps) .

Le pb c'est que quand je monte d'indice le code de l'application (par
exemple suite à la correction d'un bug signalé par un utilisateur) je
dois me farcir la mise à jour de toutes les copies . Inutile de vous
dire que c'est chronophage .

Pour palier à cela l'idée serait en fait de mettre le programme de
référence au dernier indice dans un répertoire fixe et que chaque copie
lancée aille vérifier lors de son lancement si son indice de code est
inférieur à celui du programme de référence , et, dans l'affirmative, de
faire copier le code du programme de référence, en lieu et place de
celui du programme lancé.

Question : Est ce possible ?

4 réponses

Avatar
HD
Pour palier à cela l'idée serait en fait de mettre le programme de
référence au dernier indice dans un répertoire fixe et que chaque copie
lancée aille vérifier lors de son lancement si son indice de code est
inférieur à celui du programme de référence , et, dans l'affirmative, de
faire copier le code du programme de référence, en lieu et place de celui
du programme lancé.
Question : Est ce possible ?


Avec le VBA, peut de chose n'est pas possible...

Il y'a quelques années, je m'étais penché sur le problème... Mon script
créeait un fichier version sur un répertoire donné et lorsqu'un utilisateur
lançait son propre fichier il lisait la version du fichier version et le
comparait à la sienne. Avec affichage d'un message en cas de version plus
récente. Dans mon cas, le classeur en question était sur des portables...
dans le cas contraire, il serait possible de créer un répertoire avec tout
les fichiers des différents utilisateurs... si les données que l'on y trouve
ne sont pas trop sensibles bien entendu.
--
@+
HD
Avatar
HD
' Test version
fic = "R:tempversion.dah"
If Dir(fic, vbHidden) = "" Then
If InStr(ActiveWorkbook.FullName, "MatriceMonFic.xls") Then
Open fic For Output As #1
Print #1, Sheets("Fonctions").Range("A2").Value
Close #1
Else
ret = MsgBox("Le fichier version n'a pas été initialisé.",
vbInformation, "")
End If
Else
Open fic For Input As #1
Line Input #1, Version
Close #1
If InStr(ActiveWorkbook.FullName, "C:MatriceMonFic.xls") Then
Open fic For Output As #1
Print #1, Sheets("Fonctions").Range("A2").Value
Close #1
Version = Sheets("Fonctions").Range("A2").Value
End If
If Version <> Sheets("Fonctions").Range("A2").Value Then
ret = MsgBox("!!! Une nouvelle version de ce programme est
disponible " & Version & Chr(10) & ". Appelez DAH !!!", vbInformation, "")
End If
End If





fic est mon fichier version

Le fichier test est crée à partir du classeur Matrice qui se trouve ici :
"C:MatriceMonFic.xls"

Sheets("Fonctions").Range("A2").Value est là où j'ai mon numéro version

Le script est placé dans tous les WorkBook_Open

Ainsi lorsqu'un fichier est ouvert, si la version est différente du fichier
version alors c'est qu'il y'a une nouvelle version.


--
@+
HD
Avatar
HD
Voilà grosso-modo le script à adapter. (j'ai fait quelques modifs pour qu'il
te soit plus parlant).

--
@+
HD
Avatar
merguez07
HD a écrit :
Voilà grosso-modo le script à adapter. (j'ai fait quelques modifs pour qu'il
te soit plus parlant).



merci HD, ça répond en effet à une partie du pb : detecter la montée
d'indice.

Mais comment charger le code du programme au bon indice vers celui au
mauvais indice automatiquement ?


Cordialement

Xavier