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 :

récuperer couleur MFC depuis un classeur excel fermé


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2016
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2016
    Messages : 306
    Par défaut récuperer couleur MFC depuis un classeur excel fermé
    Bonjour,

    je viens ici car je ne sais pas si il est possible de récupérer la couleur d'une cellule soumis à une MFC avec la routine ci-dessous? (méthode souhaitée)

    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 RequeteClasseurFerme()
        Dim Fichier As String, NomFeuille As String
        Dim Rs As Object
     
        NomFeuille = "VOITURE"
     
        Fichier = ThisWorkbook.path & "\" & "CLIENT.xlsm"
     
    '--- Connection ---
    With CreateObject("AdoDb.Connection")
        .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=1;"""
        Set Rs = .Execute("SELECT * FROM [" & NomFeuille & "$]")
    '-----------------
         ReDim Tbl(Rs.Fields.Count)
         Tbl = Rs.GetRows
     
         .Close
    End With
    End Sub
    Pour faire simple, avec la méthode actuelle j'ouvre un fichier excel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Wbk = Workbooks.Open(chemin, , True) 'On ouvre le fichier en lecture seule
    puis j'éxecute ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Range("G" & Plage(i).Row).offset(j, 0).DisplayFormat.Interior.Color = 16777215

    la méthode actuelle est longue par rapport à la méthode souhaitée. D'où savoir si c'est possible ou pas ?

    merci pour votre éclairage.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Bonjour,

    sauf erreur de ma part, tu ne peux pas via ce moyen récupérer la couleur.

    Par contre, en passant par les conditions et en recalculant le tout, ca devrait être possible.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2016
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2016
    Messages : 306
    Par défaut
    Bonsoir Jean-Philippe,

    Pouvez-vous, svp, développer un peu plus, svp. Je ne vois pas très bien la chose.
    Merci.

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,
    Ce que j'entends par là est que tenter de prendre un recordset pour ensuite passer par le displayformat, c'est pas mal acrobatique

    Si tu veux savoir quelle couleur la cellule a via la MFC, ton approche avec DisplayFormat est OK, mais comme tu passes par un recordset, ce que je re commandais ici était plutôt de savoir quelle MFC est appliquée à ta cellule, et faire ne sorte de reproduire le cheminement par VBA pour en déduire la couleur.

    Donc, soit tu "ouvres" le fichier et tu récupères les couleurs, soit tu laisses le fichier "fermé" et tu tentes de reproduire la MFC.

    Je ne vois pas d'entre deux...
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2016
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2016
    Messages : 306
    Par défaut
    Hello,

    Je tente la seconde méthode.
    1/ je mets dans un tableau tbl l’enregistrement rs
    2/ mise en forme du tableau tbl pour toutes les valeurs = null transformées en ’’ ’’. Car, rs retourne des valeurs à null (je filtre aussi quelques valeurs du tableau rs car il y a des symboles indésirables, par,des if)
    3/creation d’un tableau condition appelé cdt a 2 dimensions
    3.bis/creation tableau 1 dimension couleur
    Je m’assure que tous les tableaux ont les mêmes dimensions


    4/je prend les variables tableaux tbl et je compare a la 1ere et 2eme dimension de cdt dans une boucle de lbound(tbl) a ubound(tbl)

    Du genre if tbl(i) < cdt(0,i) or tbl(i) > cdt(1,i) then couleur(i)=«*rouge*» elseif tbl(i)=’’ ’’ then couleur(i) =«*bleu*» else couleur(i)=«*vert*»
    Voir si le case est mieux

    Et donc le 4/ ressemble à la gestion des regles de condition d’une cellule qui applique la mfc

    ——————————————————-
    Je prends la seconde methode parce que l’ouverture d’un fichier ou du moins la lecture du contenu d’un fichier excel est très rapide moins de 2s par cette méthode (adodb.connection)

    Je laisse la discussion quelques jours ouverte, au cas où une personne trouverait plus simple ou mieux.
    Puis je clôturerai la discussion.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Importer une image depuis un Classeur Excel fermé
    Par N_icolas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/01/2018, 17h01
  2. Ecrire dans classeur excel fermé depuis OutLook
    Par francky74 dans le forum VBA Outlook
    Réponses: 1
    Dernier message: 27/09/2011, 14h06
  3. [WD-2007] récupérer le nom d'une feuille d'un classeur excel fermé, depuis word
    Par markelov dans le forum VBA Word
    Réponses: 0
    Dernier message: 24/02/2010, 11h33
  4. [ADO VBA] Lire Ecrire dans classeur Excel fermé - Demande de précisions.
    Par botakelymg dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/11/2007, 17h08
  5. Réponses: 15
    Dernier message: 21/11/2006, 10h13

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