évolution d'un programme.

  • Initiateur de la discussion Initiateur de la discussion Flop
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Flop

XLDnaute Occasionnel
bonjour, je suis en train de me battre pour faire un fichier excel utilisé par plusieur personnes et j'aimerais inclure dans ce programme la possibilité de mise à jour.

je m'explique tous les jours ils vont y saisir des données et je ne peux pas leur renvoyer un nouveau fichier corrigé pour ne pas qu'ils perdent les infos déja saisies

Est'il possible d'inclure une macro qui me permettrait de lire un fichier MAJ.xls est qui apporterait les dernieres modifications. ?
 
Re : évolution d'un programme.

Bonjour,

Pour faire ce que tu envisages, il faut séparer les feuilles qui contiennent les données des feuilles sur lesquelles se fait le traitement.

Ainsi, sur une nouvelle version, il "suffit" d'importer uniquement les feuilles de données des versions précédentes.

Reste à voir comment le fichier est structuré.

@+
 
Re : évolution d'un programme.

Bonsoir, Flop, Tibo.

As-tu envisagé le partage de ce fichier ?
(Outils, Partage du classeur sur Excel 2003).

A condition bien sûr que les utilisateurs soient en réseau.

Cordialement,

Patrick.
 
Re : évolution d'un programme.

Impossible ce n'est pas sur un meme reseau, j'ai reussi à modifier des cellules..

mais comment faire pour qu'une macro d'un fichier x puisse aller modifier des macros d'un fichier y.

merci d'avance.
 
Re : évolution d'un programme.

Bonsoir Flop, et les amis du fil, Tibo, Victor, et le forum,

"mais comment faire pour qu'une macro d'un fichier x puisse aller modifier des macros d'un fichier y."

La question devient très différente, il me semble.... Avec Excel, il n'est pas possible de créer un Patch qui va remettre à jour un fichier (utilisé, ici ou là).... Mais si j'ai bien compris, évidemment..

Bonne soirée.

Jean-Pierre
 
Dernière édition:
Re : évolution d'un programme.

Bonjour le fil 🙂,
Que souhaites-tu faire comme mise à jour? Modifier l'interface (tes macros par exemple) ou simplement compléter les différents fichiers Excels avec les saisies de chacun? Ce n'est pas du tout le même problème...
😎
 
Re : évolution d'un programme.

Bonsoir, JeanPierre, Tibo, Flop, JNP et les autres.

J'ai eu l'occasion de modifier avec succès un fichier Excel (données et procédures).à l'aide d'un patch.
Merci à tous ceux qui m'ont aidé à le finaliser
Le plus simple est, amha, d'effacer et de recréer la procédure en question

Le code ci-dessous, dont tu pourras t'inspirer, implique que le fichier à modifier soit le seul ouvert, lors de l'ouverture du patch.

Sub RemplaceProcedure()

If ActiveWindow.Caption = "Patch1" Then
ActiveWindow.ActivateNext
End If
EffaceProcedure
AjouteProcedure

End Sub

Public Sub EffaceProcedure()

'variables
Dim VBCodeMod As CodeModule
Dim LigneDebut As Long
Dim NbLignes As Long

Set VBCodeMod = ActiveWorkbook.VBProject.VBComponents("Administration").CodeModule
With VBCodeMod
LigneDebut = .ProcStartLine("ValidModifPosition", 0)
NbLignes = .ProcCountLines("ValidModifPosition", 0)
.DeleteLines LigneDebut, NbLignes
End With

End Sub

Public Sub AjouteProcedure()

'variables
Dim VBCodeMod As CodeModule
Dim NbLignes As Long

Set VBCodeMod = ActiveWorkbook.VBProject.VBComponents("Administration").CodeModule
With VBCodeMod
NbLignes = .CountOfLines + 1
.InsertLines NbLignes, _
"Private Sub ValidModifPosition()" & Chr(13) & _
"'Variables ***** Début de remplacement *****" & Chr(13) & _
"Dim ValeurCherchée" & Chr(13) & _
"Dim MessageValidModifPos1" & Chr(13) & _
"Dim MessageValidModifPos2" & Chr(13) & _
"ValeurCherchée = [CV13].Value" & Chr(13) & _
"ControleValiditéModifPosition" & Chr(13) & _
"MessageValidModifPos1 = MsgBox(""Voulez-vous réellement modifier cette position ?"", vbInformation + vbYesNo, ""SACA - Paramétrage : Modifier une position existante"")" & Chr(13) & _
"If MessageValidModifPos1 = 7 Then" & Chr(13) & _
"MessageValidModifPos2 = MsgBox("" Opération annulée à votre demande."", vbExclamation, ""SACA - Paramétrage : Valider une modification de position"")" & Chr(13) & _
" MasquAdmin" & Chr(13) & _
"End If" & Chr(13) & _
"If MessageValidModifPos1 = 6 Then" & Chr(13) & _
" Application.ScreenUpdating = False" & Chr(13) & _
" AfficheTout" & Chr(13) & _
" [CV21:EP27].Copy" & Chr(13) & _
" Application.Goto Reference:=[J1], Scroll:=True" & Chr(13) & _
" Cells.Find(What:=ValeurCherchée, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=True, SearchFormat:=False).Activate" & Chr(13) & _
" Selection.PasteSpecial Paste:=xlPasteValues" & Chr(13) & _
" Application.CutCopyMode = False" & Chr(13) & _
"End If" & Chr(13) & _
"EcranModifPosition" & Chr(13) & _
"End Sub" & Chr(13) & _
"'***** Fin de remplacement *****"

End With

End Sub


Cordialement,
Patrick.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour