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

Modifier code VBA en VBA?

10 réponses
Avatar
Lionel
Bonjour,
J'aurai besoin de la lumiere de tous ceux qui peuvent m'aider.... Est il
possible en VBA de modifier un code vba? en plus simple il y a un test de
date dans le code
si la date est passee demande d'un mot de passe si ok modification de la
dite date.... Possible ou fiction??

Merci a tous de votre aide
Lionel

10 réponses

Avatar
Lionel
Merci
Je suppose que si la chaine est dans thisworkbook j'ai juste a changer
For Each Module In ActiveWorkbook.VBProject.VBComponents
With Module.CodeModule
'Si le module ou est mis cette proc se nomme "Module1"
If Module.Name <> "Module1" Then

par ???

Merci encore....


"michdenis" a écrit dans le message de
news:
Pour ajouter 100 jours à la date d'aujourd'hui
an / mois/jour
y = DateSerial(2009, 2, 18 + 100)



"Lionel" a écrit dans le message de groupe de


discussion :
499bd957$0$18361$
Merci Beaucoup....

Juste une petit détail
je patauge dans mes variables et leur traitement
je me plante surement avec datevalue...
Je voudrais rajouter 100 jours à la date qui sera remplacée et


quelquechose
m'echappe...
Encore une petite aide STP....

Merci
Lionel
"michdenis" a écrit dans le message de
news:%23fvOA$
> Oui c'est possible :
>
> Cette procédure va scanner tout ton code et va
> remplacer la chaîne de caractère que tu lui demandes
> par la nouvelle
>
> Tu fais ton test sur la date avec mot de passe
> (ici on ne parle pas de projet vba verrouillé) avant
> de lancer la procédure.
>
> '-------------------------------------
> Sub ChangeChemin()
>
> Dim ChaineRecherchée As String
> Dim ChaineRemplace As String
> Dim Trouver As Integer
> Dim I As Integer
> Dim Module As Object
>
> '*************À renseigner*************
> ChaineRecherchée = "C:Mon DossierMa Base.mdb"
> ChaineRemplace = "D:Mon Autre DossierMa Base.mdb"
> '************************************
>
> For Each Module In ActiveWorkbook.VBProject.VBComponents
> With Module.CodeModule
> 'Si le module ou est mis cette proc se nomme "Module1"
> If Module.Name <> "Module1" Then
> For I = .CountOfLines To 1 Step -1
> Trouver = InStr(.Lines(I, 1), ChaineRecherchée)
> If Trouver <> 0 Then
> .ReplaceLine I, Left(.Lines(I, 1) _
> , Trouver - 1) & ChaineRemplace & _
> Mid(.Lines(I, 1), Trouver + Len(ChaineRecherchée) _
> , Len(.Lines(I, 1)))
> End If
> Next I
> End If
> End With
> Next
> Set Module = Nothing
> End Sub
> '-------------------------------------
>
>
>
> "Lionel" a écrit dans le message de groupe de
discussion :
> 499b4308$0$4089$
> Bonjour,
> J'aurai besoin de la lumiere de tous ceux qui peuvent m'aider.... Est il
> possible en VBA de modifier un code vba? en plus simple il y a un test


de
> date dans le code
> si la date est passee demande d'un mot de passe si ok modification de la
> dite date.... Possible ou fiction??
>
> Merci a tous de votre aide
> Lionel
>


Avatar
Lionel
Merci je vais tenter de me debrouiller avec tout ca....
En cas de pb je sais vers qui me tourner ...
Merci encore de ce temps consacre a m'aider
Lionel
"michdenis" a écrit dans le message de
news:
Si tu dois remplacer seulement dans le ThisWorkbook :
Évidemment ton code doit être dans un autre module.
'-------------------------
Sub ChangeChemin()

Dim ChaineRecherchée As String
Dim ChaineRemplace As String
Dim Trouver As Integer
Dim I As Integer, Texte As String
Dim Module As Object

'*************À renseigner*************
ChaineRecherchée = "DateSerial(2009, 2, 20)"
ChaineRemplace = "DateSerial(2009, 5, 20)"
'************************************
On Error Resume Next
With ThisWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
Texte = .Lines(1, .CountOfLines)
If InStr(1, Texte, ChaineRecherchée, vbTextCompare) <> 0 Then
Texte = Replace(Texte, ChaineRecherchée, ChaineRemplace)
.DeleteLines 1, .CountOfLines
.AddFromString Texte
End If
End With
Set Module = Nothing
End Sub
'-------------------------



"Lionel" a écrit dans le message de groupe de


discussion :
499c07e3$0$4098$
Merci
Je suppose que si la chaine est dans thisworkbook j'ai juste a changer
For Each Module In ActiveWorkbook.VBProject.VBComponents
With Module.CodeModule
'Si le module ou est mis cette proc se nomme "Module1"
If Module.Name <> "Module1" Then

par ???

Merci encore....


"michdenis" a écrit dans le message de
news:
> Pour ajouter 100 jours à la date d'aujourd'hui
> an / mois/jour
> y = DateSerial(2009, 2, 18 + 100)
>
>
>
> "Lionel" a écrit dans le message de groupe de
discussion :
> 499bd957$0$18361$
> Merci Beaucoup....
>
> Juste une petit détail
> je patauge dans mes variables et leur traitement
> je me plante surement avec datevalue...
> Je voudrais rajouter 100 jours à la date qui sera remplacée et
quelquechose
> m'echappe...
> Encore une petite aide STP....
>
> Merci
> Lionel
> "michdenis" a écrit dans le message de
> news:%23fvOA$
> > Oui c'est possible :
> >
> > Cette procédure va scanner tout ton code et va
> > remplacer la chaîne de caractère que tu lui demandes
> > par la nouvelle
> >
> > Tu fais ton test sur la date avec mot de passe
> > (ici on ne parle pas de projet vba verrouillé) avant
> > de lancer la procédure.
> >
> > '-------------------------------------
> > Sub ChangeChemin()
> >
> > Dim ChaineRecherchée As String
> > Dim ChaineRemplace As String
> > Dim Trouver As Integer
> > Dim I As Integer
> > Dim Module As Object
> >
> > '*************À renseigner*************
> > ChaineRecherchée = "C:Mon DossierMa Base.mdb"
> > ChaineRemplace = "D:Mon Autre DossierMa Base.mdb"
> > '************************************
> >
> > For Each Module In ActiveWorkbook.VBProject.VBComponents
> > With Module.CodeModule
> > 'Si le module ou est mis cette proc se nomme "Module1"
> > If Module.Name <> "Module1" Then
> > For I = .CountOfLines To 1 Step -1
> > Trouver = InStr(.Lines(I, 1), ChaineRecherchée)
> > If Trouver <> 0 Then
> > .ReplaceLine I, Left(.Lines(I, 1) _
> > , Trouver - 1) & ChaineRemplace & _
> > Mid(.Lines(I, 1), Trouver + Len(ChaineRecherchée) _
> > , Len(.Lines(I, 1)))
> > End If
> > Next I
> > End If
> > End With
> > Next
> > Set Module = Nothing
> > End Sub
> > '-------------------------------------
> >
> >
> >
> > "Lionel" a écrit dans le message de groupe de
> discussion :
> > 499b4308$0$4089$
> > Bonjour,
> > J'aurai besoin de la lumiere de tous ceux qui peuvent m'aider.... Est


il
> > possible en VBA de modifier un code vba? en plus simple il y a un test
de
> > date dans le code
> > si la date est passee demande d'un mot de passe si ok modification de


la
> > dite date.... Possible ou fiction??
> >
> > Merci a tous de votre aide
> > Lionel
> >


Avatar
michdenis
Oui c'est possible :

Cette procédure va scanner tout ton code et va
remplacer la chaîne de caractère que tu lui demandes
par la nouvelle

Tu fais ton test sur la date avec mot de passe
(ici on ne parle pas de projet vba verrouillé) avant
de lancer la procédure.

'-------------------------------------
Sub ChangeChemin()

Dim ChaineRecherchée As String
Dim ChaineRemplace As String
Dim Trouver As Integer
Dim I As Integer
Dim Module As Object

'*************À renseigner*************
ChaineRecherchée = "C:Mon DossierMa Base.mdb"
ChaineRemplace = "D:Mon Autre DossierMa Base.mdb"
'************************************

For Each Module In ActiveWorkbook.VBProject.VBComponents
With Module.CodeModule
'Si le module ou est mis cette proc se nomme "Module1"
If Module.Name <> "Module1" Then
For I = .CountOfLines To 1 Step -1
Trouver = InStr(.Lines(I, 1), ChaineRecherchée)
If Trouver <> 0 Then
.ReplaceLine I, Left(.Lines(I, 1) _
, Trouver - 1) & ChaineRemplace & _
Mid(.Lines(I, 1), Trouver + Len(ChaineRecherchée) _
, Len(.Lines(I, 1)))
End If
Next I
End If
End With
Next
Set Module = Nothing
End Sub
'-------------------------------------



"Lionel" a écrit dans le message de groupe de discussion :
499b4308$0$4089$
Bonjour,
J'aurai besoin de la lumiere de tous ceux qui peuvent m'aider.... Est il
possible en VBA de modifier un code vba? en plus simple il y a un test de
date dans le code
si la date est passee demande d'un mot de passe si ok modification de la
dite date.... Possible ou fiction??

Merci a tous de votre aide
Lionel
Avatar
Lionel
Merci Beaucoup....

Juste une petit détail
je patauge dans mes variables et leur traitement
je me plante surement avec datevalue...
Je voudrais rajouter 100 jours à la date qui sera remplacée et quelquechose
m'echappe...
Encore une petite aide STP....

Merci
Lionel
"michdenis" a écrit dans le message de
news:%23fvOA$
Oui c'est possible :

Cette procédure va scanner tout ton code et va
remplacer la chaîne de caractère que tu lui demandes
par la nouvelle

Tu fais ton test sur la date avec mot de passe
(ici on ne parle pas de projet vba verrouillé) avant
de lancer la procédure.

'-------------------------------------
Sub ChangeChemin()

Dim ChaineRecherchée As String
Dim ChaineRemplace As String
Dim Trouver As Integer
Dim I As Integer
Dim Module As Object

'*************À renseigner*************
ChaineRecherchée = "C:Mon DossierMa Base.mdb"
ChaineRemplace = "D:Mon Autre DossierMa Base.mdb"
'************************************

For Each Module In ActiveWorkbook.VBProject.VBComponents
With Module.CodeModule
'Si le module ou est mis cette proc se nomme "Module1"
If Module.Name <> "Module1" Then
For I = .CountOfLines To 1 Step -1
Trouver = InStr(.Lines(I, 1), ChaineRecherchée)
If Trouver <> 0 Then
.ReplaceLine I, Left(.Lines(I, 1) _
, Trouver - 1) & ChaineRemplace & _
Mid(.Lines(I, 1), Trouver + Len(ChaineRecherchée) _
, Len(.Lines(I, 1)))
End If
Next I
End If
End With
Next
Set Module = Nothing
End Sub
'-------------------------------------



"Lionel" a écrit dans le message de groupe de


discussion :
499b4308$0$4089$
Bonjour,
J'aurai besoin de la lumiere de tous ceux qui peuvent m'aider.... Est il
possible en VBA de modifier un code vba? en plus simple il y a un test de
date dans le code
si la date est passee demande d'un mot de passe si ok modification de la
dite date.... Possible ou fiction??

Merci a tous de votre aide
Lionel



Avatar
michdenis
Pour ajouter 100 jours à la date d'aujourd'hui
an / mois/jour
y = DateSerial(2009, 2, 18 + 100)



"Lionel" a écrit dans le message de groupe de discussion :
499bd957$0$18361$
Merci Beaucoup....

Juste une petit détail
je patauge dans mes variables et leur traitement
je me plante surement avec datevalue...
Je voudrais rajouter 100 jours à la date qui sera remplacée et quelquechose
m'echappe...
Encore une petite aide STP....

Merci
Lionel
"michdenis" a écrit dans le message de
news:%23fvOA$
Oui c'est possible :

Cette procédure va scanner tout ton code et va
remplacer la chaîne de caractère que tu lui demandes
par la nouvelle

Tu fais ton test sur la date avec mot de passe
(ici on ne parle pas de projet vba verrouillé) avant
de lancer la procédure.

'-------------------------------------
Sub ChangeChemin()

Dim ChaineRecherchée As String
Dim ChaineRemplace As String
Dim Trouver As Integer
Dim I As Integer
Dim Module As Object

'*************À renseigner*************
ChaineRecherchée = "C:Mon DossierMa Base.mdb"
ChaineRemplace = "D:Mon Autre DossierMa Base.mdb"
'************************************

For Each Module In ActiveWorkbook.VBProject.VBComponents
With Module.CodeModule
'Si le module ou est mis cette proc se nomme "Module1"
If Module.Name <> "Module1" Then
For I = .CountOfLines To 1 Step -1
Trouver = InStr(.Lines(I, 1), ChaineRecherchée)
If Trouver <> 0 Then
.ReplaceLine I, Left(.Lines(I, 1) _
, Trouver - 1) & ChaineRemplace & _
Mid(.Lines(I, 1), Trouver + Len(ChaineRecherchée) _
, Len(.Lines(I, 1)))
End If
Next I
End If
End With
Next
Set Module = Nothing
End Sub
'-------------------------------------



"Lionel" a écrit dans le message de groupe de


discussion :
499b4308$0$4089$
Bonjour,
J'aurai besoin de la lumiere de tous ceux qui peuvent m'aider.... Est il
possible en VBA de modifier un code vba? en plus simple il y a un test de
date dans le code
si la date est passee demande d'un mot de passe si ok modification de la
dite date.... Possible ou fiction??

Merci a tous de votre aide
Lionel



Avatar
michdenis
Si tu es certain de la chaîne que tu veux modifier,
il y a une façon plus expéditive :

'-----------------------------------------
Sub ChangeChemin()

Dim ChaineRecherchée As String
Dim ChaineRemplace As String
Dim Trouver As Integer
Dim I As Integer, Texte As String
Dim Module As Object

'*************À renseigner*************
ChaineRecherchée = "DateSerial(2009, 2, 20)"
ChaineRemplace = "DateSerial(2009, 2, 18)"
'************************************
On Error Resume Next
For Each Module In ThisWorkbook.VBProject.VBComponents
With Module.CodeModule
'Si le module ou est mis cette proc se nomme "Module1"
If Module.Name <> "Module1" Then
Texte = .Lines(1, .CountOfLines)
If InStr(1, Texte, ChaineRecherchée, vbTextCompare) <> 0 Then
Texte = Replace(Texte, ChaineRecherchée, ChaineRemplace)
.DeleteLines 1, .CountOfLines
.AddFromString Texte
End If
End If
End With
Next
Set Module = Nothing
End Sub
'-----------------------------------------



"Lionel" a écrit dans le message de groupe de discussion :
499bd957$0$18361$
Merci Beaucoup....

Juste une petit détail
je patauge dans mes variables et leur traitement
je me plante surement avec datevalue...
Je voudrais rajouter 100 jours à la date qui sera remplacée et quelquechose
m'echappe...
Encore une petite aide STP....

Merci
Lionel
"michdenis" a écrit dans le message de
news:%23fvOA$
Oui c'est possible :

Cette procédure va scanner tout ton code et va
remplacer la chaîne de caractère que tu lui demandes
par la nouvelle

Tu fais ton test sur la date avec mot de passe
(ici on ne parle pas de projet vba verrouillé) avant
de lancer la procédure.

'-------------------------------------
Sub ChangeChemin()

Dim ChaineRecherchée As String
Dim ChaineRemplace As String
Dim Trouver As Integer
Dim I As Integer
Dim Module As Object

'*************À renseigner*************
ChaineRecherchée = "C:Mon DossierMa Base.mdb"
ChaineRemplace = "D:Mon Autre DossierMa Base.mdb"
'************************************

For Each Module In ActiveWorkbook.VBProject.VBComponents
With Module.CodeModule
'Si le module ou est mis cette proc se nomme "Module1"
If Module.Name <> "Module1" Then
For I = .CountOfLines To 1 Step -1
Trouver = InStr(.Lines(I, 1), ChaineRecherchée)
If Trouver <> 0 Then
.ReplaceLine I, Left(.Lines(I, 1) _
, Trouver - 1) & ChaineRemplace & _
Mid(.Lines(I, 1), Trouver + Len(ChaineRecherchée) _
, Len(.Lines(I, 1)))
End If
Next I
End If
End With
Next
Set Module = Nothing
End Sub
'-------------------------------------



"Lionel" a écrit dans le message de groupe de


discussion :
499b4308$0$4089$
Bonjour,
J'aurai besoin de la lumiere de tous ceux qui peuvent m'aider.... Est il
possible en VBA de modifier un code vba? en plus simple il y a un test de
date dans le code
si la date est passee demande d'un mot de passe si ok modification de la
dite date.... Possible ou fiction??

Merci a tous de votre aide
Lionel



Avatar
michdenis
Si tu dois remplacer seulement dans le ThisWorkbook :
Évidemment ton code doit être dans un autre module.
'-------------------------
Sub ChangeChemin()

Dim ChaineRecherchée As String
Dim ChaineRemplace As String
Dim Trouver As Integer
Dim I As Integer, Texte As String
Dim Module As Object

'*************À renseigner*************
ChaineRecherchée = "DateSerial(2009, 2, 20)"
ChaineRemplace = "DateSerial(2009, 5, 20)"
'************************************
On Error Resume Next
With ThisWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
Texte = .Lines(1, .CountOfLines)
If InStr(1, Texte, ChaineRecherchée, vbTextCompare) <> 0 Then
Texte = Replace(Texte, ChaineRecherchée, ChaineRemplace)
.DeleteLines 1, .CountOfLines
.AddFromString Texte
End If
End With
Set Module = Nothing
End Sub
'-------------------------



"Lionel" a écrit dans le message de groupe de discussion :
499c07e3$0$4098$
Merci
Je suppose que si la chaine est dans thisworkbook j'ai juste a changer
For Each Module In ActiveWorkbook.VBProject.VBComponents
With Module.CodeModule
'Si le module ou est mis cette proc se nomme "Module1"
If Module.Name <> "Module1" Then

par ???

Merci encore....


"michdenis" a écrit dans le message de
news:
Pour ajouter 100 jours à la date d'aujourd'hui
an / mois/jour
y = DateSerial(2009, 2, 18 + 100)



"Lionel" a écrit dans le message de groupe de


discussion :
499bd957$0$18361$
Merci Beaucoup....

Juste une petit détail
je patauge dans mes variables et leur traitement
je me plante surement avec datevalue...
Je voudrais rajouter 100 jours à la date qui sera remplacée et


quelquechose
m'echappe...
Encore une petite aide STP....

Merci
Lionel
"michdenis" a écrit dans le message de
news:%23fvOA$
> Oui c'est possible :
>
> Cette procédure va scanner tout ton code et va
> remplacer la chaîne de caractère que tu lui demandes
> par la nouvelle
>
> Tu fais ton test sur la date avec mot de passe
> (ici on ne parle pas de projet vba verrouillé) avant
> de lancer la procédure.
>
> '-------------------------------------
> Sub ChangeChemin()
>
> Dim ChaineRecherchée As String
> Dim ChaineRemplace As String
> Dim Trouver As Integer
> Dim I As Integer
> Dim Module As Object
>
> '*************À renseigner*************
> ChaineRecherchée = "C:Mon DossierMa Base.mdb"
> ChaineRemplace = "D:Mon Autre DossierMa Base.mdb"
> '************************************
>
> For Each Module In ActiveWorkbook.VBProject.VBComponents
> With Module.CodeModule
> 'Si le module ou est mis cette proc se nomme "Module1"
> If Module.Name <> "Module1" Then
> For I = .CountOfLines To 1 Step -1
> Trouver = InStr(.Lines(I, 1), ChaineRecherchée)
> If Trouver <> 0 Then
> .ReplaceLine I, Left(.Lines(I, 1) _
> , Trouver - 1) & ChaineRemplace & _
> Mid(.Lines(I, 1), Trouver + Len(ChaineRecherchée) _
> , Len(.Lines(I, 1)))
> End If
> Next I
> End If
> End With
> Next
> Set Module = Nothing
> End Sub
> '-------------------------------------
>
>
>
> "Lionel" a écrit dans le message de groupe de
discussion :
> 499b4308$0$4089$
> Bonjour,
> J'aurai besoin de la lumiere de tous ceux qui peuvent m'aider.... Est il
> possible en VBA de modifier un code vba? en plus simple il y a un test


de
> date dans le code
> si la date est passee demande d'un mot de passe si ok modification de la
> dite date.... Possible ou fiction??
>
> Merci a tous de votre aide
> Lionel
>


Avatar
Lionel
Rebonsoir,

Apres essai, ca ne fonctionne pas completement dans la mesure ou j'ai
l'impression que le code ne "lit" que la premiere ligne. Il manque peut etre
une boucle qqpart...
Cordialement et Merci
Lionel
"michdenis" a écrit dans le message de
news:
Si tu dois remplacer seulement dans le ThisWorkbook :
Évidemment ton code doit être dans un autre module.
'-------------------------
Sub ChangeChemin()

Dim ChaineRecherchée As String
Dim ChaineRemplace As String
Dim Trouver As Integer
Dim I As Integer, Texte As String
Dim Module As Object

'*************À renseigner*************
ChaineRecherchée = "DateSerial(2009, 2, 20)"
ChaineRemplace = "DateSerial(2009, 5, 20)"
'************************************
On Error Resume Next
With ThisWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
Texte = .Lines(1, .CountOfLines)
If InStr(1, Texte, ChaineRecherchée, vbTextCompare) <> 0 Then
Texte = Replace(Texte, ChaineRecherchée, ChaineRemplace)
.DeleteLines 1, .CountOfLines
.AddFromString Texte
End If
End With
Set Module = Nothing
End Sub
'-------------------------



"Lionel" a écrit dans le message de groupe de


discussion :
499c07e3$0$4098$
Merci
Je suppose que si la chaine est dans thisworkbook j'ai juste a changer
For Each Module In ActiveWorkbook.VBProject.VBComponents
With Module.CodeModule
'Si le module ou est mis cette proc se nomme "Module1"
If Module.Name <> "Module1" Then

par ???

Merci encore....


"michdenis" a écrit dans le message de
news:
> Pour ajouter 100 jours à la date d'aujourd'hui
> an / mois/jour
> y = DateSerial(2009, 2, 18 + 100)
>
>
>
> "Lionel" a écrit dans le message de groupe de
discussion :
> 499bd957$0$18361$
> Merci Beaucoup....
>
> Juste une petit détail
> je patauge dans mes variables et leur traitement
> je me plante surement avec datevalue...
> Je voudrais rajouter 100 jours à la date qui sera remplacée et
quelquechose
> m'echappe...
> Encore une petite aide STP....
>
> Merci
> Lionel
> "michdenis" a écrit dans le message de
> news:%23fvOA$
> > Oui c'est possible :
> >
> > Cette procédure va scanner tout ton code et va
> > remplacer la chaîne de caractère que tu lui demandes
> > par la nouvelle
> >
> > Tu fais ton test sur la date avec mot de passe
> > (ici on ne parle pas de projet vba verrouillé) avant
> > de lancer la procédure.
> >
> > '-------------------------------------
> > Sub ChangeChemin()
> >
> > Dim ChaineRecherchée As String
> > Dim ChaineRemplace As String
> > Dim Trouver As Integer
> > Dim I As Integer
> > Dim Module As Object
> >
> > '*************À renseigner*************
> > ChaineRecherchée = "C:Mon DossierMa Base.mdb"
> > ChaineRemplace = "D:Mon Autre DossierMa Base.mdb"
> > '************************************
> >
> > For Each Module In ActiveWorkbook.VBProject.VBComponents
> > With Module.CodeModule
> > 'Si le module ou est mis cette proc se nomme "Module1"
> > If Module.Name <> "Module1" Then
> > For I = .CountOfLines To 1 Step -1
> > Trouver = InStr(.Lines(I, 1), ChaineRecherchée)
> > If Trouver <> 0 Then
> > .ReplaceLine I, Left(.Lines(I, 1) _
> > , Trouver - 1) & ChaineRemplace & _
> > Mid(.Lines(I, 1), Trouver + Len(ChaineRecherchée) _
> > , Len(.Lines(I, 1)))
> > End If
> > Next I
> > End If
> > End With
> > Next
> > Set Module = Nothing
> > End Sub
> > '-------------------------------------
> >
> >
> >
> > "Lionel" a écrit dans le message de groupe de
> discussion :
> > 499b4308$0$4089$
> > Bonjour,
> > J'aurai besoin de la lumiere de tous ceux qui peuvent m'aider.... Est


il
> > possible en VBA de modifier un code vba? en plus simple il y a un test
de
> > date dans le code
> > si la date est passee demande d'un mot de passe si ok modification de


la
> > dite date.... Possible ou fiction??
> >
> > Merci a tous de votre aide
> > Lionel
> >


Avatar
Lionel
C'est bon j'ai trouvé il s'agissait du probleme de formatage de la date
10/2/2009 alors que le code cherchait 10/02/2009
Mille excuses pour le derangement.
Merci encore
Lionel
"Lionel" a écrit dans le message de
news:499c68db$0$17778$
Rebonsoir,

Apres essai, ca ne fonctionne pas completement dans la mesure ou j'ai
l'impression que le code ne "lit" que la premiere ligne. Il manque peut


etre
une boucle qqpart...
Cordialement et Merci
Lionel
"michdenis" a écrit dans le message de
news:
> Si tu dois remplacer seulement dans le ThisWorkbook :
> Évidemment ton code doit être dans un autre module.
> '-------------------------
> Sub ChangeChemin()
>
> Dim ChaineRecherchée As String
> Dim ChaineRemplace As String
> Dim Trouver As Integer
> Dim I As Integer, Texte As String
> Dim Module As Object
>
> '*************À renseigner*************
> ChaineRecherchée = "DateSerial(2009, 2, 20)"
> ChaineRemplace = "DateSerial(2009, 5, 20)"
> '************************************
> On Error Resume Next
> With ThisWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
> Texte = .Lines(1, .CountOfLines)
> If InStr(1, Texte, ChaineRecherchée, vbTextCompare) <> 0 Then
> Texte = Replace(Texte, ChaineRecherchée, ChaineRemplace)
> .DeleteLines 1, .CountOfLines
> .AddFromString Texte
> End If
> End With
> Set Module = Nothing
> End Sub
> '-------------------------
>
>
>
> "Lionel" a écrit dans le message de groupe de
discussion :
> 499c07e3$0$4098$
> Merci
> Je suppose que si la chaine est dans thisworkbook j'ai juste a changer
> For Each Module In ActiveWorkbook.VBProject.VBComponents
> With Module.CodeModule
> 'Si le module ou est mis cette proc se nomme "Module1"
> If Module.Name <> "Module1" Then
>
> par ???
>
> Merci encore....
>
>
> "michdenis" a écrit dans le message de
> news:
> > Pour ajouter 100 jours à la date d'aujourd'hui
> > an / mois/jour
> > y = DateSerial(2009, 2, 18 + 100)
> >
> >
> >
> > "Lionel" a écrit dans le message de groupe de
> discussion :
> > 499bd957$0$18361$
> > Merci Beaucoup....
> >
> > Juste une petit détail
> > je patauge dans mes variables et leur traitement
> > je me plante surement avec datevalue...
> > Je voudrais rajouter 100 jours à la date qui sera remplacée et
> quelquechose
> > m'echappe...
> > Encore une petite aide STP....
> >
> > Merci
> > Lionel
> > "michdenis" a écrit dans le message de
> > news:%23fvOA$
> > > Oui c'est possible :
> > >
> > > Cette procédure va scanner tout ton code et va
> > > remplacer la chaîne de caractère que tu lui demandes
> > > par la nouvelle
> > >
> > > Tu fais ton test sur la date avec mot de passe
> > > (ici on ne parle pas de projet vba verrouillé) avant
> > > de lancer la procédure.
> > >
> > > '-------------------------------------
> > > Sub ChangeChemin()
> > >
> > > Dim ChaineRecherchée As String
> > > Dim ChaineRemplace As String
> > > Dim Trouver As Integer
> > > Dim I As Integer
> > > Dim Module As Object
> > >
> > > '*************À renseigner*************
> > > ChaineRecherchée = "C:Mon DossierMa Base.mdb"
> > > ChaineRemplace = "D:Mon Autre DossierMa Base.mdb"
> > > '************************************
> > >
> > > For Each Module In ActiveWorkbook.VBProject.VBComponents
> > > With Module.CodeModule
> > > 'Si le module ou est mis cette proc se nomme "Module1"
> > > If Module.Name <> "Module1" Then
> > > For I = .CountOfLines To 1 Step -1
> > > Trouver = InStr(.Lines(I, 1), ChaineRecherchée)
> > > If Trouver <> 0 Then
> > > .ReplaceLine I, Left(.Lines(I, 1) _
> > > , Trouver - 1) & ChaineRemplace & _
> > > Mid(.Lines(I, 1), Trouver + Len(ChaineRecherchée) _
> > > , Len(.Lines(I, 1)))
> > > End If
> > > Next I
> > > End If
> > > End With
> > > Next
> > > Set Module = Nothing
> > > End Sub
> > > '-------------------------------------
> > >
> > >
> > >
> > > "Lionel" a écrit dans le message de groupe de
> > discussion :
> > > 499b4308$0$4089$
> > > Bonjour,
> > > J'aurai besoin de la lumiere de tous ceux qui peuvent m'aider....


Est
il
> > > possible en VBA de modifier un code vba? en plus simple il y a un


test
> de
> > > date dans le code
> > > si la date est passee demande d'un mot de passe si ok modification


de
la
> > > dite date.... Possible ou fiction??
> > >
> > > Merci a tous de votre aide
> > > Lionel
> > >




Avatar
michdenis
Si tu ne peux décrire mieux la problématique que tu éprouves
je vais considérer que tu es satisfait ! ;-)