erreur 1004 : sélection échouée
Le
RomainCHY
Bonjour à tous et à toutes,
J'ai un problème dans une procédure qui est censée sélectionner et colorier
le fond des cellules dont la valeur est "PARTIES COMMUNES". Ces cellules sont
dans la colonnes B de la feuille "ElecBordereau".
Ce que je veux, c'est que lorsque l'utilisateur clique sur CommandButton de
mon userform, cette procédure se mette en place.
J'ai déjà écrit ses mêmes lignes de programmation pour une autre feuille
"Bordereau" et un autre userform dans le même programme Excel. Ca marche très
bien.
Mais pour ce userform, ca ne marche pas (erreur 1004: la méthode select de
la classe range a échoué). Quelqu'un peut-il m'aider? Pourquoi dans un même
programme, la même procédure fonctionne une fois sur deux?
Merci d'avance à tous ceux qui peuvent m'aider.
Je joins le code de cette procédure et je précise que je suis débutant.
For Each w In Sheets("ElecBordereau").Range("B8:B120")
If w.Value = "PARTIES COMMUNES" Then
w.Select
With Selection.Interior
.ColorIndex = 37
.Pattern = xlSolid
End With
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
End If
Next w
J'ai un problème dans une procédure qui est censée sélectionner et colorier
le fond des cellules dont la valeur est "PARTIES COMMUNES". Ces cellules sont
dans la colonnes B de la feuille "ElecBordereau".
Ce que je veux, c'est que lorsque l'utilisateur clique sur CommandButton de
mon userform, cette procédure se mette en place.
J'ai déjà écrit ses mêmes lignes de programmation pour une autre feuille
"Bordereau" et un autre userform dans le même programme Excel. Ca marche très
bien.
Mais pour ce userform, ca ne marche pas (erreur 1004: la méthode select de
la classe range a échoué). Quelqu'un peut-il m'aider? Pourquoi dans un même
programme, la même procédure fonctionne une fois sur deux?
Merci d'avance à tous ceux qui peuvent m'aider.
Je joins le code de cette procédure et je précise que je suis débutant.
For Each w In Sheets("ElecBordereau").Range("B8:B120")
If w.Value = "PARTIES COMMUNES" Then
w.Select
With Selection.Interior
.ColorIndex = 37
.Pattern = xlSolid
End With
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
End If
Next w

Poser une question


Ton code en l'état chez moi fonctionne
Toute fois tu peux essayer de remplacer la ligne :
For Each w In Sheets("ElecBordereau").Range("B8:B120")
par
For Each w In Sheets("ElecBordereau").Range("B8","B120")
Peut être celà fonctionnera t'il mieux
Dis moi !!!
ça marche très bien! Comme quoi, ça ne tient à rien... merci beaucoup.
J'ai un autre souci, j'voudrais que ca fasse pareil pour les cellules dont
la valeur est "DIVERS".
Donc, j'ai mis un truc genre
If w.value = "PARTIES COMMUNES" or w.value ="DIVERS" then
w.select
...
Ca ne marche qu'avec PARTIES COMMUNES! Misère.
Tu aurais une idée de la cause?
Merci d'avant et d'avance.
Content de t'avoir aidé
En ce qui concerne ta 2° demande, ta ligne en l'état fonctionne impec chez
moi !!!
Surprenant qu'il en soit pas de même chez toi
A mon avis tes cellules "DIVERS" doivent comporter un caractère
supplémentaire non visible comme un blanc en début ou en fin
Vérifie de ce côté
Tu peux copier la valeur d'une cellule comportant cette donnée et l'intégrer
par un collé dans la ligne
Tu est sur ainsi de tout prendre
Mais peut être qu'un petit ménage serait plus judicieux pour n'avoir que la
donnée
Autre essai : ne mettre qu'une condition avec If w.value = "DIVERS" et de
voir ce que celà donne avant de remettre les 2 conditions
Tiens moi au courrant !!!
Est-il possible que ca vienne du fait que j'ai une même procédure dans un
autre userform pour une autre feuille?
Ca marche avec Partie Commune, mais pas pour DIVERS.
En fait, ca marchait avec PARTIES COMMUNES parce que ct la première cellule
testée.
J'ai remplacé range("B8,B200") par range("B8:B200") et j'ai remis ce que
j'avais mis au départ.
Et maintenant, ca marche!
Aucune idée de la raison de ce miracle informatique. Les programmes
deviendraient-ils capricieux?
Si quelqu'un a une explication... je suis preneur.
En tout cas, merci de ton aide FFO.