message d'erreur "objet requis" ('424')

  • Initiateur de la discussion Initiateur de la discussion marti018
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

marti018

Guest
Bonjour..
Je suis débutant en VBA j'ai aquis quelques notions grace aux nombreux documents disponibles sur le net..
actuellement je suis bloqué...

je souhaite automatiser la colorisation de colonnes et de cellules lorsqu'une valeur est entrée dans une zone de saisie..si la valeur est "M" 3 titres et deux colonnes se colorent de façon particulières si la valeur est "I "..d'une autre couleur ect.. seulement cela ne marche pas 🙂
en effet au moment de compiler un mesage d'erreur apparait:"objet requis"
je pense m'être trompé au moment de la déclaration des variables..
voila j'aimerai bien un petit coup de pouce..je peux poster mon code, je pense que ce serait le plus simple mais je ne veux pas l'imposer ( les regles du forum étant ce qu'elles sont, je préfère demander)..

en tout cas merci d'avance
marti
 
Re : message d'erreur "objet requis" ('424')

ça c'est mon code j'espère que vous arriverai à vous faire une idée de ce que je souhaite réaliser..parce que vu que je débute ce doit pas etre super super..
en tout cas merci pour la réponse.🙂

Sub Colorisation()

Dim zone1 As Range
Dim v As Integer
Dim nbrcolonne As Integer
nbrcolonne = Range("C5").End(xlToLeft)

For v = 1 To nbrcolonne
Set zone1 = Range("C,v")
If zone1 = "M" Then
ColorisationSiM
ElseIf zone1 = "I" Then
ColorisationSiI
ElseIf zone1 = "O" Then
ColorisationSiO
End If
Next v



End Sub

Sub ColorisationSiM()

CouleurTitreMonteurM
CouleurTitreFlashM
CouleurTitreHeuresM
CouleurColonneHeuresM
CouleurColonneflashM


End Sub
Sub ColorisationSiI()

CouleurTitreMonteurI
CouleurTitreFlashI
CouleurTitreHeuresI
CouleurColonneHeuresI
CouleurColonneflashI


End Sub

Sub ColorisationSiO()

CouleurTitreMonteurO
CouleurTitreFlashO
CouleurTitreHeuresO
CouleurColonneHeuresO
CouleurColonneflashO


End Sub
Sub CouleurTitreMonteurM()
zone1.Offset(-1).Select
With Selection
.ColorIndex = 41
.Pattern = xlSolid
.Font.ColorIndex = 2
End With
End Sub
Sub CouleurTitreFlashM()
zone1.Offset(1, 2).Select
With Selection
.ColorIndex = 49
.Pattern = xlSolid
.Font.ColorIndex = 2
End With
End Sub
Sub CouleurTitreHeuresM()
zone1.Offset(1).Select
With Selection
.ColorIndex = 41
.Pattern = xlSolid
End With
End Sub
Sub CouleurColonneHeuresM()
For i = 2 To 53
zone1.Offset(i).Select
With Selection
.ColorIndex = 37
.Pattern = xlSolid
End With
Next i
End Sub
Sub CouleurColonneflashM()
For i = 2 To 53
zone1.Offset(i, 2).Select
With Selection
.ColorIndex = 37
.Pattern = xlSolid
End With
Next i
End Sub
Sub CouleurTitreMonteurI()
zone1.Offset(-1).Select
With Selection
.ColorIndex = 38
.Pattern = xlSolid
.Font.ColorIndex = 3
End Sub
Sub CouleurTitreFlashI()
zone1.Offset(1, 2).Select
With Selection
.ColorIndex = 3
.Pattern = xlSolid
End With

End Sub
Sub CouleurTitreHeuresI()
zone1.Offset(1).Select
With Selection
.ColorIndex = 41
.Pattern = xlSolid
End With
End Sub
Sub CouleurColonneHeuresI()
For i = 2 To 53
zone1.Offset(i).Select
With Selection
.ColorIndex = 38
.Pattern = xlSolid
End With
Next i
End Sub
Sub CouleurColonneflashI()
For i = 2 To 53
zone1.Offset(i, 2).Select
With Selection
.ColorIndex = 37
.patern = xlGrid
.Pattern.ColorIndex = 2
End With
Next i
End Sub
Sub CouleurTitreMonteurO()
zone1.Offset(-1).Select
With Selection
.ColorIndex = 4
.Pattern = xlSolid
End With

End Sub
Sub CouleurTitreFlashO()
zone1.Offset(1, 2).Select
With Selection
.ColorIndex = 53
.Pattern = xlSolid
End With
End Sub
Sub CouleurTitreHeuresO()
zone1.Offset(1).Select
With Selection
.ColorIndex = 4
.Pattern = xlSolid
End With
End Sub
Sub CouleurColonneHeuresO()
For i = 2 To 53
zone1.Offset(i).Select
With Selection
.ColorIndex = 35
.Pattern = xlSolid
End With
Next i
End Sub
Sub CouleurColonneflashO()
For i = 2 To 53
zone1.Offset(i, 2).Select
With Selection
.ColorIndex = 53
.patern = xlGrid
.Pattern.ColorIndex = 2
End With
Next i
End Sub
 
Re : message d'erreur "objet requis" ('424')

je sais que c beaucoup plus long que cela devrai etre pour quelque chose d'aussi simple, à l'origine j'ai essayé de déclarer les couleurs en variables mais étant donné que cela ne marchait pas j'ai décidé d'etre moins ambitieux tant pis pour la longueur pourvu que cela marche..
 
Re : message d'erreur "objet requis" ('424')

Re

Dans ta première macro

Si toutes tes macros sont dans le même module
Dim zone1 As Range
en debut de module et en dehors d'une procédure

sinon

Public zone1 As Range
en debut d'un module et en dehors d'une procédure


Sub Colorisation()


Dim v As Integer
Dim nbrcolonne As Integer
nbrcolonne = Range("C5").End(xlToLeft).column

For v = 1 To nbrcolonne
Set zone1 = Range("C" & v)
If zone1 = "M" Then
ColorisationSiM
ElseIf zone1 = "I" Then
ColorisationSiI
ElseIf zone1 = "O" Then
ColorisationSiO
End If
Next v



End Sub

Je regarde le rete quand j'ai 2 minutes
 
Re : message d'erreur "objet requis" ('424')

merci comme tu me l'a conseillé j'ai modifié mon code et déclarer zone1 en dehors de la procédure..je n'ai plus de message d'erreur mais lorsque je modifie la zone de saisie rien ne se passe..peut etre parce que je devrai intégrer mon code pour qu'il s'exécute à chaque foi qu'une cellule est modfiée, ou l'atribuer à un un bouton?
 
Re : message d'erreur "objet requis" ('424')

Re

Si tu l'intègres à chaque fois qu'une cellule est modifiée il faut que tu changes ta façon de procéder sinon cela va être lourd

En effet tu relanceras tous les tests sur chaque colonne à chaque modif donc long à faire

Il faudrait donc tester que la cellule modifiée

Sinon tu as en effet la possibilité de lancer sur bouton

Bon courage
 
Re : message d'erreur "objet requis" ('424')

j'ai attribué la macro à un bouton créé sur la feuille mais rien ne se passe..je ne sais pas d'ou cela peut bien provenir est ce que quelqun pense le savoir?😕
please un petit coup de main..

le code: Public zone1 As Range



Sub Colorisation()

Dim v As Integer
Dim nbrcolonne As Integer
nbrcolonne = Range("C5").End(xlToLeft).Column

For v = 1 To nbrcolonne
Set zone1 = Range("C" & v)

If zone1 = "M" Then
ColorisationSiM
ElseIf zone1 = "I" Then
ColorisationSiI
ElseIf zone1 = "O" Then
ColorisationSiO
End If
Next v



End Sub

Sub ColorisationSiM()

CouleurTitreMonteurM
CouleurTitreFlashM
CouleurTitreHeuresM
CouleurColonneHeuresM
CouleurColonneflashM


End Sub
Sub ColorisationSiI()

CouleurTitreMonteurI
CouleurTitreFlashI
CouleurTitreHeuresI
CouleurColonneHeuresI
CouleurColonneflashI


End Sub

Sub ColorisationSiO()

CouleurTitreMonteurO
CouleurTitreFlashO
CouleurTitreHeuresO
CouleurColonneHeuresO
CouleurColonneflashO


End Sub
Sub CouleurTitreMonteurM()
zone1.Offset(-1).Select
With Selection
.ColorIndex = 41
.Pattern = xlSolid
.Font.ColorIndex = 2
End With
End Sub
Sub CouleurTitreFlashM()
zone1.Offset(1, 2).Select
With Selection
.ColorIndex = 49
.Pattern = xlSolid
.Font.ColorIndex = 2
End With
End Sub
Sub CouleurTitreHeuresM()
zone1.Offset(1).Select
With Selection
.ColorIndex = 41
.Pattern = xlSolid
End With
End Sub
Sub CouleurColonneHeuresM()
For i = 2 To 53
zone1.Offset(i).Select
With Selection
.ColorIndex = 37
.Pattern = xlSolid
End With
Next i
End Sub
Sub CouleurColonneflashM()
For i = 2 To 53
zone1.Offset(i, 2).Select
With Selection
.ColorIndex = 37
.Pattern = xlSolid
End With
Next i
End Sub
Sub CouleurTitreMonteurI()
zone1.Offset(-1).Select
With Selection
.ColorIndex = 38
.Pattern = xlSolid
.Font.ColorIndex = 3
End Sub
Sub CouleurTitreFlashI()
zone1.Offset(1, 2).Select
With Selection
.ColorIndex = 3
.Pattern = xlSolid
End With

End Sub
Sub CouleurTitreHeuresI()
zone1.Offset(1).Select
With Selection
.ColorIndex = 41
.Pattern = xlSolid
End With
End Sub
Sub CouleurColonneHeuresI()
For i = 2 To 53
zone1.Offset(i).Select
With Selection
.ColorIndex = 38
.Pattern = xlSolid
End With
Next i
End Sub
Sub CouleurColonneflashI()
For i = 2 To 53
zone1.Offset(i, 2).Select
With Selection
.ColorIndex = 37
.patern = xlGrid
.Pattern.ColorIndex = 2
End With
Next i
End Sub
Sub CouleurTitreMonteurO()
zone1.Offset(-1).Select
With Selection
.ColorIndex = 4
.Pattern = xlSolid
End With

End Sub
Sub CouleurTitreFlashO()
zone1.Offset(1, 2).Select
With Selection
.ColorIndex = 53
.Pattern = xlSolid
End With
End Sub
Sub CouleurTitreHeuresO()
zone1.Offset(1).Select
With Selection
.ColorIndex = 4
.Pattern = xlSolid
End With
End Sub
Sub CouleurColonneHeuresO()
For i = 2 To 53
zone1.Offset(i).Select
With Selection
.ColorIndex = 35
.Pattern = xlSolid
End With
Next i
End Sub
Sub CouleurColonneflashO()
For i = 2 To 53
zone1.Offset(i, 2).Select
With Selection
.ColorIndex = 53
.patern = xlGrid
.Pattern.ColorIndex = 2
End With
Next i
End Sub
 
Dernière modification par un modérateur:
Re : message d'erreur "objet requis" ('424')

heu apparement mon fichier est trop lourd: 92ko je peux en réduire le poid?? ou alors le compresser ne me pose pas de probleme..🙂

merci pour l'aide en tout cas ça fait du bien de sentir une mains tenter de nous sortir de la piscine dans laquelle on se noie..ouf
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
1 K
B
Réponses
4
Affichages
989
Barbo14
B
T
  • Question Question
Réponses
4
Affichages
5 K
tangiwankenobi44
T
J
Réponses
4
Affichages
2 K
T
Réponses
3
Affichages
2 K
P
Réponses
2
Affichages
1 K
pdrean
P
D
Réponses
5
Affichages
3 K
djevandro76
D
J
Réponses
2
Affichages
2 K
J
Retour