Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème de selections multiples

  • Initiateur de la discussion Initiateur de la discussion yaacoubi
  • 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 !

Y

yaacoubi

Guest
Bonjour tout le monde,
ça fait pas mal de temps que je me bats pour savoir pourquoi le code suivant ne s'exécute pas:

Sub CellulesDeCouleurs()
Dim ColorIndex As Integer '1
Sheets("Feuil1").Select '2
ColorIndex = Cells(2, 10).Interior.ColorIndex '3
Range("A1:G21").Select '4
Selection.Copy '5
Sheets("Feuil2").Select '6
Range("A1").Select '7
ActiveSheet.Paste '8
Range("A1").Select '9
Set Plage1 = Range("B5:G10") '10
Set Plage2 = Range("B16:G21") '11
Set Plages = Union(Plage1, Plage2) '12
For Each Cll In Plages '13
If Cll.Interior.ColorIndex <> ColorIndex Then plg = plg & Cll.Address() & "," '14
Next Cll '15
If Len(plg) > 0 Then Range(Left(plg, Len(plg) - 1)).Select '16
Selection.ClearContents '17
Selection.Interior.ColorIndex = xlNone '18
End Sub

j'ai coloré les cellules des plages indiquées dans le code ci-dessus par différentes couleurs et je ne veux garder dans la deuxième feuille que la couleur de la cellule (2,10) (ligne 3 du code).
Le code s'exécute sans problème si je remplace le signe <> par = dans la ligne 14 du code par contre en présence du signe <> il indique le message d'erreur suivant : La méthode Range de l'objet global a échoué
Est ce qu'il y a quelqu'un qui peut m'aider et merci d'avance.
 
Re : Problème de selections multiples

Bonsoir

dans ta ligne de code :

Code:
If Cll.Interior.ColorIndex <> ColorIndex Then plg = plg & Cll.Address() & "," '14

tu utilises "ColorIndex" comme variable, alors que c'est déjà un mot utilisé par vba. Modifies peut être ce nom. Ensuite tu fais référence à "plg", cette variable n'est définie nul part et sauf erreur de ma part elle n'est pas initialisée.

bonne soirée.
@+
 
Re : Problème de selections multiples

Salut Yaacoubi,

Sans tester, règle n° 1 : Ne JAMAIS nommer une variable comme une propriété existante dans le vba. Apelle-la StroumphColorIndex si tu veux, mais pas ColorIndex! 🙄 ( je suis même surpris que vba t'ait laissé faire... As tu activé "option explicit"?)

J'essaie de voir si le problème vient de là.

Edit : salut Pierrot 🙂
 
Re : Problème de selections multiples

Bonsoir,

la variable "Dim ColorIndex As Integer '1" correspond à un mot réservé de VBA ce qui doit provoquer le Pb appelez le SauveColorIndex est je pense que cela va fonctionner

GIBI
 
Re : Problème de selections multiples


Bonjour à tous et merci pour les remarques
Je crois que le problème est un problème de débordement (Overflow) car si je réduis la plage le problème ne se pose pas.
Merci
 
Re : Problème de selections multiples

Bonsoir tout le monde,

mis à part le problème que tu as (avais?), voici un code "allégé" des "Select" qui sont très souvent inutile en VBA et qui en plus ralentie l'exécution du code:

Code:
Sub CellulesDeCouleurs()
  Dim MyColorIndex As Integer  '1
  With Sheets("Feuil1")  '2
    MyColorIndex = .Cells(2, 10).Interior.ColorIndex  '3
    .Range("A1:G21").Copy Sheets("Feuil2").Range("A1")
  End With
  With Sheets("Feuil2")
    Set Plage1 = .Range("B5:G10")  '10
    Set Plage2 = .Range("B16:G21")  '11
  End With
  Set Plages = Union(Plage1, Plage2)  '12
  For Each Cll In Plages  '13
    If Cll.Interior.ColorIndex <> MyColorIndex Then plg = plg & Cll.Address() & ","  '14
  Next Cll  '15
  If Len(plg) > 0 Then Range(Left(plg, Len(plg) - 1)).ClearContents
  Range(Left(plg, Len(plg) - 1)).Interior.ColorIndex = xlNone  '18
End Sub
 
- 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
11
Affichages
897
J
Réponses
22
Affichages
3 K
jui42
J
L
Réponses
4
Affichages
806
Lindsay_RBD
L
Réponses
0
Affichages
844
Réponses
1
Affichages
1 K
S
Réponses
4
Affichages
2 K
stage_ferrit
S
Réponses
1
Affichages
1 K
C
Réponses
23
Affichages
4 K
Charles78
C
Réponses
29
Affichages
4 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…