Bon, j'ai été confronté à ce soucis de modifier du code avec du code, pas pour Excel mais pour Word... le problème est quasiment le même.
en fait, quelqu'un avait écrit des tonnes de macros avec les pieds et ces macros là étaient reprise dans un tas de doc et de modèle. Suite à une réorganisation du bo*** en place, il FAUT modifier TOOOOUUUUUTES les macros afin que ça puisse continuer à fonctionner avec l'existant ET la nouvelle organisation. Voila le soucis. La réalisation ; faire une macro qui va modifier toooooouuuuuutes les macros de tous les doc et de tous les modèles... Quasi impossible de faire ça manuellement et impossible aussi de faire comme tu le suggères un export et un import car le bouzin est écrit avec les pieds et a avancé (j'exclus le terme "évolué" volontairement :-D) sans la moindre documentation d'année en année. Bref, il fallait que je retrouve dans les macros un bout de code que je devais modifier
Voila une des explications, il y en a peut-être d'autres, mais la je te parle de ma propre expérience
Pour changer de chapitre, je suis parfaitement d'accord avec toi sur le mode de fonctionnement du forum qui à largement dévié et je suis aussi parfaitement d'accord avec FxM sur le fait que ce n'est pas une hotline gratuite. J'arrête là sinon je vais en faire un roman ;-)
-- JièL / Jean-Louis GOUBERT Là bas mieux qu'en face ;-) http://forums.offices.free.fr/ La FAQ Outlook est là : http://faq.outlook.free.fr/ Les stats de CDO : http://faq.outlook.free.fr/cdo/
Le 06/10/2006 18:24 vous avez écrit ceci :
Tu as raison, laissons tomber. Pour les autres, quelqu'un à une réponse à ma petite question?
A+
Paul V
"MichDenis" a écrit dans le message de news: %
| A propos, tu penses que notre demandeur a créé un modèle et veut modifier le | code de tous les classeurs qui existent dejà, ( je blague, bien sur)
Pourquoi tiens-tu tant que cela à te mettre à la place (dans la peau) du demandeur ? À ce que je sache, il n'est pas limité quant aux nombres de questions qu'il peut adresser au forum...ni des compléments d'informations qu'il peut demander à la (les) solution proposée ...Laissons lui l'initiative.... Non ?
Bonjoir(c) Paul V
t'as pété une durit aujourd'hui je vois ;-)
Bon, j'ai été confronté à ce soucis de modifier du code avec du code, pas
pour Excel mais pour Word... le problème est quasiment le même.
en fait, quelqu'un avait écrit des tonnes de macros avec les pieds et ces
macros là étaient reprise dans un tas de doc et de modèle. Suite à une
réorganisation du bo*** en place, il FAUT modifier TOOOOUUUUUTES les
macros afin que ça puisse continuer à fonctionner avec l'existant ET la
nouvelle organisation. Voila le soucis.
La réalisation ; faire une macro qui va modifier toooooouuuuuutes les
macros de tous les doc et de tous les modèles... Quasi impossible de faire
ça manuellement et impossible aussi de faire comme tu le suggères un
export et un import car le bouzin est écrit avec les pieds et a avancé
(j'exclus le terme "évolué" volontairement :-D) sans la moindre
documentation d'année en année. Bref, il fallait que je retrouve dans les
macros un bout de code que je devais modifier
Voila une des explications, il y en a peut-être d'autres, mais la je te
parle de ma propre expérience
Pour changer de chapitre, je suis parfaitement d'accord avec toi sur le
mode de fonctionnement du forum qui à largement dévié et je suis aussi
parfaitement d'accord avec FxM sur le fait que ce n'est pas une hotline
gratuite. J'arrête là sinon je vais en faire un roman ;-)
--
JièL / Jean-Louis GOUBERT
Là bas mieux qu'en face ;-) http://forums.offices.free.fr/
La FAQ Outlook est là : http://faq.outlook.free.fr/
Les stats de CDO : http://faq.outlook.free.fr/cdo/
Le 06/10/2006 18:24 vous avez écrit ceci :
Tu as raison, laissons tomber.
Pour les autres, quelqu'un à une réponse à ma petite question?
A+
Paul V
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23q02uNW6GHA.2120@TK2MSFTNGP03.phx.gbl...
| A propos, tu penses que notre demandeur a créé un modèle et veut
modifier le
| code de tous les classeurs qui existent dejà, ( je blague, bien sur)
Pourquoi tiens-tu tant que cela à te mettre à la place (dans la peau) du
demandeur ?
À ce que je sache, il n'est pas limité quant aux nombres de questions
qu'il peut
adresser au forum...ni des compléments d'informations qu'il peut demander
à la
(les) solution proposée ...Laissons lui l'initiative.... Non ?
Bon, j'ai été confronté à ce soucis de modifier du code avec du code, pas pour Excel mais pour Word... le problème est quasiment le même.
en fait, quelqu'un avait écrit des tonnes de macros avec les pieds et ces macros là étaient reprise dans un tas de doc et de modèle. Suite à une réorganisation du bo*** en place, il FAUT modifier TOOOOUUUUUTES les macros afin que ça puisse continuer à fonctionner avec l'existant ET la nouvelle organisation. Voila le soucis. La réalisation ; faire une macro qui va modifier toooooouuuuuutes les macros de tous les doc et de tous les modèles... Quasi impossible de faire ça manuellement et impossible aussi de faire comme tu le suggères un export et un import car le bouzin est écrit avec les pieds et a avancé (j'exclus le terme "évolué" volontairement :-D) sans la moindre documentation d'année en année. Bref, il fallait que je retrouve dans les macros un bout de code que je devais modifier
Voila une des explications, il y en a peut-être d'autres, mais la je te parle de ma propre expérience
Pour changer de chapitre, je suis parfaitement d'accord avec toi sur le mode de fonctionnement du forum qui à largement dévié et je suis aussi parfaitement d'accord avec FxM sur le fait que ce n'est pas une hotline gratuite. J'arrête là sinon je vais en faire un roman ;-)
-- JièL / Jean-Louis GOUBERT Là bas mieux qu'en face ;-) http://forums.offices.free.fr/ La FAQ Outlook est là : http://faq.outlook.free.fr/ Les stats de CDO : http://faq.outlook.free.fr/cdo/
Le 06/10/2006 18:24 vous avez écrit ceci :
Tu as raison, laissons tomber. Pour les autres, quelqu'un à une réponse à ma petite question?
A+
Paul V
"MichDenis" a écrit dans le message de news: %
| A propos, tu penses que notre demandeur a créé un modèle et veut modifier le | code de tous les classeurs qui existent dejà, ( je blague, bien sur)
Pourquoi tiens-tu tant que cela à te mettre à la place (dans la peau) du demandeur ? À ce que je sache, il n'est pas limité quant aux nombres de questions qu'il peut adresser au forum...ni des compléments d'informations qu'il peut demander à la (les) solution proposée ...Laissons lui l'initiative.... Non ?
Patrick Penet
Bonjour tous,
Ben ça discute ferme là-dedans !
J'ai été confronté au pb que décrit JièL et je m'en suis sorti exportant TOUT le code dans Word, puis en utilisant la fonction Rechercher- Remplacer.
C'est fastidieux et petit-bras, mais ça a marché.
Cordialement. PP
Bonjour tous,
Ben ça discute ferme là-dedans !
J'ai été confronté au pb que décrit JièL et je
m'en suis sorti exportant TOUT le code dans
Word, puis en utilisant la fonction Rechercher-
Remplacer.
J'ai été confronté au pb que décrit JièL et je m'en suis sorti exportant TOUT le code dans Word, puis en utilisant la fonction Rechercher- Remplacer.
C'est fastidieux et petit-bras, mais ça a marché.
Cordialement. PP
Ange Ounis
Peut-être avec ce genre de code (sous réserve d'utiliser Excel 2000 ou version plus récente) ?
''''''''''''''''''''' Sub essai() ''''''''à adapter Wbk = "Perso.xls" Avant = "LineStyle:=xlDouble" Apres = "LineStyle:=xlAutomatic" ''''''''''''''''' ModifierCodeVBA Wbk, Avant, Apres End Sub
Sub ModifierCodeVBA(NomClasseur, AvantModif, ApresModif) Dim VBComp, S$
With Workbooks(NomClasseur).VBProject For Each VBComp In .VBComponents With VBComp.CodeModule On Error Resume Next S = .Lines(1, .CountOfLines) .DeleteLines 1, .CountOfLines On Error GoTo 0 S = Join(Split(S, AvantModif), ApresModif) .AddFromString S End With Next End With Workbooks(NomClasseur).Save
End Sub '''''''''''''''''''''
---------- Ange Ounis ----------
Hello Jacky,
Pas encore au lit?
Dois-je le repeter, je n'ai jamais mis la compétence de Denis en doute, tout du contraire. Cela étant dit, je ne crois pas que le demandeur peut résoudre son problème avec la réponse donnée, mais j'espere pour lui que je me trompe.
A+
PAul V "Jacky" a écrit dans le message de news:
Paul...... Sans vouloir prendre partie, là, tu exagères, Je ne vois vraiment pas ce qu'il y a d'inutile ou d'inadapté dans la réponse de Denis, qui pour le moins que l'on puisse dire est très compétant en la matière. Pour moi, eternel débutant, il a parfaitement répondu à la question posée. -- Salutations JJ
"Paul V" a écrit dans le message de news:
Tout le monde est le bienvenu.
Je repondrais simplement que c'est quand même mieux quand le demandeur a aussi une réponse utile et adaptée;-)
A+
Paul V
"Stéphan DuQuébec" a écrit dans le message de news:
Bonjour messieurs, dames,
Sans vouloir me mêler de ce qui ne me regarde pas, j'ajouterais simplement que les codes, soluces, réponses, conseils qui sont fournis par MicheDenis, et par tous les autres qui mettent leur grande compétence au service de la communauté, ne servent pas qu'à l'initiateur de la question mais à des centaines (milliers !?!?!?) d'autres lecteurs silencieux qui eux, ne sont pas tous débutants. Ne perdons pas ça de vue.....c'est ce qui fait la richesse, je crois, d'un site comme le mpfe.
Amicalement.
Peut-être avec ce genre de code (sous réserve d'utiliser Excel 2000 ou version
plus récente) ?
'''''''''''''''''''''
Sub essai()
''''''''à adapter
Wbk = "Perso.xls"
Avant = "LineStyle:=xlDouble"
Apres = "LineStyle:=xlAutomatic"
'''''''''''''''''
ModifierCodeVBA Wbk, Avant, Apres
End Sub
Sub ModifierCodeVBA(NomClasseur, AvantModif, ApresModif)
Dim VBComp, S$
With Workbooks(NomClasseur).VBProject
For Each VBComp In .VBComponents
With VBComp.CodeModule
On Error Resume Next
S = .Lines(1, .CountOfLines)
.DeleteLines 1, .CountOfLines
On Error GoTo 0
S = Join(Split(S, AvantModif), ApresModif)
.AddFromString S
End With
Next
End With
Workbooks(NomClasseur).Save
End Sub
'''''''''''''''''''''
----------
Ange Ounis
----------
Hello Jacky,
Pas encore au lit?
Dois-je le repeter, je n'ai jamais mis la compétence de Denis en doute, tout
du contraire.
Cela étant dit, je ne crois pas que le demandeur peut résoudre son problème
avec la réponse donnée, mais j'espere pour lui que je me trompe.
A+
PAul V
"Jacky" <nospams@not> a écrit dans le message de news:
exn737V6GHA.1248@TK2MSFTNGP03.phx.gbl...
Paul......
Sans vouloir prendre partie, là, tu exagères,
Je ne vois vraiment pas ce qu'il y a d'inutile ou d'inadapté dans la
réponse de Denis, qui pour le moins que l'on puisse dire est très
compétant en la matière.
Pour moi, eternel débutant, il a parfaitement répondu à la question posée.
--
Salutations
JJ
"Paul V" <nobody@home.ir> a écrit dans le message de news:
OMFPN1V6GHA.4304@TK2MSFTNGP03.phx.gbl...
Tout le monde est le bienvenu.
Je repondrais simplement que c'est quand même mieux quand le demandeur a
aussi une réponse utile et adaptée;-)
A+
Paul V
"Stéphan DuQuébec" <StphanDuQubec@discussions.microsoft.com> a écrit dans
le message de news: C47C109E-797F-4C00-A7B6-9150E8B611F4@microsoft.com...
Bonjour messieurs, dames,
Sans vouloir me mêler de ce qui ne me regarde pas, j'ajouterais
simplement
que les codes, soluces, réponses, conseils qui sont fournis par
MicheDenis,
et par tous les autres qui mettent leur grande compétence au service de
la
communauté, ne servent pas qu'à l'initiateur de la question mais à des
centaines (milliers !?!?!?) d'autres lecteurs silencieux qui eux, ne
sont pas
tous débutants. Ne perdons pas ça de vue.....c'est ce qui fait la
richesse,
je crois, d'un site comme le mpfe.
Peut-être avec ce genre de code (sous réserve d'utiliser Excel 2000 ou version plus récente) ?
''''''''''''''''''''' Sub essai() ''''''''à adapter Wbk = "Perso.xls" Avant = "LineStyle:=xlDouble" Apres = "LineStyle:=xlAutomatic" ''''''''''''''''' ModifierCodeVBA Wbk, Avant, Apres End Sub
Sub ModifierCodeVBA(NomClasseur, AvantModif, ApresModif) Dim VBComp, S$
With Workbooks(NomClasseur).VBProject For Each VBComp In .VBComponents With VBComp.CodeModule On Error Resume Next S = .Lines(1, .CountOfLines) .DeleteLines 1, .CountOfLines On Error GoTo 0 S = Join(Split(S, AvantModif), ApresModif) .AddFromString S End With Next End With Workbooks(NomClasseur).Save
End Sub '''''''''''''''''''''
---------- Ange Ounis ----------
Hello Jacky,
Pas encore au lit?
Dois-je le repeter, je n'ai jamais mis la compétence de Denis en doute, tout du contraire. Cela étant dit, je ne crois pas que le demandeur peut résoudre son problème avec la réponse donnée, mais j'espere pour lui que je me trompe.
A+
PAul V "Jacky" a écrit dans le message de news:
Paul...... Sans vouloir prendre partie, là, tu exagères, Je ne vois vraiment pas ce qu'il y a d'inutile ou d'inadapté dans la réponse de Denis, qui pour le moins que l'on puisse dire est très compétant en la matière. Pour moi, eternel débutant, il a parfaitement répondu à la question posée. -- Salutations JJ
"Paul V" a écrit dans le message de news:
Tout le monde est le bienvenu.
Je repondrais simplement que c'est quand même mieux quand le demandeur a aussi une réponse utile et adaptée;-)
A+
Paul V
"Stéphan DuQuébec" a écrit dans le message de news:
Bonjour messieurs, dames,
Sans vouloir me mêler de ce qui ne me regarde pas, j'ajouterais simplement que les codes, soluces, réponses, conseils qui sont fournis par MicheDenis, et par tous les autres qui mettent leur grande compétence au service de la communauté, ne servent pas qu'à l'initiateur de la question mais à des centaines (milliers !?!?!?) d'autres lecteurs silencieux qui eux, ne sont pas tous débutants. Ne perdons pas ça de vue.....c'est ce qui fait la richesse, je crois, d'un site comme le mpfe.
Amicalement.
ewts
Merci à tous pour les exemples, remarques, commentaires,.. Le problème est bien de modifier certains "paramètres" dans un grand nombre de procédures existantes (écrites par d'autres, non documentées et utilisées depuis un certain temps). J'espérais trouver une solution plus élégante que celle qui consiste à ouvrir chaque classeur et à aller corriger manuellement le code concerné.
Encore merci et à +
Peut-être avec ce genre de code (sous réserve d'utiliser Excel 2000 ou version plus récente) ?
''''''''''''''''''''' Sub essai() ''''''''à adapter Wbk = "Perso.xls" Avant = "LineStyle:=xlDouble" Apres = "LineStyle:=xlAutomatic" ''''''''''''''''' ModifierCodeVBA Wbk, Avant, Apres End Sub
Sub ModifierCodeVBA(NomClasseur, AvantModif, ApresModif) Dim VBComp, S$
With Workbooks(NomClasseur).VBProject For Each VBComp In .VBComponents With VBComp.CodeModule On Error Resume Next S = .Lines(1, .CountOfLines) .DeleteLines 1, .CountOfLines On Error GoTo 0 S = Join(Split(S, AvantModif), ApresModif) .AddFromString S End With Next End With Workbooks(NomClasseur).Save
End Sub '''''''''''''''''''''
---------- Ange Ounis ----------
Hello Jacky,
Pas encore au lit?
Dois-je le repeter, je n'ai jamais mis la compétence de Denis en doute, tout du contraire. Cela étant dit, je ne crois pas que le demandeur peut résoudre son problème avec la réponse donnée, mais j'espere pour lui que je me trompe.
A+
PAul V "Jacky" a écrit dans le message de news:
Paul...... Sans vouloir prendre partie, là, tu exagères, Je ne vois vraiment pas ce qu'il y a d'inutile ou d'inadapté dans la réponse de Denis, qui pour le moins que l'on puisse dire est très compétant en la matière. Pour moi, eternel débutant, il a parfaitement répondu à la question posée. -- Salutations JJ
"Paul V" a écrit dans le message de news:
Tout le monde est le bienvenu.
Je repondrais simplement que c'est quand même mieux quand le demandeur a aussi une réponse utile et adaptée;-)
A+
Paul V
"Stéphan DuQuébec" a écrit dans le message de news:
Bonjour messieurs, dames,
Sans vouloir me mêler de ce qui ne me regarde pas, j'ajouterais simplement que les codes, soluces, réponses, conseils qui sont fournis par MicheDenis, et par tous les autres qui mettent leur grande compétence au service de la communauté, ne servent pas qu'à l'initiateur de la question mais à des centaines (milliers !?!?!?) d'autres lecteurs silencieux qui eux, ne sont pas tous débutants. Ne perdons pas ça de vue.....c'est ce qui fait la richesse, je crois, d'un site comme le mpfe.
Amicalement.
Merci à tous pour les exemples, remarques, commentaires,..
Le problème est bien de modifier certains "paramètres" dans un grand nombre
de procédures existantes (écrites par d'autres, non documentées et utilisées
depuis un certain temps).
J'espérais trouver une solution plus élégante que celle qui consiste à
ouvrir chaque classeur et à aller corriger manuellement le code concerné.
Encore merci et à +
Peut-être avec ce genre de code (sous réserve d'utiliser Excel 2000 ou version
plus récente) ?
'''''''''''''''''''''
Sub essai()
''''''''à adapter
Wbk = "Perso.xls"
Avant = "LineStyle:=xlDouble"
Apres = "LineStyle:=xlAutomatic"
'''''''''''''''''
ModifierCodeVBA Wbk, Avant, Apres
End Sub
Sub ModifierCodeVBA(NomClasseur, AvantModif, ApresModif)
Dim VBComp, S$
With Workbooks(NomClasseur).VBProject
For Each VBComp In .VBComponents
With VBComp.CodeModule
On Error Resume Next
S = .Lines(1, .CountOfLines)
.DeleteLines 1, .CountOfLines
On Error GoTo 0
S = Join(Split(S, AvantModif), ApresModif)
.AddFromString S
End With
Next
End With
Workbooks(NomClasseur).Save
End Sub
'''''''''''''''''''''
----------
Ange Ounis
----------
Hello Jacky,
Pas encore au lit?
Dois-je le repeter, je n'ai jamais mis la compétence de Denis en doute, tout
du contraire.
Cela étant dit, je ne crois pas que le demandeur peut résoudre son problème
avec la réponse donnée, mais j'espere pour lui que je me trompe.
A+
PAul V
"Jacky" <nospams@not> a écrit dans le message de news:
exn737V6GHA.1248@TK2MSFTNGP03.phx.gbl...
Paul......
Sans vouloir prendre partie, là, tu exagères,
Je ne vois vraiment pas ce qu'il y a d'inutile ou d'inadapté dans la
réponse de Denis, qui pour le moins que l'on puisse dire est très
compétant en la matière.
Pour moi, eternel débutant, il a parfaitement répondu à la question posée.
--
Salutations
JJ
"Paul V" <nobody@home.ir> a écrit dans le message de news:
OMFPN1V6GHA.4304@TK2MSFTNGP03.phx.gbl...
Tout le monde est le bienvenu.
Je repondrais simplement que c'est quand même mieux quand le demandeur a
aussi une réponse utile et adaptée;-)
A+
Paul V
"Stéphan DuQuébec" <StphanDuQubec@discussions.microsoft.com> a écrit dans
le message de news: C47C109E-797F-4C00-A7B6-9150E8B611F4@microsoft.com...
Bonjour messieurs, dames,
Sans vouloir me mêler de ce qui ne me regarde pas, j'ajouterais
simplement
que les codes, soluces, réponses, conseils qui sont fournis par
MicheDenis,
et par tous les autres qui mettent leur grande compétence au service de
la
communauté, ne servent pas qu'à l'initiateur de la question mais à des
centaines (milliers !?!?!?) d'autres lecteurs silencieux qui eux, ne
sont pas
tous débutants. Ne perdons pas ça de vue.....c'est ce qui fait la
richesse,
je crois, d'un site comme le mpfe.
Merci à tous pour les exemples, remarques, commentaires,.. Le problème est bien de modifier certains "paramètres" dans un grand nombre de procédures existantes (écrites par d'autres, non documentées et utilisées depuis un certain temps). J'espérais trouver une solution plus élégante que celle qui consiste à ouvrir chaque classeur et à aller corriger manuellement le code concerné.
Encore merci et à +
Peut-être avec ce genre de code (sous réserve d'utiliser Excel 2000 ou version plus récente) ?
''''''''''''''''''''' Sub essai() ''''''''à adapter Wbk = "Perso.xls" Avant = "LineStyle:=xlDouble" Apres = "LineStyle:=xlAutomatic" ''''''''''''''''' ModifierCodeVBA Wbk, Avant, Apres End Sub
Sub ModifierCodeVBA(NomClasseur, AvantModif, ApresModif) Dim VBComp, S$
With Workbooks(NomClasseur).VBProject For Each VBComp In .VBComponents With VBComp.CodeModule On Error Resume Next S = .Lines(1, .CountOfLines) .DeleteLines 1, .CountOfLines On Error GoTo 0 S = Join(Split(S, AvantModif), ApresModif) .AddFromString S End With Next End With Workbooks(NomClasseur).Save
End Sub '''''''''''''''''''''
---------- Ange Ounis ----------
Hello Jacky,
Pas encore au lit?
Dois-je le repeter, je n'ai jamais mis la compétence de Denis en doute, tout du contraire. Cela étant dit, je ne crois pas que le demandeur peut résoudre son problème avec la réponse donnée, mais j'espere pour lui que je me trompe.
A+
PAul V "Jacky" a écrit dans le message de news:
Paul...... Sans vouloir prendre partie, là, tu exagères, Je ne vois vraiment pas ce qu'il y a d'inutile ou d'inadapté dans la réponse de Denis, qui pour le moins que l'on puisse dire est très compétant en la matière. Pour moi, eternel débutant, il a parfaitement répondu à la question posée. -- Salutations JJ
"Paul V" a écrit dans le message de news:
Tout le monde est le bienvenu.
Je repondrais simplement que c'est quand même mieux quand le demandeur a aussi une réponse utile et adaptée;-)
A+
Paul V
"Stéphan DuQuébec" a écrit dans le message de news:
Bonjour messieurs, dames,
Sans vouloir me mêler de ce qui ne me regarde pas, j'ajouterais simplement que les codes, soluces, réponses, conseils qui sont fournis par MicheDenis, et par tous les autres qui mettent leur grande compétence au service de la communauté, ne servent pas qu'à l'initiateur de la question mais à des centaines (milliers !?!?!?) d'autres lecteurs silencieux qui eux, ne sont pas tous débutants. Ne perdons pas ça de vue.....c'est ce qui fait la richesse, je crois, d'un site comme le mpfe.