Phillip
XLDnaute Occasionnel
Bonjour,
Je gère mes comptes bancaires avec excel. J'ai un certain nombre de macros qui me permettent de rajouter des lignes, d'en supprimer, de supprimer d'anciennes opérations, de remplir chaque mois une plage fixe avec mes dépenses récurrentes.
Ces macros sont appellées par des boutons que j'ai crées dans une barre
Tous les mois, je fais une copie de mon fichier et le renomme en "mois suivant". Ce fichier est protégé par un mot de passe.
Mon problème, c'est que chaque mois quand je recopie mon fichier, les macros ne fontionnent plus, ou tout au moins lorsque je les lance, me demandent d'ouvrir le fichier "mois" dans lequel je les ai crées originellement.
Les macros sont paramétrées pour fonctionner dans "tous les fichiers ouverts", et pourtant, ne "suivent" pas la recopie du fichier excel...
Que dois-je faire ?
Merci de vos lumières !
Cordialement
PS : Un exemple d'une de mes macros qui insère des lignes et refait les couleurs...
Public Sub Inserlignes()
'
' Inserlignes Macro
' Insère des lignes et corrige les couleurs
'Macro recorded 05/11/2009 by jtmq6376
'prend le format de la première ligne au dessus de la selection
ActiveSheet.Unprotect
Application.ScreenUpdating = False
Dim plage As String, Tablo() As String
Dim cptr As Long, nbre As Long
Dim pair As Boolean
Dim impair As Boolean
Dim nblig As Range
Dim x As Integer
' compte le nombre de lignes selectionnees
plage = Selection.Address
Tablo = Split(Selection.Address, ",")
For cptr = 0 To UBound(Tablo)
nbre = nbre + Range(Tablo(cptr)).Rows.Count
Next
'pair = (nbre Mod 2 = 0)
'si nombre pair de lignes ajoute le meme nombre de lignes
'If pair = True Then
Set nblig = ActiveCell.EntireRow
nblig.Resize(nbre).Insert (xlShiftDown)
'Macro couleurs
firstrow = 3
While couleurstop <> 34
impair = (firstrow Mod 2 <> 0)
If impair = True Then
Range(Cells(firstrow, 1), Cells(firstrow, 5)).Interior.ColorIndex = 43
Else:
Range(Cells(firstrow, 1), Cells(firstrow, 5)).Interior.ColorIndex = 44
End If
firstrow = firstrow + 1
couleurstop = Cells(firstrow, 4).Interior.ColorIndex
Wend
frcred = firstrow
srcred = firstrow + 1
While Cells(frcred, 1).Value <> "stop"
If Cells(frcred - 1, 1).Interior.ColorIndex = 43 Then
Range(Cells(frcred, 1), Cells(frcred, 3)).Interior.ColorIndex = 44
Cells(frcred, 5).Interior.ColorIndex = 44
ElseIf Cells(frcred - 1, 1).Interior.ColorIndex = 44 Then
Range(Cells(frcred, 1), Cells(frcred, 3)).Interior.ColorIndex = 43
Cells(frcred, 5).Interior.ColorIndex = 43
End If
frcred = frcred + 1
Wend
Range("a3").Select
ActiveSheet.Protect
End Sub
Je gère mes comptes bancaires avec excel. J'ai un certain nombre de macros qui me permettent de rajouter des lignes, d'en supprimer, de supprimer d'anciennes opérations, de remplir chaque mois une plage fixe avec mes dépenses récurrentes.
Ces macros sont appellées par des boutons que j'ai crées dans une barre
Tous les mois, je fais une copie de mon fichier et le renomme en "mois suivant". Ce fichier est protégé par un mot de passe.
Mon problème, c'est que chaque mois quand je recopie mon fichier, les macros ne fontionnent plus, ou tout au moins lorsque je les lance, me demandent d'ouvrir le fichier "mois" dans lequel je les ai crées originellement.
Les macros sont paramétrées pour fonctionner dans "tous les fichiers ouverts", et pourtant, ne "suivent" pas la recopie du fichier excel...
Que dois-je faire ?
Merci de vos lumières !
Cordialement
PS : Un exemple d'une de mes macros qui insère des lignes et refait les couleurs...
Public Sub Inserlignes()
'
' Inserlignes Macro
' Insère des lignes et corrige les couleurs
'Macro recorded 05/11/2009 by jtmq6376
'prend le format de la première ligne au dessus de la selection
ActiveSheet.Unprotect
Application.ScreenUpdating = False
Dim plage As String, Tablo() As String
Dim cptr As Long, nbre As Long
Dim pair As Boolean
Dim impair As Boolean
Dim nblig As Range
Dim x As Integer
' compte le nombre de lignes selectionnees
plage = Selection.Address
Tablo = Split(Selection.Address, ",")
For cptr = 0 To UBound(Tablo)
nbre = nbre + Range(Tablo(cptr)).Rows.Count
Next
'pair = (nbre Mod 2 = 0)
'si nombre pair de lignes ajoute le meme nombre de lignes
'If pair = True Then
Set nblig = ActiveCell.EntireRow
nblig.Resize(nbre).Insert (xlShiftDown)
'Macro couleurs
firstrow = 3
While couleurstop <> 34
impair = (firstrow Mod 2 <> 0)
If impair = True Then
Range(Cells(firstrow, 1), Cells(firstrow, 5)).Interior.ColorIndex = 43
Else:
Range(Cells(firstrow, 1), Cells(firstrow, 5)).Interior.ColorIndex = 44
End If
firstrow = firstrow + 1
couleurstop = Cells(firstrow, 4).Interior.ColorIndex
Wend
frcred = firstrow
srcred = firstrow + 1
While Cells(frcred, 1).Value <> "stop"
If Cells(frcred - 1, 1).Interior.ColorIndex = 43 Then
Range(Cells(frcred, 1), Cells(frcred, 3)).Interior.ColorIndex = 44
Cells(frcred, 5).Interior.ColorIndex = 44
ElseIf Cells(frcred - 1, 1).Interior.ColorIndex = 44 Then
Range(Cells(frcred, 1), Cells(frcred, 3)).Interior.ColorIndex = 43
Cells(frcred, 5).Interior.ColorIndex = 43
End If
frcred = frcred + 1
Wend
Range("a3").Select
ActiveSheet.Protect
End Sub