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

Excel Discussion :

Mise en forme conditionnelle +Insertion lignes


Sujet :

Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Janvier 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2015
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Mise en forme conditionnelle +Insertion lignes
    Bonjour à toutes et à tous

    ma problématique consiste à:
    j'ai un onglet excel où j'ai appliqué un mise en forme conditionnelle sur une plage bien définie: =$A$1:$O$20
    j'ai un besoin reccurent d'insérer des lignes à partir d'un autre onglet par le biais d'un macro VBA,
    par contre j'aimerais que la plage de mon MFC suit cette insertion,exemple: si j'insère 3 ligne au dessus de la ligne 5; je veux que le champs "S'applique à " devient =$A$1:$O$23 et non égale à =$A$1:$O$4;$A$8:$O$23

    Merci d'avance pour votre aide

  2. #2
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Bonjour RHTI_excel,

    Logiquement, tu insères ta/tes ligne(s) grâce à .Insert Shift:=xlDown.

    Rajoute la propriété suivante .Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove et ça devrait bien se passer !

    Cordialement,
    Kimy
    La logique :
    • Plus ya de gruyère, moins ya de gruyère.
    • Plus tu pédales moins vite, moins tu avances plus vite.
    Plusoyer les réponses pertinentes et n'oublier pas de résolver en fin de post !

  3. #3
    Candidat au Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Janvier 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2015
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Bonjour Kimy_Ire
    et merci pour la réponse rapide.
    effectivement j'ai cru que cela devrait faire l'affaire; hélas toujours pas.
    Voici le code que j'utilise pour insérer les 3 lignes:

    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
    Sub Ajout_ressource_DT()
     
    Dim l As Integer
    Dim Msg, Style, Title, Help, Ctxt, Response, MyString
    Dim i, nb As Integer
     
    Application.ScreenUpdating = False
        Sheets("Légende").Select
        Rows("12:14").Select
        Selection.Copy
        Sheets("Planification").Select
        l = ActiveCell.Row
        Rows(l + 7).Select
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
         Cells(l + 7, 1).Select
     
    End Sub

  4. #4
    Membre régulier
    Homme Profil pro
    Apprenti GEII
    Inscrit en
    Janvier 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti GEII
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 83
    Points : 109
    Points
    109
    Par défaut Up
    [XL-2010] J'up ce sujet, je rencontre le même problème, la solution de Kimy_Ire ne fonctionne pas pour moi non plus... des idées?
    Par exemple est-ce possible dans ma macro après l'insertion de la ligne de supprimer la mise en forme conditionelle et dans la foulée d'en créer une qui convient, automatiquement ?

    D'avance merci, PierrotMfff

  5. #5
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Bonjour,

    Je pense que la seule manière est de réappliquer les MFC à la feuille dans la macro afin de "reseter" les MFC sur l'ensemble des plages.
    Mais peut-être qu'un expert aura une autre solution.

    Cordialement,
    Kimy
    La logique :
    • Plus ya de gruyère, moins ya de gruyère.
    • Plus tu pédales moins vite, moins tu avances plus vite.
    Plusoyer les réponses pertinentes et n'oublier pas de résolver en fin de post !

  6. #6
    Membre régulier
    Homme Profil pro
    Apprenti GEII
    Inscrit en
    Janvier 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti GEII
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 83
    Points : 109
    Points
    109
    Par défaut Re
    Oui... Merci !
    Je pensais à un moyen de supprimer, modifier, ajouter des règles de MFC via VBA, je ne trouve rien sur le net

    1h plus tard: multiples tests avec l'enregistreur de macro pendant l'édition d'une règle de MFC, la macro est vide

  7. #7
    Membre régulier
    Homme Profil pro
    Apprenti GEII
    Inscrit en
    Janvier 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti GEII
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 83
    Points : 109
    Points
    109
    Par défaut Re
    Sous la lumière d'insosama, j'ai trouvé la solution, merci à lui !

    Voilà comment il faut faire:

    Imaginons la MFC de la plage A1:H20
    Après avoir éditer sa règle de MFC, au lieu de laisser la formule:

    Il faut mettre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DECALER($A$1;0;0;NBVAL($A:$A);8)
    ou $A$1 est la cellule le plus en haut à gauche de ta table.
    ou 8 est le nombre de colonne de ta table
    et surtout NBVAL(A:A) retourne le nombre de cellule de la colonne A, qui évoluera en phase avec les insertions ! (Même si une ligne est insérée, et que la cellule fraîchement crée de la ligne insérée et de la colonne A est vide, ça marche quand même )

    ainsi, lors d'un insertion de ligne (VBA ou manuelle)
    La formule renvoie bien: =$A$1:$H$21.

    Encore un grand merci à insosama

  8. #8
    Candidat au Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Janvier 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2015
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Merci PierrotMfff

    j'ai tester votre proposition; hélas ça fonctionne pas toujours.

    j'ai remplacé =$T$4:$VO$1072 par =DECALER($T$4;0;0;NBVAL($T:$T);568).
    deux soucis:
    1) en cliquant sur ok de la fenêtre MFC et en revérifiant tout de suite la formule change en: =$T$4:$VO$188 !!

    2) et en insérant mes lignes avec macro; la formule MFC devient: =$T$4:$VO$14;$T$18:$VO$191 !!

    analysant votre proposition ; elle me semble pertinente ; par contre ça marche chez moi!!
    merci encore une fois

  9. #9
    Membre régulier
    Homme Profil pro
    Apprenti GEII
    Inscrit en
    Janvier 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti GEII
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 83
    Points : 109
    Points
    109
    Par défaut Re
    Bonjour,

    1) en cliquant sur ok de la fenêtre MFC et en revérifiant tout de suite la formule change en: =$T$4:$VO$188 !!
    c'est normal ça me le fait aussi, la formule reste implicite, mais la range pointée par celle ci est explicite

    2) et en insérant mes lignes avec macro; la formule MFC devient: =$T$4:$VO$14;$T$18:$VO$191 !!
    En utilisant cette méthode, pour moi ça marche nickel sauf lorsque ma ligne est en dernière position de ma plage!
    imaginons la mise en forme lignes 1,2,3 ; si j'insère en 1,2,3 ça marche, mais pas en 4... Même si dans ma formule j'ai mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     =DECALER($A$1;0;0;NBVAL($A:$A)+2;8)
    Je cherche encore pour gérer le cas de la dernière ligne...

  10. #10
    Membre régulier
    Homme Profil pro
    Apprenti GEII
    Inscrit en
    Janvier 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti GEII
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 83
    Points : 109
    Points
    109
    Par défaut Re
    J'ai lâché l'affaire, désormais je met en forme sur changement des valeurs de ma feuille !

  11. #11
    Membre expérimenté
    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    667
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Août 2010
    Messages : 667
    Points : 1 419
    Points
    1 419
    Par défaut
    Bonjour,

    Il ne faut pas "insérer des cellules copiées" mais insérer de nouvelles lignes "vierges" (sans avoir copié les cellules) avant de copier par valeur ou par formule sur ces nouvelles lignes. Il ne faut pas faire un collage normal car cela applique la mise en forme des cellules sources au lieu de conserver la mise en forme de destination.

    Pour résoudre le problème de la mise en forme qui ne s'applique pas aux lignes insérées après le tableau, le plus simple serait d'utiliser un tableau structuré (menu Insertion -> Tableau) qui résoudra le problème de lui-même.


    Au passage, les .select = pas bien!

Discussions similaires

  1. Mise en forme conditionnelle sur ligne
    Par shadrac dans le forum Access
    Réponses: 4
    Dernier message: 27/05/2015, 20h13
  2. Insertion d'une ligne via macro + copie de la mise en forme conditionnelle
    Par JustyDark dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/04/2015, 08h43
  3. [XL-2007] Mise en forme conditionnelle pourcentage ligne
    Par alex_m94 dans le forum Excel
    Réponses: 4
    Dernier message: 17/09/2013, 17h35
  4. [XL-2010] Mise en forme conditionnelle par ligne
    Par sbricout dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/02/2011, 17h51
  5. Suppression ligne + Mise en forme conditionnelle
    Par DubDub dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 25/02/2009, 07h15

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