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 :

Copier couleur de fond et commentaire selon contenu de cellule


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 42
    Points : 35
    Points
    35
    Par défaut Copier couleur de fond et commentaire selon contenu de cellule
    Bonjour à tous,

    Je travaille sur un fichier Excel dans lequel je change la couleur du fond et j'ajoute un commentaire dans une feuille selon les informations dans une autre feuille
    Le fichier fonctionne bien mais il présente certains problèmes : si je modifie les informations dans une feuille, je dois aller ajuster le code VBA de l'autre feuille et je ne trouve pas la solution à celà

    Voir fichier joint pour plus d'informations

    Présentation de l'Application:

    Selon le poste sélectionné dans la feuille Liste, on copie la couleur du fond et on ajoute le commentaire selon les informations dans la feuille Codes
    Si on change la couleur dans la feuille Codes, les couleurs changent également dans le feuille Liste selon le contenu

    Pblm :

    Si on a plusieurs noms et plusieurs semaines, le fichier devient très lent
    Si on ajoute des postes dans la feuille Codes, il faut ajuster le code VBA de la feuille Liste

    Objectifs :

    Comment faire pour ne jamais changer le code VBA

    - Toutes les cellules contenant une valeur dans la feuille Liste auront une liste déroulante avec le code Poste
    - Si on fait des modifications dans la feuille Codes, par exemple ajouter ou enlever des postes, la feuille Liste sera ajustée en conséquence sans modifier le code VBA de Worksheet_SelectionChange

    Merci
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 240
    Points : 5 655
    Points
    5 655
    Par défaut
    Bonjour,
    Voici,
    Pièce jointe 382396
    Cdlt

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    ajoute "Supprimer dans le sheets code sans couleur et sans texte en "B"

    vire tout ton code dans le module sheets liste
    et met celui ci
    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
    Private Sub Worksheet_Change(ByVal Target As Range)
        Select Case Target.Value
        Case "Agent": Enable_personel 2, Target
        Case "Commis": Enable_personel 3, Target
        Case "Comptable": Enable_personel 4, Target
        Case "Directeur": Enable_personel 5, Target
        Case "Technicien": Enable_personel 6, Target
        Case "Supprimer": Target.ClearContents: Target.Interior.Color = xlNone: Target.ClearComments
        End Select
    End Sub
    Private Function Enable_personel(index, cel)
        With cel
            .ClearComments
            .Interior.Color = Sheets("codes").Cells(index, 1).Interior.Color
            .AddComment: .Comment.Text Text:=Sheets("codes").Cells(index, 2).Text
        End With
    End Function
    Nom : demo5.gif
Affichages : 579
Taille : 536,8 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Membre confirmé
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 365
    Points : 631
    Points
    631
    Par défaut
    Ceci permettrai d'ajouter des éléments dans la liste codes
    ajouter une ligne à la zone nommée "Poste" pour avoir un blanc dans la liste


    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
    Private Sub Worksheet_Change(ByVal Target As Range)
    poste = ActiveCell.Value
    'dans la première colonne de la feuille codes
    Set PlageDeRecherche = Sheets("codes").Columns(1)
    '*******************************
    'méthode find, ici on cherche la valeur exacte (LookAt:=xlWhole)
    Set Trouve = PlageDeRecherche.Cells.Find(what:=poste, LookAt:=xlWhole)
     
    If Trouve Is Nothing Then
        'ici, on ne fait rien si le texte n'est pas dans la liste
        Else
        adressetrouvee = Trouve.Address
        adressecomment = Sheets("Codes").Range(adressetrouvee).Offset(0, 1)
        ActiveCell.Interior.Color = Sheets("Codes").Range(adressetrouvee).Interior.Color
       If Len(adressecomment) > 1 Then
       ActiveCell.AddComment adressecomment
       End If
    End If
    End Sub
    en cas de modification dans la feuille code
    "changement de couleur sur 1 poste ou suppression d'un poste"

    prévoir un code sur
    Private Sub Worksheet_Activate() de la feuille liste.

Discussions similaires

  1. [LibreOffice][Tableur] Mettre une couleur de fond sur la moitié d'une cellule
    Par xillibit dans le forum OpenOffice & LibreOffice
    Réponses: 4
    Dernier message: 02/11/2018, 11h14
  2. [LibreOffice][Texte] Changer la couleur de fond des commentaires
    Par Nina0205 dans le forum OpenOffice & LibreOffice
    Réponses: 4
    Dernier message: 17/02/2017, 16h03
  3. Changer la couleur de fond des commentaires
    Par Nina0205 dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 16/02/2017, 00h56
  4. [OpenOffice] [Présentation] Comment modifier la couleur de fond des commentaires
    Par polymorphisme dans le forum OpenOffice & LibreOffice
    Réponses: 4
    Dernier message: 15/11/2012, 11h20
  5. [COM][Excel2003] Couleur de fond disparait apres avoir setter la cellule
    Par kalimero95 dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 09/04/2010, 17h10

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