Bonjour Daniel,
Cette macro détruit tout le code qui existe dans le fichier où les
procédures doivent être mises à jour et les remplace par celle du
fichier source. Pour exécuter cette macro :
A ) Les 2 Fichiers (source et destination) doivent être ouverts
B ) Le nom des objets dans la fenêtre VBE(visual basic editor) doit être
le même pour chaque classeur. Cette procédure n'ajoute pas
de nouveaux objets, elle ne remplace que l'ancien code par le nouveau pour
les objets identiques existants dans chacun des
classeurs.
Dans la procédure, adapte le nom du classeur devant être mise à jour.
'--------------------------------------
Sub AjouterCodeAUneFeuille()
Dim VComp As Object, vc As Object
Dim Fichier As String, Code As String
'Nom du classeur ouvert où seront mises à jours les macros
Fichier = "Classeur3.xls"
With ThisWorkbook
Set VComp = .VBProject.VBComponents
End With
For Each vc In VComp
With vc.codemodule
A = vc.codemodule.Name
If .CountOfLines > 0 Then
Code = .Lines(1, .CountOfLines)
AjouterLeCode Workbooks(Fichier), vc, Code
Code = ""
End If
End With
Next
End Sub
'-------------------------------
Sub AjouterLeCode(Wk As Workbook, vc As Object, Code As String)
With Wk
With .VBProject.VBComponents(vc.Name).codemodule
.DeleteLines 1, .CountOfLines
.AddFromString Code
End With
End With
End Sub
'-------------------------------
Salutations!
"Daniel Campion" a écrit dans le message de news:
4301b00b$0$1213$
Bonjour à Tous.........
Sous Windows XP familiale et Excel 2000...............
Nous avons 2 fichiers identiques pour travailler chacun de notre côté.
Mais l'un optimise plutot les donnés et l'autre les Macros.
Le fichier Maître étant celui des donnés, comment faire pour y remplacer
les
Macros éxistantes par les Macros optimisées de l'autre fichier.
Peut-on le faire avec un copier coller une a une, ou exist-il une méthode
plus rationnelle et globable, donc plus simple.
Merci d'avance de vos réponses.........?
Cordialement............Daniel Campion
Bonjour Daniel,
Cette macro détruit tout le code qui existe dans le fichier où les
procédures doivent être mises à jour et les remplace par celle du
fichier source. Pour exécuter cette macro :
A ) Les 2 Fichiers (source et destination) doivent être ouverts
B ) Le nom des objets dans la fenêtre VBE(visual basic editor) doit être
le même pour chaque classeur. Cette procédure n'ajoute pas
de nouveaux objets, elle ne remplace que l'ancien code par le nouveau pour
les objets identiques existants dans chacun des
classeurs.
Dans la procédure, adapte le nom du classeur devant être mise à jour.
'--------------------------------------
Sub AjouterCodeAUneFeuille()
Dim VComp As Object, vc As Object
Dim Fichier As String, Code As String
'Nom du classeur ouvert où seront mises à jours les macros
Fichier = "Classeur3.xls"
With ThisWorkbook
Set VComp = .VBProject.VBComponents
End With
For Each vc In VComp
With vc.codemodule
A = vc.codemodule.Name
If .CountOfLines > 0 Then
Code = .Lines(1, .CountOfLines)
AjouterLeCode Workbooks(Fichier), vc, Code
Code = ""
End If
End With
Next
End Sub
'-------------------------------
Sub AjouterLeCode(Wk As Workbook, vc As Object, Code As String)
With Wk
With .VBProject.VBComponents(vc.Name).codemodule
.DeleteLines 1, .CountOfLines
.AddFromString Code
End With
End With
End Sub
'-------------------------------
Salutations!
"Daniel Campion" <da.campion@hotmail.fr> a écrit dans le message de news:
4301b00b$0$1213$8fcfb975@news.wanadoo.fr...
Bonjour à Tous.........
Sous Windows XP familiale et Excel 2000...............
Nous avons 2 fichiers identiques pour travailler chacun de notre côté.
Mais l'un optimise plutot les donnés et l'autre les Macros.
Le fichier Maître étant celui des donnés, comment faire pour y remplacer
les
Macros éxistantes par les Macros optimisées de l'autre fichier.
Peut-on le faire avec un copier coller une a une, ou exist-il une méthode
plus rationnelle et globable, donc plus simple.
Merci d'avance de vos réponses.........?
Cordialement............Daniel Campion
Bonjour Daniel,
Cette macro détruit tout le code qui existe dans le fichier où les
procédures doivent être mises à jour et les remplace par celle du
fichier source. Pour exécuter cette macro :
A ) Les 2 Fichiers (source et destination) doivent être ouverts
B ) Le nom des objets dans la fenêtre VBE(visual basic editor) doit être
le même pour chaque classeur. Cette procédure n'ajoute pas
de nouveaux objets, elle ne remplace que l'ancien code par le nouveau pour
les objets identiques existants dans chacun des
classeurs.
Dans la procédure, adapte le nom du classeur devant être mise à jour.
'--------------------------------------
Sub AjouterCodeAUneFeuille()
Dim VComp As Object, vc As Object
Dim Fichier As String, Code As String
'Nom du classeur ouvert où seront mises à jours les macros
Fichier = "Classeur3.xls"
With ThisWorkbook
Set VComp = .VBProject.VBComponents
End With
For Each vc In VComp
With vc.codemodule
A = vc.codemodule.Name
If .CountOfLines > 0 Then
Code = .Lines(1, .CountOfLines)
AjouterLeCode Workbooks(Fichier), vc, Code
Code = ""
End If
End With
Next
End Sub
'-------------------------------
Sub AjouterLeCode(Wk As Workbook, vc As Object, Code As String)
With Wk
With .VBProject.VBComponents(vc.Name).codemodule
.DeleteLines 1, .CountOfLines
.AddFromString Code
End With
End With
End Sub
'-------------------------------
Salutations!
"Daniel Campion" a écrit dans le message de news:
4301b00b$0$1213$
Bonjour à Tous.........
Sous Windows XP familiale et Excel 2000...............
Nous avons 2 fichiers identiques pour travailler chacun de notre côté.
Mais l'un optimise plutot les donnés et l'autre les Macros.
Le fichier Maître étant celui des donnés, comment faire pour y remplacer
les
Macros éxistantes par les Macros optimisées de l'autre fichier.
Peut-on le faire avec un copier coller une a une, ou exist-il une méthode
plus rationnelle et globable, donc plus simple.
Merci d'avance de vos réponses.........?
Cordialement............Daniel Campion
Bonjour Daniel,
Cette macro détruit tout le code qui existe dans le fichier où les
procédures doivent être mises à jour et les remplace par celle du
fichier source. Pour exécuter cette macro :
A ) Les 2 Fichiers (source et destination) doivent être ouverts
B ) Le nom des objets dans la fenêtre VBE(visual basic editor) doit être
le même pour chaque classeur. Cette procédure n'ajoute pas
de nouveaux objets, elle ne remplace que l'ancien code par le nouveau pour
les objets identiques existants dans chacun des
classeurs.
Dans la procédure, adapte le nom du classeur devant être mise à jour.
'--------------------------------------
Sub AjouterCodeAUneFeuille()
Dim VComp As Object, vc As Object
Dim Fichier As String, Code As String
'Nom du classeur ouvert où seront mises à jours les macros
Fichier = "Classeur3.xls"
With ThisWorkbook
Set VComp = .VBProject.VBComponents
End With
For Each vc In VComp
With vc.codemodule
A = vc.codemodule.Name
If .CountOfLines > 0 Then
Code = .Lines(1, .CountOfLines)
AjouterLeCode Workbooks(Fichier), vc, Code
Code = ""
End If
End With
Next
End Sub
'-------------------------------
Sub AjouterLeCode(Wk As Workbook, vc As Object, Code As String)
With Wk
With .VBProject.VBComponents(vc.Name).codemodule
.DeleteLines 1, .CountOfLines
.AddFromString Code
End With
End With
End Sub
'-------------------------------
Salutations!
"Daniel Campion" a écrit dans le message de news:
4301b00b$0$1213$
Bonjour à Tous.........
Sous Windows XP familiale et Excel 2000...............
Nous avons 2 fichiers identiques pour travailler chacun de notre côté.
Mais l'un optimise plutot les donnés et l'autre les Macros.
Le fichier Maître étant celui des donnés, comment faire pour y remplacer
les
Macros éxistantes par les Macros optimisées de l'autre fichier.
Peut-on le faire avec un copier coller une a une, ou exist-il une méthode
plus rationnelle et globable, donc plus simple.
Merci d'avance de vos réponses.........?
Cordialement............Daniel Campion
Bonjour Daniel,
Cette macro détruit tout le code qui existe dans le fichier où les
procédures doivent être mises à jour et les remplace par celle du
fichier source. Pour exécuter cette macro :
A ) Les 2 Fichiers (source et destination) doivent être ouverts
B ) Le nom des objets dans la fenêtre VBE(visual basic editor) doit être
le même pour chaque classeur. Cette procédure n'ajoute pas
de nouveaux objets, elle ne remplace que l'ancien code par le nouveau pour
les objets identiques existants dans chacun des
classeurs.
Dans la procédure, adapte le nom du classeur devant être mise à jour.
'--------------------------------------
Sub AjouterCodeAUneFeuille()
Dim VComp As Object, vc As Object
Dim Fichier As String, Code As String
'Nom du classeur ouvert où seront mises à jours les macros
Fichier = "Classeur3.xls"
With ThisWorkbook
Set VComp = .VBProject.VBComponents
End With
For Each vc In VComp
With vc.codemodule
A = vc.codemodule.Name
If .CountOfLines > 0 Then
Code = .Lines(1, .CountOfLines)
AjouterLeCode Workbooks(Fichier), vc, Code
Code = ""
End If
End With
Next
End Sub
'-------------------------------
Sub AjouterLeCode(Wk As Workbook, vc As Object, Code As String)
With Wk
With .VBProject.VBComponents(vc.Name).codemodule
.DeleteLines 1, .CountOfLines
.AddFromString Code
End With
End With
End Sub
'-------------------------------
Salutations!
"Daniel Campion" <da.campion@hotmail.fr> a écrit dans le message de news:
4301b00b$0$1213$8fcfb975@news.wanadoo.fr...
Bonjour à Tous.........
Sous Windows XP familiale et Excel 2000...............
Nous avons 2 fichiers identiques pour travailler chacun de notre côté.
Mais l'un optimise plutot les donnés et l'autre les Macros.
Le fichier Maître étant celui des donnés, comment faire pour y remplacer
les
Macros éxistantes par les Macros optimisées de l'autre fichier.
Peut-on le faire avec un copier coller une a une, ou exist-il une méthode
plus rationnelle et globable, donc plus simple.
Merci d'avance de vos réponses.........?
Cordialement............Daniel Campion
Bonjour Daniel,
Cette macro détruit tout le code qui existe dans le fichier où les
procédures doivent être mises à jour et les remplace par celle du
fichier source. Pour exécuter cette macro :
A ) Les 2 Fichiers (source et destination) doivent être ouverts
B ) Le nom des objets dans la fenêtre VBE(visual basic editor) doit être
le même pour chaque classeur. Cette procédure n'ajoute pas
de nouveaux objets, elle ne remplace que l'ancien code par le nouveau pour
les objets identiques existants dans chacun des
classeurs.
Dans la procédure, adapte le nom du classeur devant être mise à jour.
'--------------------------------------
Sub AjouterCodeAUneFeuille()
Dim VComp As Object, vc As Object
Dim Fichier As String, Code As String
'Nom du classeur ouvert où seront mises à jours les macros
Fichier = "Classeur3.xls"
With ThisWorkbook
Set VComp = .VBProject.VBComponents
End With
For Each vc In VComp
With vc.codemodule
A = vc.codemodule.Name
If .CountOfLines > 0 Then
Code = .Lines(1, .CountOfLines)
AjouterLeCode Workbooks(Fichier), vc, Code
Code = ""
End If
End With
Next
End Sub
'-------------------------------
Sub AjouterLeCode(Wk As Workbook, vc As Object, Code As String)
With Wk
With .VBProject.VBComponents(vc.Name).codemodule
.DeleteLines 1, .CountOfLines
.AddFromString Code
End With
End With
End Sub
'-------------------------------
Salutations!
"Daniel Campion" a écrit dans le message de news:
4301b00b$0$1213$
Bonjour à Tous.........
Sous Windows XP familiale et Excel 2000...............
Nous avons 2 fichiers identiques pour travailler chacun de notre côté.
Mais l'un optimise plutot les donnés et l'autre les Macros.
Le fichier Maître étant celui des donnés, comment faire pour y remplacer
les
Macros éxistantes par les Macros optimisées de l'autre fichier.
Peut-on le faire avec un copier coller une a une, ou exist-il une méthode
plus rationnelle et globable, donc plus simple.
Merci d'avance de vos réponses.........?
Cordialement............Daniel Campion
Bonjour à Tous.........
Sous Windows XP familiale et Excel 2000...............
Nous avons 2 fichiers identiques pour travailler chacun de notre côté.
Mais l'un optimise plutot les donnés et l'autre les Macros.
Le fichier Maître étant celui des donnés, comment faire pour y remplacer les
Macros éxistantes par les Macros optimisées de l'autre fichier.
Peut-on le faire avec un copier coller une a une, ou exist-il une méthode
plus rationnelle et globable, donc plus simple.
Merci d'avance de vos réponses.........?
Cordialement............Daniel Campion
Bonjour à Tous.........
Sous Windows XP familiale et Excel 2000...............
Nous avons 2 fichiers identiques pour travailler chacun de notre côté.
Mais l'un optimise plutot les donnés et l'autre les Macros.
Le fichier Maître étant celui des donnés, comment faire pour y remplacer les
Macros éxistantes par les Macros optimisées de l'autre fichier.
Peut-on le faire avec un copier coller une a une, ou exist-il une méthode
plus rationnelle et globable, donc plus simple.
Merci d'avance de vos réponses.........?
Cordialement............Daniel Campion
Bonjour à Tous.........
Sous Windows XP familiale et Excel 2000...............
Nous avons 2 fichiers identiques pour travailler chacun de notre côté.
Mais l'un optimise plutot les donnés et l'autre les Macros.
Le fichier Maître étant celui des donnés, comment faire pour y remplacer les
Macros éxistantes par les Macros optimisées de l'autre fichier.
Peut-on le faire avec un copier coller une a une, ou exist-il une méthode
plus rationnelle et globable, donc plus simple.
Merci d'avance de vos réponses.........?
Cordialement............Daniel Campion
Bonjour Daniel,
Cette macro détruit tout le code qui existe dans le fichier où les
procédures doivent être mises à jour et les remplace par celle du
fichier source. Pour exécuter cette macro :
A ) Les 2 Fichiers (source et destination) doivent être ouverts
B ) Le nom des objets dans la fenêtre VBE(visual basic editor) doit être
le même pour chaque classeur. Cette procédure n'ajoute pas
de nouveaux objets, elle ne remplace que l'ancien code par le nouveau pour
les objets identiques existants dans chacun des
classeurs.
Dans la procédure, adapte le nom du classeur devant être mise à jour.
'--------------------------------------
Sub AjouterCodeAUneFeuille()
Dim VComp As Object, vc As Object
Dim Fichier As String, Code As String
'Nom du classeur ouvert où seront mises à jours les macros
Fichier = "Classeur3.xls"
With ThisWorkbook
Set VComp = .VBProject.VBComponents
End With
For Each vc In VComp
With vc.codemodule
A = vc.codemodule.Name
If .CountOfLines > 0 Then
Code = .Lines(1, .CountOfLines)
AjouterLeCode Workbooks(Fichier), vc, Code
Code = ""
End If
End With
Next
End Sub
'-------------------------------
Sub AjouterLeCode(Wk As Workbook, vc As Object, Code As String)
With Wk
With .VBProject.VBComponents(vc.Name).codemodule
.DeleteLines 1, .CountOfLines
.AddFromString Code
End With
End With
End Sub
'-------------------------------
Salutations!
"Daniel Campion" a écrit dans le message de news:
4301b00b$0$1213$
Bonjour à Tous.........
Sous Windows XP familiale et Excel 2000...............
Nous avons 2 fichiers identiques pour travailler chacun de notre côté.
Mais l'un optimise plutot les donnés et l'autre les Macros.
Le fichier Maître étant celui des donnés, comment faire pour y remplacer
les
Macros éxistantes par les Macros optimisées de l'autre fichier.
Peut-on le faire avec un copier coller une a une, ou exist-il une méthode
plus rationnelle et globable, donc plus simple.
Merci d'avance de vos réponses.........?
Cordialement............Daniel Campion
Bonjour Daniel,
Cette macro détruit tout le code qui existe dans le fichier où les
procédures doivent être mises à jour et les remplace par celle du
fichier source. Pour exécuter cette macro :
A ) Les 2 Fichiers (source et destination) doivent être ouverts
B ) Le nom des objets dans la fenêtre VBE(visual basic editor) doit être
le même pour chaque classeur. Cette procédure n'ajoute pas
de nouveaux objets, elle ne remplace que l'ancien code par le nouveau pour
les objets identiques existants dans chacun des
classeurs.
Dans la procédure, adapte le nom du classeur devant être mise à jour.
'--------------------------------------
Sub AjouterCodeAUneFeuille()
Dim VComp As Object, vc As Object
Dim Fichier As String, Code As String
'Nom du classeur ouvert où seront mises à jours les macros
Fichier = "Classeur3.xls"
With ThisWorkbook
Set VComp = .VBProject.VBComponents
End With
For Each vc In VComp
With vc.codemodule
A = vc.codemodule.Name
If .CountOfLines > 0 Then
Code = .Lines(1, .CountOfLines)
AjouterLeCode Workbooks(Fichier), vc, Code
Code = ""
End If
End With
Next
End Sub
'-------------------------------
Sub AjouterLeCode(Wk As Workbook, vc As Object, Code As String)
With Wk
With .VBProject.VBComponents(vc.Name).codemodule
.DeleteLines 1, .CountOfLines
.AddFromString Code
End With
End With
End Sub
'-------------------------------
Salutations!
"Daniel Campion" <da.campion@hotmail.fr> a écrit dans le message de news:
4301b00b$0$1213$8fcfb975@news.wanadoo.fr...
Bonjour à Tous.........
Sous Windows XP familiale et Excel 2000...............
Nous avons 2 fichiers identiques pour travailler chacun de notre côté.
Mais l'un optimise plutot les donnés et l'autre les Macros.
Le fichier Maître étant celui des donnés, comment faire pour y remplacer
les
Macros éxistantes par les Macros optimisées de l'autre fichier.
Peut-on le faire avec un copier coller une a une, ou exist-il une méthode
plus rationnelle et globable, donc plus simple.
Merci d'avance de vos réponses.........?
Cordialement............Daniel Campion
Bonjour Daniel,
Cette macro détruit tout le code qui existe dans le fichier où les
procédures doivent être mises à jour et les remplace par celle du
fichier source. Pour exécuter cette macro :
A ) Les 2 Fichiers (source et destination) doivent être ouverts
B ) Le nom des objets dans la fenêtre VBE(visual basic editor) doit être
le même pour chaque classeur. Cette procédure n'ajoute pas
de nouveaux objets, elle ne remplace que l'ancien code par le nouveau pour
les objets identiques existants dans chacun des
classeurs.
Dans la procédure, adapte le nom du classeur devant être mise à jour.
'--------------------------------------
Sub AjouterCodeAUneFeuille()
Dim VComp As Object, vc As Object
Dim Fichier As String, Code As String
'Nom du classeur ouvert où seront mises à jours les macros
Fichier = "Classeur3.xls"
With ThisWorkbook
Set VComp = .VBProject.VBComponents
End With
For Each vc In VComp
With vc.codemodule
A = vc.codemodule.Name
If .CountOfLines > 0 Then
Code = .Lines(1, .CountOfLines)
AjouterLeCode Workbooks(Fichier), vc, Code
Code = ""
End If
End With
Next
End Sub
'-------------------------------
Sub AjouterLeCode(Wk As Workbook, vc As Object, Code As String)
With Wk
With .VBProject.VBComponents(vc.Name).codemodule
.DeleteLines 1, .CountOfLines
.AddFromString Code
End With
End With
End Sub
'-------------------------------
Salutations!
"Daniel Campion" a écrit dans le message de news:
4301b00b$0$1213$
Bonjour à Tous.........
Sous Windows XP familiale et Excel 2000...............
Nous avons 2 fichiers identiques pour travailler chacun de notre côté.
Mais l'un optimise plutot les donnés et l'autre les Macros.
Le fichier Maître étant celui des donnés, comment faire pour y remplacer
les
Macros éxistantes par les Macros optimisées de l'autre fichier.
Peut-on le faire avec un copier coller une a une, ou exist-il une méthode
plus rationnelle et globable, donc plus simple.
Merci d'avance de vos réponses.........?
Cordialement............Daniel Campion
Bonjour Daniel,
Cette macro détruit tout le code qui existe dans le fichier où les
procédures doivent être mises à jour et les remplace par celle du
fichier source. Pour exécuter cette macro :
A ) Les 2 Fichiers (source et destination) doivent être ouverts
B ) Le nom des objets dans la fenêtre VBE(visual basic editor) doit être
le même pour chaque classeur. Cette procédure n'ajoute pas
de nouveaux objets, elle ne remplace que l'ancien code par le nouveau pour
les objets identiques existants dans chacun des
classeurs.
Dans la procédure, adapte le nom du classeur devant être mise à jour.
'--------------------------------------
Sub AjouterCodeAUneFeuille()
Dim VComp As Object, vc As Object
Dim Fichier As String, Code As String
'Nom du classeur ouvert où seront mises à jours les macros
Fichier = "Classeur3.xls"
With ThisWorkbook
Set VComp = .VBProject.VBComponents
End With
For Each vc In VComp
With vc.codemodule
A = vc.codemodule.Name
If .CountOfLines > 0 Then
Code = .Lines(1, .CountOfLines)
AjouterLeCode Workbooks(Fichier), vc, Code
Code = ""
End If
End With
Next
End Sub
'-------------------------------
Sub AjouterLeCode(Wk As Workbook, vc As Object, Code As String)
With Wk
With .VBProject.VBComponents(vc.Name).codemodule
.DeleteLines 1, .CountOfLines
.AddFromString Code
End With
End With
End Sub
'-------------------------------
Salutations!
"Daniel Campion" a écrit dans le message de news:
4301b00b$0$1213$
Bonjour à Tous.........
Sous Windows XP familiale et Excel 2000...............
Nous avons 2 fichiers identiques pour travailler chacun de notre côté.
Mais l'un optimise plutot les donnés et l'autre les Macros.
Le fichier Maître étant celui des donnés, comment faire pour y remplacer
les
Macros éxistantes par les Macros optimisées de l'autre fichier.
Peut-on le faire avec un copier coller une a une, ou exist-il une méthode
plus rationnelle et globable, donc plus simple.
Merci d'avance de vos réponses.........?
Cordialement............Daniel Campion
Bonjour Daniel,
Cette macro détruit tout le code qui existe dans le fichier où les
procédures doivent être mises à jour et les remplace par celle du
fichier source. Pour exécuter cette macro :
A ) Les 2 Fichiers (source et destination) doivent être ouverts
B ) Le nom des objets dans la fenêtre VBE(visual basic editor) doit être
le même pour chaque classeur. Cette procédure n'ajoute pas
de nouveaux objets, elle ne remplace que l'ancien code par le nouveau pour
les objets identiques existants dans chacun des
classeurs.
Dans la procédure, adapte le nom du classeur devant être mise à jour.
'--------------------------------------
Sub AjouterCodeAUneFeuille()
Dim VComp As Object, vc As Object
Dim Fichier As String, Code As String
'Nom du classeur ouvert où seront mises à jours les macros
Fichier = "Classeur3.xls"
With ThisWorkbook
Set VComp = .VBProject.VBComponents
End With
For Each vc In VComp
With vc.codemodule
A = vc.codemodule.Name
If .CountOfLines > 0 Then
Code = .Lines(1, .CountOfLines)
AjouterLeCode Workbooks(Fichier), vc, Code
Code = ""
End If
End With
Next
End Sub
'-------------------------------
Sub AjouterLeCode(Wk As Workbook, vc As Object, Code As String)
With Wk
With .VBProject.VBComponents(vc.Name).codemodule
.DeleteLines 1, .CountOfLines
.AddFromString Code
End With
End With
End Sub
'-------------------------------
Salutations!
"Daniel Campion" <da.campion@hotmail.fr> a écrit dans le message de news:
4301b00b$0$1213$8fcfb975@news.wanadoo.fr...
Bonjour à Tous.........
Sous Windows XP familiale et Excel 2000...............
Nous avons 2 fichiers identiques pour travailler chacun de notre côté.
Mais l'un optimise plutot les donnés et l'autre les Macros.
Le fichier Maître étant celui des donnés, comment faire pour y remplacer
les
Macros éxistantes par les Macros optimisées de l'autre fichier.
Peut-on le faire avec un copier coller une a une, ou exist-il une méthode
plus rationnelle et globable, donc plus simple.
Merci d'avance de vos réponses.........?
Cordialement............Daniel Campion
Bonjour Daniel,
Cette macro détruit tout le code qui existe dans le fichier où les
procédures doivent être mises à jour et les remplace par celle du
fichier source. Pour exécuter cette macro :
A ) Les 2 Fichiers (source et destination) doivent être ouverts
B ) Le nom des objets dans la fenêtre VBE(visual basic editor) doit être
le même pour chaque classeur. Cette procédure n'ajoute pas
de nouveaux objets, elle ne remplace que l'ancien code par le nouveau pour
les objets identiques existants dans chacun des
classeurs.
Dans la procédure, adapte le nom du classeur devant être mise à jour.
'--------------------------------------
Sub AjouterCodeAUneFeuille()
Dim VComp As Object, vc As Object
Dim Fichier As String, Code As String
'Nom du classeur ouvert où seront mises à jours les macros
Fichier = "Classeur3.xls"
With ThisWorkbook
Set VComp = .VBProject.VBComponents
End With
For Each vc In VComp
With vc.codemodule
A = vc.codemodule.Name
If .CountOfLines > 0 Then
Code = .Lines(1, .CountOfLines)
AjouterLeCode Workbooks(Fichier), vc, Code
Code = ""
End If
End With
Next
End Sub
'-------------------------------
Sub AjouterLeCode(Wk As Workbook, vc As Object, Code As String)
With Wk
With .VBProject.VBComponents(vc.Name).codemodule
.DeleteLines 1, .CountOfLines
.AddFromString Code
End With
End With
End Sub
'-------------------------------
Salutations!
"Daniel Campion" a écrit dans le message de news:
4301b00b$0$1213$
Bonjour à Tous.........
Sous Windows XP familiale et Excel 2000...............
Nous avons 2 fichiers identiques pour travailler chacun de notre côté.
Mais l'un optimise plutot les donnés et l'autre les Macros.
Le fichier Maître étant celui des donnés, comment faire pour y remplacer
les
Macros éxistantes par les Macros optimisées de l'autre fichier.
Peut-on le faire avec un copier coller une a une, ou exist-il une méthode
plus rationnelle et globable, donc plus simple.
Merci d'avance de vos réponses.........?
Cordialement............Daniel Campion
Bonjour Daniel
| Une fenètre s'ouvre " Erreur d'éxécution'9': L'indice n'appartient pas à
la sélection."
L'explication je te l'ai déjà donné.
Pour TOUS LES OBJETS ("module de feuille" , "module standard" , "Module de
classe" si tu en as, "Formulaire", je disais donc que ces
objets doivent avoir leur pendant (vis-à-vis) dans le classeur de
destination avec la même appellation "Propriété Name" que tu
retrouves dans la section des Propriétés de la fenêtre VBE (visual basic
editor)
Si ce n'est pas le cas, la procédure bloquera où tu l'as indiqué.
With .VBProject.VBComponents(vc.Name).codemodule
vc.name représente le nom de l'objet du classeur source (module de
feuille, module standard, userform ...) Lorsqu'il arrive dans le
classeur de destination, il cherche l'objet attaché à ce nom pour y faire
la transformation du code. et s'il ne le trouve pas, la
procédure bloque.
Je n'ai pas fait appel à des truc comme "on error resume next" pour éviter
de leurrer l'usager ... si le job est mal fait... vaut
mieux le savoir immédiatement que de se laisser bercer d'illusions.
j'espère que c'est plus clair..
Salutations!
"Daniel Campion" a écrit dans le message de news:
43036b64$0$22285$
Bonjour à Tous..........Bonjour michdenis........
Merci pour ta réponse rapide.
J'ai donc fait l'essai de ta macro et à première vue il doit y avoir un
défaut d'éxécution de ma part.
Une fenètre s'ouvre " Erreur d'éxécution'9': L'indice n'appartient pas à
la
sélection."
Et le débogage désigne cette ligne de la macro :
With .VBProject.VBComponents(vc.Name).codemodule
Est-ce que tu peux me donner une explication.!........Merci
d'avance......!
PS........Bonjour Ange Ounis
Je te remercie pour ta solution possible, Mais je crois que je verrais ça
plus tard ( avec plus d'expérience )
Salutations..................un Grand Merci à Tous..............Daniel
Campion
"michdenis" a écrit dans le message de news:
%Bonjour Daniel,
Cette macro détruit tout le code qui existe dans le fichier où les
procédures doivent être mises à jour et les remplace par celle du
fichier source. Pour exécuter cette macro :
A ) Les 2 Fichiers (source et destination) doivent être ouverts
B ) Le nom des objets dans la fenêtre VBE(visual basic editor) doit être
le même pour chaque classeur. Cette procédure n'ajoute pas
de nouveaux objets, elle ne remplace que l'ancien code par le nouveau
pour
les objets identiques existants dans chacun des
classeurs.
Dans la procédure, adapte le nom du classeur devant être mise à jour.
'--------------------------------------
Sub AjouterCodeAUneFeuille()
Dim VComp As Object, vc As Object
Dim Fichier As String, Code As String
'Nom du classeur ouvert où seront mises à jours les macros
Fichier = "Classeur3.xls"
With ThisWorkbook
Set VComp = .VBProject.VBComponents
End With
For Each vc In VComp
With vc.codemodule
A = vc.codemodule.Name
If .CountOfLines > 0 Then
Code = .Lines(1, .CountOfLines)
AjouterLeCode Workbooks(Fichier), vc, Code
Code = ""
End If
End With
Next
End Sub
'-------------------------------
Sub AjouterLeCode(Wk As Workbook, vc As Object, Code As String)
With Wk
With .VBProject.VBComponents(vc.Name).codemodule
.DeleteLines 1, .CountOfLines
.AddFromString Code
End With
End With
End Sub
'-------------------------------
Salutations!
"Daniel Campion" a écrit dans le message de news:
4301b00b$0$1213$
Bonjour à Tous.........
Sous Windows XP familiale et Excel 2000...............
Nous avons 2 fichiers identiques pour travailler chacun de notre côté.
Mais l'un optimise plutot les donnés et l'autre les Macros.
Le fichier Maître étant celui des donnés, comment faire pour y remplacer
les
Macros éxistantes par les Macros optimisées de l'autre fichier.
Peut-on le faire avec un copier coller une a une, ou exist-il une méthode
plus rationnelle et globable, donc plus simple.
Merci d'avance de vos réponses.........?
Cordialement............Daniel Campion
Bonjour Daniel
| Une fenètre s'ouvre " Erreur d'éxécution'9': L'indice n'appartient pas à
la sélection."
L'explication je te l'ai déjà donné.
Pour TOUS LES OBJETS ("module de feuille" , "module standard" , "Module de
classe" si tu en as, "Formulaire", je disais donc que ces
objets doivent avoir leur pendant (vis-à-vis) dans le classeur de
destination avec la même appellation "Propriété Name" que tu
retrouves dans la section des Propriétés de la fenêtre VBE (visual basic
editor)
Si ce n'est pas le cas, la procédure bloquera où tu l'as indiqué.
With .VBProject.VBComponents(vc.Name).codemodule
vc.name représente le nom de l'objet du classeur source (module de
feuille, module standard, userform ...) Lorsqu'il arrive dans le
classeur de destination, il cherche l'objet attaché à ce nom pour y faire
la transformation du code. et s'il ne le trouve pas, la
procédure bloque.
Je n'ai pas fait appel à des truc comme "on error resume next" pour éviter
de leurrer l'usager ... si le job est mal fait... vaut
mieux le savoir immédiatement que de se laisser bercer d'illusions.
j'espère que c'est plus clair..
Salutations!
"Daniel Campion" <da.campion@hotmail.fr> a écrit dans le message de news:
43036b64$0$22285$8fcfb975@news.wanadoo.fr...
Bonjour à Tous..........Bonjour michdenis........
Merci pour ta réponse rapide.
J'ai donc fait l'essai de ta macro et à première vue il doit y avoir un
défaut d'éxécution de ma part.
Une fenètre s'ouvre " Erreur d'éxécution'9': L'indice n'appartient pas à
la
sélection."
Et le débogage désigne cette ligne de la macro :
With .VBProject.VBComponents(vc.Name).codemodule
Est-ce que tu peux me donner une explication.!........Merci
d'avance......!
PS........Bonjour Ange Ounis
Je te remercie pour ta solution possible, Mais je crois que je verrais ça
plus tard ( avec plus d'expérience )
Salutations..................un Grand Merci à Tous..............Daniel
Campion
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23O67bLmoFHA.2080@TK2MSFTNGP14.phx.gbl...
Bonjour Daniel,
Cette macro détruit tout le code qui existe dans le fichier où les
procédures doivent être mises à jour et les remplace par celle du
fichier source. Pour exécuter cette macro :
A ) Les 2 Fichiers (source et destination) doivent être ouverts
B ) Le nom des objets dans la fenêtre VBE(visual basic editor) doit être
le même pour chaque classeur. Cette procédure n'ajoute pas
de nouveaux objets, elle ne remplace que l'ancien code par le nouveau
pour
les objets identiques existants dans chacun des
classeurs.
Dans la procédure, adapte le nom du classeur devant être mise à jour.
'--------------------------------------
Sub AjouterCodeAUneFeuille()
Dim VComp As Object, vc As Object
Dim Fichier As String, Code As String
'Nom du classeur ouvert où seront mises à jours les macros
Fichier = "Classeur3.xls"
With ThisWorkbook
Set VComp = .VBProject.VBComponents
End With
For Each vc In VComp
With vc.codemodule
A = vc.codemodule.Name
If .CountOfLines > 0 Then
Code = .Lines(1, .CountOfLines)
AjouterLeCode Workbooks(Fichier), vc, Code
Code = ""
End If
End With
Next
End Sub
'-------------------------------
Sub AjouterLeCode(Wk As Workbook, vc As Object, Code As String)
With Wk
With .VBProject.VBComponents(vc.Name).codemodule
.DeleteLines 1, .CountOfLines
.AddFromString Code
End With
End With
End Sub
'-------------------------------
Salutations!
"Daniel Campion" <da.campion@hotmail.fr> a écrit dans le message de news:
4301b00b$0$1213$8fcfb975@news.wanadoo.fr...
Bonjour à Tous.........
Sous Windows XP familiale et Excel 2000...............
Nous avons 2 fichiers identiques pour travailler chacun de notre côté.
Mais l'un optimise plutot les donnés et l'autre les Macros.
Le fichier Maître étant celui des donnés, comment faire pour y remplacer
les
Macros éxistantes par les Macros optimisées de l'autre fichier.
Peut-on le faire avec un copier coller une a une, ou exist-il une méthode
plus rationnelle et globable, donc plus simple.
Merci d'avance de vos réponses.........?
Cordialement............Daniel Campion
Bonjour Daniel
| Une fenètre s'ouvre " Erreur d'éxécution'9': L'indice n'appartient pas à
la sélection."
L'explication je te l'ai déjà donné.
Pour TOUS LES OBJETS ("module de feuille" , "module standard" , "Module de
classe" si tu en as, "Formulaire", je disais donc que ces
objets doivent avoir leur pendant (vis-à-vis) dans le classeur de
destination avec la même appellation "Propriété Name" que tu
retrouves dans la section des Propriétés de la fenêtre VBE (visual basic
editor)
Si ce n'est pas le cas, la procédure bloquera où tu l'as indiqué.
With .VBProject.VBComponents(vc.Name).codemodule
vc.name représente le nom de l'objet du classeur source (module de
feuille, module standard, userform ...) Lorsqu'il arrive dans le
classeur de destination, il cherche l'objet attaché à ce nom pour y faire
la transformation du code. et s'il ne le trouve pas, la
procédure bloque.
Je n'ai pas fait appel à des truc comme "on error resume next" pour éviter
de leurrer l'usager ... si le job est mal fait... vaut
mieux le savoir immédiatement que de se laisser bercer d'illusions.
j'espère que c'est plus clair..
Salutations!
"Daniel Campion" a écrit dans le message de news:
43036b64$0$22285$
Bonjour à Tous..........Bonjour michdenis........
Merci pour ta réponse rapide.
J'ai donc fait l'essai de ta macro et à première vue il doit y avoir un
défaut d'éxécution de ma part.
Une fenètre s'ouvre " Erreur d'éxécution'9': L'indice n'appartient pas à
la
sélection."
Et le débogage désigne cette ligne de la macro :
With .VBProject.VBComponents(vc.Name).codemodule
Est-ce que tu peux me donner une explication.!........Merci
d'avance......!
PS........Bonjour Ange Ounis
Je te remercie pour ta solution possible, Mais je crois que je verrais ça
plus tard ( avec plus d'expérience )
Salutations..................un Grand Merci à Tous..............Daniel
Campion
"michdenis" a écrit dans le message de news:
%Bonjour Daniel,
Cette macro détruit tout le code qui existe dans le fichier où les
procédures doivent être mises à jour et les remplace par celle du
fichier source. Pour exécuter cette macro :
A ) Les 2 Fichiers (source et destination) doivent être ouverts
B ) Le nom des objets dans la fenêtre VBE(visual basic editor) doit être
le même pour chaque classeur. Cette procédure n'ajoute pas
de nouveaux objets, elle ne remplace que l'ancien code par le nouveau
pour
les objets identiques existants dans chacun des
classeurs.
Dans la procédure, adapte le nom du classeur devant être mise à jour.
'--------------------------------------
Sub AjouterCodeAUneFeuille()
Dim VComp As Object, vc As Object
Dim Fichier As String, Code As String
'Nom du classeur ouvert où seront mises à jours les macros
Fichier = "Classeur3.xls"
With ThisWorkbook
Set VComp = .VBProject.VBComponents
End With
For Each vc In VComp
With vc.codemodule
A = vc.codemodule.Name
If .CountOfLines > 0 Then
Code = .Lines(1, .CountOfLines)
AjouterLeCode Workbooks(Fichier), vc, Code
Code = ""
End If
End With
Next
End Sub
'-------------------------------
Sub AjouterLeCode(Wk As Workbook, vc As Object, Code As String)
With Wk
With .VBProject.VBComponents(vc.Name).codemodule
.DeleteLines 1, .CountOfLines
.AddFromString Code
End With
End With
End Sub
'-------------------------------
Salutations!
"Daniel Campion" a écrit dans le message de news:
4301b00b$0$1213$
Bonjour à Tous.........
Sous Windows XP familiale et Excel 2000...............
Nous avons 2 fichiers identiques pour travailler chacun de notre côté.
Mais l'un optimise plutot les donnés et l'autre les Macros.
Le fichier Maître étant celui des donnés, comment faire pour y remplacer
les
Macros éxistantes par les Macros optimisées de l'autre fichier.
Peut-on le faire avec un copier coller une a une, ou exist-il une méthode
plus rationnelle et globable, donc plus simple.
Merci d'avance de vos réponses.........?
Cordialement............Daniel Campion