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

Méthode select de la classe range...

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

Dolichotis

XLDnaute Occasionnel
Bonjour,

Je rencontre souvent ce problème mais je ne sais pas comment le résoudre, parfois, il se résoudre tout seul( ça plante une fois sur deux) parfois non.
Code:
'envoyer de l'abeille_Minute à l'objet
        derCol = wsMinute.Cells(14, 256).End(xlToLeft).Column
        For Gr = 17 To derCol
                [COLOR="Red"]wsMinute.Cells(Lig, Gr).Select[/COLOR]
            While (Selection.Interior.ColorIndex = 15)
                Gr = Gr + 1
                wsMinute.Cells(Lig, Gr).Select
            Wend
            Selection.Copy
            wsobjet.Range("D" & ligP).PasteSpecial xlPasteValues
        Next

En rouge, la ligne qui plante. Quand je regarde les valeurs des variables, elle marche très bien mais ça plante quand même.
J'ai bien spécifié la feuille concernée. Ce qui est curieux c'est que j'ai utilisé Cells et il me dit que range a échoué...
J'ai essayé activate, ça ne marche pas mieux.

Je débute en VBA et je pige pas tout, j'apprends un peu sur le tas...
Donnez-moi vos astuces pour que je comprenne ce qui cloche avec ce genre d'instruction...
Je laisse le code complet du fichier (uniquement le code)

Merci !
 
Dernière édition:
Re : Méthode select de la classe range...

Bonjour Dolichotis,

pour sélectionner une plage d'une feuille, il faut d'abord activer la feuille

wsMinute.Activate

ceci dit je ne sais pas pourquoi tu sélectionne ta cellule...
 
Re : Méthode select de la classe range...

Bonjour Tototiti,

J'ai essayé d'activer et ça marche. Je pensais que quand la feuille était déjà active, il n'était pas nécessaire de l'activer !
(Je la sélectionnais pour tester sa couleur)

Maintenant, je le saurais pour la prochaine fois.

Merci beaucoup !
 
Re : Méthode select de la classe range...

bonjour

est-ce que la variable "Lig" est toujours bien initialisée !?
dans cette ligne de code >>> wsMinute.Cells(Lig, Gr).Select
car si elle est parfois = 0 c'est plantage !

Roland
 
Re : Méthode select de la classe range...

Bonjour roland_M

J'ai bien regardé les 2 variables étaient initialisées. Par contre, je comprends pas pourquoi cette méthode marche très bien mais plante (échoue) quand je rajoute un bout de code... (une boucle)
Un partie de vba reste un mystère pour moi... mais je ne demande qu'à apprendre !
 
Re : Méthode select de la classe range...

re

il me semble qu'il y a une anomalie avec Gr que tu utilises avec For
et dans cette même boucle tu initialises Gr = Gr + 1 !!!??? pas catholique du tout !
il faudrait peut être transférer la variable à une autre pour utiliser le compteur + 1
Exemple: SvgGr = Gr puis SvgGr = SvgGr + 1
et ne pas oublier de modifier dans While la variable wsMinute.Cells(Lig, SvgGr).Select !!!

For Gr = 17 To derCol <<<<<<<<<<<<<<<<<<
wsMinute.Cells(Lig, Gr).Select
While (Selection.Interior.ColorIndex = 15)
Gr = Gr + 1 <<<<<<<<<<<<<<<<< !!!???
wsMinute.Cells(Lig, Gr).Select
...
Roland
 
Dernière édition:
Re : Méthode select de la classe range...

en effet, Roland_M a raison, il faut éviter de toucher trop à la variable compteur d'une boucle For... moi j'ai tendance à ne pas y toucher du tout d'ailleurs 🙂.
 
Re : Méthode select de la classe range...

Bonjour à tous

essaye peut être comme suit, mais je ne vois pas l'initialisation de certaines variables (lig et ligp) !!!

Code:
   For gr = 17 To wsMinute.Cells(14, 256).End(xlToLeft).Column
        If wsMinute.Cells(Lig, gr).Interior.ColorIndex = 15 Then
             wsobjet.Range("D" & ligP).value = wsMinute.Cells(Lig, gr).value
        End If
    Next gr

bonne soirée
@+
 
Re : Méthode select de la classe range...


Bonjour à tous, pierrot, roland, tototiti,

Effectivement, roland, j'ai sans doute fait trop de boucles, trop d'incrémentations... Par contre, j'avais initialisé les variables dans mon programmes mais je l'ai pas mis ici.

Merci pour le code rectifié, pierrot même si pour moi, ça serait plus :
Code:
wsMinute.Cells(Lig, gr).Interior.ColorIndex <> 15 Then
Je vais tester.

Bonne journée à tous
 
- 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

Discussions similaires

L
Réponses
6
Affichages
2 K
lukes67
L
P
Réponses
4
Affichages
3 K
pierrot63270
P
C
Réponses
8
Affichages
4 K
comardud
C
P
Réponses
9
Affichages
4 K
M
Réponses
5
Affichages
2 K
michaelexcel
M
N
Réponses
2
Affichages
2 K
nubed
N
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…