Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
966 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Limiter la selection dans excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Limiter la selection dans excel

n°1628493
bebvandal
Posté le 22-10-2007 à 11:48:21  profilanswer
 

Bonjour à tous!
 
Je suis un grand débutant de VBA, et je m'escrime depuis quelques jours sur une macro...
Malheureusement, je commence à vraiment être bloqué et je n'ai rien trouvé malgré des longues recherches sur les fofos...
 
Voila donc mon problème:
 
Je voudrais faire une macro qui change de couleur les cases d'un tableur uniquement sur une colonne pour certaines plages de valeurs. Mais le problème, c'est que ma macro change la couleur sur toutes les cases de la ligne jusqu'au max d'excel! (jusqu'à la ligne 64 000!!) du coup ca dure 3 plombes et c'est pas très pro tout ca...
 
voici mon code:
 
 
 
Sub couleur()
 
 
ActiveSheet.UsedRange.Select
 
Dim cEll As Range
     
If Columns("e:e" ).Select Then
         
        For Each cEll In Selection
             
            If cEll.Value <> "31/12/2007" Then
            cEll.Interior.ColorIndex = 40
            cEll.Offset(0, -4).Interior.ColorIndex = 40
            End If
                                         
        Next cEll
     
    End If
     
ActiveCell.End(xlToLeft).Select
     
MsgBox "fini!"
 
End Sub
 
 
je pense que le probleme vient de mon "If Columns("e:e" ).Select Then", car il "écrase" la 1ère séléction, mais je ne sais pas comment faire pour le limiter aux cellules utilisées du tableau et qu'il n'aille pas jusqu'à la ligne maximum...
 
Qqun pourrait m'aider??
Merci d'avance!

mood
Publicité
Posté le 22-10-2007 à 11:48:21  profilanswer
 

n°1628602
tegu
Posté le 22-10-2007 à 14:23:12  profilanswer
 

As-tu essayé d'utiliser la mise en forme conditionnelle d'Excel (Menu Format) ?
Si oui, en quoi cela ne répond-il pas à ton besoin, pour envisager une macro ?


Message édité par tegu le 22-10-2007 à 14:23:38
n°1628622
Paul Hood
Posté le 22-10-2007 à 14:42:40  profilanswer
 

Bonjour,
Tu lui fais changer de couleur dès que la valeur est différente du "31/12..." quand il n'y a rien c'est normal que ca change.
Ajoute un test du style "si différent de ta cellule vide" avant de changer la couleur.
Pour savoir si ta sélection est dans la colonne "e" teste la colonne de la cellule active :
ActiveCell.Column

n°1628627
bebvandal
Posté le 22-10-2007 à 14:47:06  profilanswer
 

Merci pour vos réponses!
Finalement j'ai réussi à m'en sortir avec un ElseIf different de cellule vide, comme tu le disais Paul Hood.
Mais je pensais qu'il y avait un moyen plus "propre" de lui dire de s'arreter une fois qu'il arrive sur une plage blanche...
 
Et pour répondre à tegu, je sais que ca peut se faire avec la mise en forme automatique, mais en fait plus que la macro, ce qui m'interesse, c'est de savoir la faire! ^^
 
Merci encore!

n°1628628
Paul Hood
Posté le 22-10-2007 à 14:49:09  profilanswer
 

Tu peux si tu connais la taille de ton tableau, définir un Range de ton tableau et lui faire parcourir uniquement les cellules de ce Range avec un each.

n°1628636
bebvandal
Posté le 22-10-2007 à 15:00:17  profilanswer
 

ok, mais justement, mon problème c'est que c'est un tableur à rafraichir régulièrement et dont le nombre de lignes change à chaque fois...
 
Avec le elseif, ca marche très bien, mais est-ce que ca n'alourdit pas mon programme?

n°1628844
devil_k
Posté le 22-10-2007 à 18:43:52  profilanswer
 

la méthode end(xlup) pourrait t'aider...
 
For each cEll in range("E1:E" & range("E65536" ).end(xlUp).row)
 
next
 
En partant du principe que la première cellule soit E1, si tu mets ton traitement à l'interieur de la boucle, je pense que ça devrait correspondre à ce que tu veux !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Limiter la selection dans excel

 

Sujets relatifs
Intégration d'une fenêtre excel dans une appli MFC sous Visual 2005[VBA Excel] Appliquer couleur sur une partie de chaine
enregistre une feuille excelincrementation de cellules sous excel via VB
Extraire de données de fichier texte vers exceltableau avec rendu type "figer les volets" Excel
décaller une sélection de colonne[EXCEL] Aide à la programmation : besoin de conseils
Excel vers solution en lignecompteur sous excel...
Plus de sujets relatifs à : Limiter la selection dans excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR