OVH Cloud OVH Cloud

Modules identiques

4 réponses
Avatar
Guy72
Bonjour,
J'ai une feuille par mois.
J'ai le même module pour les douze mois.
Suis-je obligé de le mettre dans chaque mois ?
Cordialement
Guy

4 réponses

Avatar
RV
Bonsoir Guy72,
Tu mets ton code dans un module standard (tu devras peut-être l'adapter)
puis sur chaque feuille tu appelles ta macro par le nom que tu lui as donné.
Il est plus facile de modifier 1 fois la macro dans un module standard que
de la modifier 12 fois (1 par feuille).
Cordialement
RV




"Guy72" a écrit dans le message de news:
%
Bonjour,
J'ai une feuille par mois.
J'ai le même module pour les douze mois.
Suis-je obligé de le mettre dans chaque mois ?
Cordialement
Guy



Avatar
Guy72
Bonjour Alain,
En effet, c'est pour cette raison que je voulais faire ça, car je modifie
encore pas mal, et recopier le code à chaque fois , ça m'em......bête.
Mais comme je ne suis pas un spécialiste des macros, j'arrive à faire que
c'elles ou l'on fait la manipe et la macro s'écrit toute seule.
Quant à celle là :
Ma macro comprend :

Sub Lignes()
' Lignes Macro
' Macro enregistrée le 26/06/2006 par Guy

quand je l'appelle elle me met "Erreur de compilation End Sub attendu"et
(le curseur se met ici)


Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("E3:E70")) Is Nothing Then Exit Sub

If Target = "Impôts" Then
Range(Cells(Target.Row, 6), Cells(Target.Row,
1)).Interior.ColorIndex = 16
Range(Cells(Target.Row, 6), Cells(Target.Row, 1)).Font.ColorIndex =
2
Exit Sub
End If

If [Target] = "SFR" Then
Range(Cells(Target.Row, 6), Cells(Target.Row,
1)).Interior.ColorIndex = 3
Range(Cells(Target.Row, 6), Cells(Target.Row, 1)).Font.ColorIndex =
2
Exit Sub
End If

etc..........
Cordialement
Guy

"RV" a écrit dans le message de news:

Bonsoir Guy72,
Tu mets ton code dans un module standard (tu devras peut-être l'adapter)
puis sur chaque feuille tu appelles ta macro par le nom que tu lui as
donné.
Il est plus facile de modifier 1 fois la macro dans un module standard que
de la modifier 12 fois (1 par feuille).
Cordialement
RV




"Guy72" a écrit dans le message de news:
%
Bonjour,
J'ai une feuille par mois.
J'ai le même module pour les douze mois.
Suis-je obligé de le mettre dans chaque mois ?
Cordialement
Guy







Avatar
Jean-François Aubert
salut Guy,

1- > Sub Lignes()
' Lignes Macro
' Macro enregistrée le 26/06/2006 par Guy

quand je l'appelle elle me met "Erreur de compilation End Sub
attendu"et

(le curseur se met ici)


Private Sub Worksheet_Change(ByVal Target As Range)
tu essaies d'imbriquer une proc. évenementielle de feuille dans une macro

Sub Lignes()
c'est normal que cela coince et qu'un End Sub soit attendu


2- >> Private Sub Worksheet_Change(ByVal Target As Range)
ceci est une proc. évenementielle d'une feuille


3- >> Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target
As Range)
ceci est une proc. évenementielle du module ThisWorkbook, où tu peux choisir
les feuilles auxquelles
on veut appliquer la macro
Exemple:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
if Sh.name = "toto" then
'...... je fais quelque chose
end sub
end sub


4- met ceci dans le module ThisWorkbook

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Intersect(Target, Range("E3:E70")) Is Nothing Then Exit Sub

If Target = "Impôts" Then
Range(Cells(Target.Row, 6), Cells(Target.Row,
1)).Interior.ColorIndex = 16
Range(Cells(Target.Row, 6), Cells(Target.Row, 1)).Font.ColorIndex =
2
Exit Sub
End If

If [Target] = "SFR" Then
Range(Cells(Target.Row, 6), Cells(Target.Row,
1)).Interior.ColorIndex = 3
Range(Cells(Target.Row, 6), Cells(Target.Row, 1)).Font.ColorIndex =
2
Exit Sub
End If

'''etc..........

End Sub

--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"Guy72" a écrit dans le message de news:

Bonjour Alain,
En effet, c'est pour cette raison que je voulais faire ça, car je modifie
encore pas mal, et recopier le code à chaque fois , ça m'em......bête.
Mais comme je ne suis pas un spécialiste des macros, j'arrive à faire que
c'elles ou l'on fait la manipe et la macro s'écrit toute seule.
Quant à celle là :
Ma macro comprend :

Sub Lignes()
' Lignes Macro
' Macro enregistrée le 26/06/2006 par Guy

quand je l'appelle elle me met "Erreur de compilation End Sub attendu"et
(le curseur se met ici)


Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("E3:E70")) Is Nothing Then Exit Sub

If Target = "Impôts" Then
Range(Cells(Target.Row, 6), Cells(Target.Row,
1)).Interior.ColorIndex = 16
Range(Cells(Target.Row, 6), Cells(Target.Row, 1)).Font.ColorIndex =
2
Exit Sub
End If

If [Target] = "SFR" Then
Range(Cells(Target.Row, 6), Cells(Target.Row,
1)).Interior.ColorIndex = 3
Range(Cells(Target.Row, 6), Cells(Target.Row, 1)).Font.ColorIndex =
2
Exit Sub
End If

etc..........
Cordialement
Guy

"RV" a écrit dans le message de news:

Bonsoir Guy72,
Tu mets ton code dans un module standard (tu devras peut-être l'adapter)
puis sur chaque feuille tu appelles ta macro par le nom que tu lui as
donné.
Il est plus facile de modifier 1 fois la macro dans un module standard
que de la modifier 12 fois (1 par feuille).
Cordialement
RV




"Guy72" a écrit dans le message de news:
%
Bonjour,
J'ai une feuille par mois.
J'ai le même module pour les douze mois.
Suis-je obligé de le mettre dans chaque mois ?
Cordialement
Guy











Avatar
Guy72
Bonsoir et merci Jean François,
Je ne savais pas ou se trouvais "ThisWorkbook" mais j'ai trouvé et ça
marche.
Je ne sais vraiment pas quoi dire, vous êtes tous formidables.
Avec toutes ces questions et toutes ces bonnes réponses, cela ma
considérablement simplifié mes fichiers.
Et on en apprend tous les jours.
Encore une fois merci.
--
Cordialement
Guy


"Jean-François Aubert" <à a écrit dans le message de
news: %23C%
salut Guy,

1- > Sub Lignes()
' Lignes Macro
' Macro enregistrée le 26/06/2006 par Guy

quand je l'appelle elle me met "Erreur de compilation End Sub
attendu"et

(le curseur se met ici)


Private Sub Worksheet_Change(ByVal Target As Range)
tu essaies d'imbriquer une proc. évenementielle de feuille dans une macro

Sub Lignes()
c'est normal que cela coince et qu'un End Sub soit attendu


2- >> Private Sub Worksheet_Change(ByVal Target As Range)
ceci est une proc. évenementielle d'une feuille


3- >> Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target
As Range)
ceci est une proc. évenementielle du module ThisWorkbook, où tu peux
choisir les feuilles auxquelles
on veut appliquer la macro
Exemple:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
if Sh.name = "toto" then
'...... je fais quelque chose
end sub
end sub


4- met ceci dans le module ThisWorkbook

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
If Intersect(Target, Range("E3:E70")) Is Nothing Then Exit Sub

If Target = "Impôts" Then
Range(Cells(Target.Row, 6), Cells(Target.Row,
1)).Interior.ColorIndex = 16
Range(Cells(Target.Row, 6), Cells(Target.Row, 1)).Font.ColorIndex =
2
Exit Sub
End If

If [Target] = "SFR" Then
Range(Cells(Target.Row, 6), Cells(Target.Row,
1)).Interior.ColorIndex = 3
Range(Cells(Target.Row, 6), Cells(Target.Row, 1)).Font.ColorIndex =
2
Exit Sub
End If

'''etc..........

End Sub

--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"Guy72" a écrit dans le message de news:

Bonjour Alain,
En effet, c'est pour cette raison que je voulais faire ça, car je modifie
encore pas mal, et recopier le code à chaque fois , ça m'em......bête.
Mais comme je ne suis pas un spécialiste des macros, j'arrive à faire que
c'elles ou l'on fait la manipe et la macro s'écrit toute seule.
Quant à celle là :
Ma macro comprend :

Sub Lignes()
' Lignes Macro
' Macro enregistrée le 26/06/2006 par Guy

quand je l'appelle elle me met "Erreur de compilation End Sub attendu"et
(le curseur se met ici)


Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("E3:E70")) Is Nothing Then Exit Sub

If Target = "Impôts" Then
Range(Cells(Target.Row, 6), Cells(Target.Row,
1)).Interior.ColorIndex = 16
Range(Cells(Target.Row, 6), Cells(Target.Row, 1)).Font.ColorIndex
= 2
Exit Sub
End If

If [Target] = "SFR" Then
Range(Cells(Target.Row, 6), Cells(Target.Row,
1)).Interior.ColorIndex = 3
Range(Cells(Target.Row, 6), Cells(Target.Row, 1)).Font.ColorIndex
= 2
Exit Sub
End If

etc..........
Cordialement
Guy

"RV" a écrit dans le message de news:

Bonsoir Guy72,
Tu mets ton code dans un module standard (tu devras peut-être l'adapter)
puis sur chaque feuille tu appelles ta macro par le nom que tu lui as
donné.
Il est plus facile de modifier 1 fois la macro dans un module standard
que de la modifier 12 fois (1 par feuille).
Cordialement
RV




"Guy72" a écrit dans le message de news:
%
Bonjour,
J'ai une feuille par mois.
J'ai le même module pour les douze mois.
Suis-je obligé de le mettre dans chaque mois ?
Cordialement
Guy