IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Mise en couleur de la ligne, de la cellule active


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Eleveur caprin
    Inscrit en
    Juillet 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Eleveur caprin

    Informations forums :
    Inscription : Juillet 2007
    Messages : 146
    Par défaut Mise en couleur de la ligne, de la cellule active
    Bonjour,

    J'aimerai élucidé un petit soucis qui perdure depuis pas mal de temps.
    J'ai un tableau avec énormément de données. J'ai une formule qui me met en couleur la ligne complète de la cellule active. Cependant, lorsque je veux saisir une données en colonne A, j'ai un message d'erreur : "Erreur 1004, impossible de lire la propriété Previous de la classe range." et seulement le problème se pose avec la colonne A, pas les autres. Je contourne le problème pour saisir mais c'est embêtant.
    Impossible de trouver ce qui cloche, et je commence toujours mes saisies en colonne A. Que puis je faire?

    Voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub couleur()
     
    Dim i As Integer
    Dim j As Integer
     
     j = ActiveCell.Previous.Row
    On Error GoTo saut
    For j = 1 To 1000
    If Rows(j).Interior.ColorIndex = 17 Then
       Rows(j).Interior.ColorIndex = 2
    End If
     
    Next j
    i = ActiveCell.Row
    Rows(i).Interior.ColorIndex = 17
    saut:
    Exit Sub
     
    End Sub
    Merci d'avance.

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2015
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 226
    Par défaut Idée à soumettre
    Bonjour,

    Trois points:
    Je ne vois pas l'utilité de la ligne 6 ...

    j = ActiveCell.Previous.Row

    Car en ligne 8 vous avez:

    For j = 1 To 1000

    Si vous voulez réellement conserver la ligne 6, alors

    Si votre activeCell se trouve en A1 (par exemple), avec previous row, j= "0". Ce qui n'est pas possible.
    Vous devez ajouter un contrôle du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        If ActiveCell.Row > 1 Then
              j = ActiveCell.Previous.Row
        Else
              j= 1
        End If
    Et cela ne se plantera plus.

    3° point, la ligne 17 n'est pas nécessaire.


    André

  3. #3
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    Dans le module de feuille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      Rows.Interior.ColorIndex = xlNone
      Target.EntireRow.Interior.ColorIndex = 17
    End Sub

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2019
    Messages : 101
    Par défaut
    Puisque tout le monde y va de sa petite technique, à mon tour !

    3 étapes très simples:

    Dans une cellule inscrire cette formule (Ici, en A4) en bornant le tableau avec min et max :

    Nom : cel 1.PNG
Affichages : 415
Taille : 5,1 Ko

    Sur VBA indiquer dans l'onglet worksheet "Calculate" comme ceci :

    Nom : worksheetcalc.PNG
Affichages : 418
Taille : 9,8 Ko

    Enfin, grâce à une simple mise en forme conditionnelle:

    Nom : MFC.PNG
Affichages : 404
Taille : 7,5 Ko

    Mickamax

Discussions similaires

  1. Mise en couleur d'une ligne
    Par d.bargibant dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 20/12/2018, 13h56
  2. [XL-2010] Problème de mise en couleur d'une ligne dans une liste
    Par Angélique01 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/10/2014, 19h57
  3. sélectionner la ligne de la cellule active
    Par jmcemoa dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/03/2008, 14h34
  4. sélectionner la ligne de la cellule active
    Par jmcemoa dans le forum VBA Word
    Réponses: 2
    Dernier message: 12/03/2008, 23h37
  5. [VBA]Récupérer numéros de colonne et de lignes de la cellule active
    Par Subkill dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/04/2007, 20h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo