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 :

VBA - Copier/coller le format d'une case avec mise en forme conditionnelle


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 29
    Points : 22
    Points
    22
    Par défaut VBA - Copier/coller le format d'une case avec mise en forme conditionnelle
    Bonjour a vous,
    Mon problème est le suivant :
    J'ai un tableau complet qui possede des mises en forme conditionnelles, que je voudrais copier et coller dans un autre tableau
    Si je procede de la facon classique, le tableau est copié puis collé mais je n'arrive pas a recuperer la "forme" de la cellule à l'instant où je la copie (uniquement le contenu).

    Je precise que je ne souhaite pas recuperer la "formule" de la mise en forme conditionnelle, mais uniquement la mise en forme de chaque case.

    Est ce que quelqu'un a la réponse a mon problème?
    Si oui, il deviendrait mon meilleur ami!!

    merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Tu dois faire un collage spécial en valeur, puis un autre en format.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Merci pour ta réponse, mais j'ai déjà testé ce type d'action mais sans succès...
    Est ce que tu utilise un code particulier?

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Est-ce qu'il y a un message d'erreur ?
    Est-ce que des cellules sont fusionnées ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Non, il copie et colle les valeurs mais je n'ai pas la mise en forme appliquée par la mise en forme conditionnelle.

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Si tu colles en valeur et format, la mise en forme sera aussi transposée avec sa formule
    Si tu ne veux pas la formule de MFC, tu devras, je pense, boucler chaque cellule copiée et retransposer uniquement sa couleur, police, bordures,...

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Voici une façon de faire
    À ajuster à tes besoins

    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
        Dim I As Long, nbColonnes As Long
     
        'Détermine le nombre de colonnes selon les entêtes de la ligne 1
        nbColonnes = Sheets("Feuil1").Cells(1, Columns.Count).End(xlToLeft).Column
     
        'Copie des données de la ligne 2 avec MFC
        Sheets("Feuil1").Rows(2).Copy Sheets("Feuil2").Range("A2")
     
        'Supression de la MFC
        Sheets("Feuil2").Rows(2).FormatConditions.Delete
     
        'Transpose les couleurs de la MFC
        On Error Resume Next  'évite les erreurs pour les cellules qui n'ont pas de MFC
        For I = 1 To nbColonnes
            Sheets("Feuil2").Cells(2, I).Interior.Color = Sheets("Feuil1").Cells(2, I).FormatConditions(1).Interior.Color
        Next
        On Error GoTo 0

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Bonjour,

    J'ai transposé le code sur mon application mais je ne comprends pas pourquoi cela ne marche plus!

    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
    20
    21
    22
    23
    Sheets("SUIVI").Copy Before:=Sheets(2)
        Sheets("SUIVI (2)").Name = "EXTRACT"
     
     
        'Détermine le nombre de colonnes selon les entêtes de la ligne 1
        nbColonnes = Sheets("EXTRACT").Cells(1, Columns.Count).End(xlToLeft).Column
        MsgBox (nbColonnes)
     
        'Détermine le nombre de colonnes selon les entêtes de la colonne A
        nbLignes = Sheets("EXTRACT").Range("A" & Rows.Count).End(xlUp).Row
        MsgBox (nbLignes)
     
        'Suppression des mises en forme conditionnelles sur le fichier copié
        Sheets("EXTRACT").Rows("1:" & nbLignes).FormatConditions.Delete
     
        'Transpose les couleurs de la MFC
        On Error Resume Next  'évite les erreurs pour les cellules qui n'ont pas de MFC
        For b = 7 To nbLignes
            For k = 15 To nbColonnes
                Sheets("EXTRACT").Cells(b, k).Interior.Color = Sheets("SUIVI").Cells(b, k).FormatConditions(k).Interior.Color
            Next
        k = 1
        Next
    Est ce que vous voyez une erreur dans mon code?

    Encore merci

  9. #9
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Change le k par 1 ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("EXTRACT").Cells(b, k).Interior.Color = Sheets("SUIVI").Cells(b, k).FormatConditions(1).Interior.Color

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Merci pour ta réponse,
    cela fonctionne mieux qu'avant mais il fait des copies intempestives de la mise en forme a des endroits ou il n'y en a pas initialement...
    Comment est-ce possible?

    La bonne nouvelle c'est que là ou doit y en avoir une --> elle y est

  11. #11
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Si tu mets un arrêt après cette ligne, est-ce que les mises en forme sont bien toutes disparues ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("EXTRACT").Rows("1:" & nbLignes).FormatConditions.Delete

  12. #12
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Oui après cette ligne il n'y a plus aucune mise en forme

  13. #13
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Je ne vois pas où peut se trouver le problème... (?)
    Tu démarres à la ligne 7 sur les 2 feuilles et la colonne O, c'est ça ?
    Et tu détermines le nombre de colonnes en lisant la ligne 1, c'est toujours bien ça que tu dois faire ?

  14. #14
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Je ne vois pas où peut se trouver le problème... (?)
    Tu démarres à la ligne 7 sur les 2 feuilles et la colonne O, c'est ça ?
    Oui, exactement

    Et tu détermines le nombre de colonnes en lisant la ligne 1, c'est toujours bien ça que tu dois faire ?
    Re-Oui, re-exactement

Discussions similaires

  1. [XL-2007] VBA copier coller d'une selection avec variable
    Par K.Barber dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/10/2013, 15h11
  2. Outil VBA sur ArcGis : Copier/coller les lignes dans une table attributaire
    Par Alexiis dans le forum SIG : Système d'information Géographique
    Réponses: 2
    Dernier message: 26/09/2013, 16h15
  3. Réponses: 4
    Dernier message: 17/12/2012, 13h29
  4. Copie d'une feuille avec mise en forme
    Par kernkraft dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 29/12/2010, 17h09
  5. Copier Coller du Code dans une macro VBA
    Par ted the Ors dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/04/2008, 16h11

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