Erreur d'exécution '1004'

Le
Mario Limoges
Bonjour-bonsoir

Jusqu'a ce que j'essai par vba d'activer la protection de chaque feuille de
mon workbook au moment de l'activation en y ajoutant la ligne :
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
a l'intérieur de ma boucle for le code fonctionnait a merveille

Private Sub Workbook_Activate()
For Each Sh In ActiveWorkbook.Sheets
Application.ScreenUpdating = False
'appel de la macro 'valideCOuleurOnglet' en passant la date en AB1
valideCOuleurOnglet (Sh.Range("AB1").Value)
Sh.Calculate
Next Sh
End sub

Dans la macro 'valideCOuleurOnglet' après plusieurs validations je passe
ces lignes de code :

If nosemaine > 0 Then
ActiveSheet.Tab.ColorIndex = 3
Else
ActiveSheet.Tab.ColorIndex = xlAutomatic
End If

Depuis cet essaie obtiens et ce malgré avoir enlevé complètement la ligne
destiné a protéger les feuilles, une erreur d'exécution sur la ligne
ActiveSheet.Tab.ColorIndex = 3

Erreur définie par l'application ou par l'objet

Quelqu'un peu me dire de quoi ca peut dépendre

Merci à l'avance
epérant avoir été assé limpide dans mes explications
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Brunos
Le #5287651
"Mario Limoges" a écrit :> Bonjour-bonsoir
Private Sub Workbook_Activate()
For Each Sh In ActiveWorkbook.Sheets
Application.ScreenUpdating = False
'appel de la macro 'valideCOuleurOnglet' en passant la date en
AB1
valideCOuleurOnglet (Sh.Range("AB1").Value)
Sh.Calculate
Next Sh
End sub

Dans la macro 'valideCOuleurOnglet' après plusieurs validations je
passe ces lignes de code :

If nosemaine > 0 Then
ActiveSheet.Tab.ColorIndex = 3
Else
ActiveSheet.Tab.ColorIndex = xlAutomatic
End If

Depuis cet essaie obtiens et ce malgré avoir enlevé complètement la
ligne destiné a protéger les feuilles, une erreur d'exécution sur la
ligne ActiveSheet.Tab.ColorIndex = 3

Erreur définie par l'application ou par l'objet


Bonjour Mario,
A priori je vois un pb:
Dans la 1ère partie du code tu défiles les feuilles (For Each Sh)
et pour chacune tu envoies une sous-routine qui fait référence à
ActiveSheet, mais quelle est la feuille active à ce moment là?
Essaie de tous mettre dans la procédure principale (Workbook_Activate)
en faisant référence à Sh (Sh.Tab.ColorIndex = 3).
Ou alors passe Sh en argument.
Brunos

papou
Le #5287631
Bonjour
1°) Dans ta procédure valideCOuleurOnglet ajoute un paramètre avec le nom de
la feuille et modifie aussi ton code.
Sub valideCOuleurOnglet(NomF As String,Valeur As Long) ' à adapter avec ce
que tu attends en paramètre sur Valeur ?
'....
If nosemaine > 0 Then
Worksheets(NomF).Tab.ColorIndex = 3
Else
Worksheets(NomF).Tab.ColorIndex = xlAutomatic
End If

End Sub

2°) Puis dans ton code

valideCOuleurOnglet (Sh.Name,Sh.Range("AB1").Value)

Cordialement
Pascal

"Mario Limoges" news: Spenj.1751$
Bonjour-bonsoir

Jusqu'a ce que j'essai par vba d'activer la protection de chaque feuille
de mon workbook au moment de l'activation en y ajoutant la ligne :
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
a l'intérieur de ma boucle for le code fonctionnait a merveille

Private Sub Workbook_Activate()
For Each Sh In ActiveWorkbook.Sheets
Application.ScreenUpdating = False
'appel de la macro 'valideCOuleurOnglet' en passant la date en AB1
valideCOuleurOnglet (Sh.Range("AB1").Value)
Sh.Calculate
Next Sh
End sub

Dans la macro 'valideCOuleurOnglet' après plusieurs validations je passe
ces lignes de code :

If nosemaine > 0 Then
ActiveSheet.Tab.ColorIndex = 3
Else
ActiveSheet.Tab.ColorIndex = xlAutomatic
End If

Depuis cet essaie obtiens et ce malgré avoir enlevé complètement la ligne
destiné a protéger les feuilles, une erreur d'exécution sur la ligne
ActiveSheet.Tab.ColorIndex = 3

Erreur définie par l'application ou par l'objet

Quelqu'un peu me dire de quoi ca peut dépendre

Merci à l'avance
epérant avoir été assé limpide dans mes explications




Mario Limoges
Le #5284801
Après plusieurs essaies-erreurs j'ai finalement trouvé la source de ce bugg.
Simplement, mon Workbook était protégé ce qui empechait bien évidement de
modifier la couleur du .Tab provoquant l'erreur en titre :-(((

"Mario Limoges" news: Spenj.1751$
Bonjour-bonsoir

Jusqu'a ce que j'essai par vba d'activer la protection de chaque feuille
de mon workbook au moment de l'activation en y ajoutant la ligne :
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
a l'intérieur de ma boucle for le code fonctionnait a merveille

Private Sub Workbook_Activate()
For Each Sh In ActiveWorkbook.Sheets
Application.ScreenUpdating = False
'appel de la macro 'valideCOuleurOnglet' en passant la date en AB1
valideCOuleurOnglet (Sh.Range("AB1").Value)
Sh.Calculate
Next Sh
End sub

Dans la macro 'valideCOuleurOnglet' après plusieurs validations je passe
ces lignes de code :

If nosemaine > 0 Then
ActiveSheet.Tab.ColorIndex = 3
Else
ActiveSheet.Tab.ColorIndex = xlAutomatic
End If

Depuis cet essaie obtiens et ce malgré avoir enlevé complètement la ligne
destiné a protéger les feuilles, une erreur d'exécution sur la ligne
ActiveSheet.Tab.ColorIndex = 3

Erreur définie par l'application ou par l'objet

Quelqu'un peu me dire de quoi ca peut dépendre

Merci à l'avance
epérant avoir été assé limpide dans mes explications




Publicité
Poster une réponse
Anonyme