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 :

Ecouter un evenement sur une cellule et le reproduire sur une autre cellule


Sujet :

Macros et VBA Excel

  1. #21
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Pour ton problème d'évènement qui ne corespond pas a la description...

    Le meilleur moyen de ne pas se planter dans l'éditeur en au de la zone avec les macro tu as deux liste déroulante la première te permet de selectionner un objet la deuxième un évènement et la paf tu as le bon code qui apparait.

    Donc si tu es dans le code de la feuil tu selectionne worksheet a gauche puis Activate a droite et tu obtient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Activate()
     
    End Sub
    Si tu est dans Thisworkbook tu sélectionnes
    Workbook puis worksheetchange et la tu as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
     
    End Sub
    Ce que tu as mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Activate(ByVal Sh As Object)
     
    End Sub
    Et un hybride des deux un peu batard et qui ne peux pas fonctionner
    plus d'info sur les évènements ici
    http://excel.developpez.com/cours/?page=prog#evenement

  2. #22
    Membre actif
    Inscrit en
    Août 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Août 2009
    Messages : 284
    Points : 283
    Points
    283
    Par défaut
    Citation Envoyé par kulnae Voir le message
    Et pour le code même de la feuille et de ce que le bouton est censé mettre à jour, j'obtiens toujours une erreur de compilation ...

    Comment la corriger ?

    Merci,
    Kulnae.
    Je ne comprend pas ta question, ce code est censé mettre à jour tes couleurs, tu n'as besoin de rien d'autre uniquement de ce petit bout de code.
    Il va parcourir les cases B7 à B19 et à chaque fois si le colorindex de la case est 36 il fera les modifs sur la feuille FI et la modif de couleur sur l'onglet

  3. #23
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 22
    Points : 6
    Points
    6
    Par défaut
    Oui diude, je me suis mal exprimé, je voulais juste savoir pourquoi le compilateur me sortait cette erreur

    Hélas il y a encore un petit soucis, excel ne veux pas éxecuter la macro associé au bouton ...

    Erreur d'exécution '438':
    Propriété ou méthode non gérée par cet objet
    Et il va dans VBA editor et me surligne la ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If Cells(2,i).ColorIndex = 16 Then
    Merci,
    Kulnae.

  4. #24
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    il faut que tu lui dise de quoi tu parle
    Une cellule n'a pas de couleur, soit c'est le fond de la cellule qui a une couleur soit le texte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Cells(2,i).Interior.ColorIndex = 16 Then
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Cells(2,i).Font.ColorIndex = 16 Then

  5. #25
    Membre actif
    Inscrit en
    Août 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Août 2009
    Messages : 284
    Points : 283
    Points
    283
    Par défaut
    Ah oui désolé j'ai sauté un truc en tapant.

  6. #26
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 22
    Points : 6
    Points
    6
    Par défaut
    Re,

    Toujours une erreur ...
    J'ai modifié le code, les colonnes et les lignes étaient inversées.

    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
     
    Private Sub CommandButton1_Click()
     
    Dim nom As String
     
    For i = 7 To 26
    If Cells(i, 2).Interior.ColorIndex = 16 Then
    ThisWorkbook.Sheets("FI").Range(Cells(i,2), Cells(i,12)).Interior.ColorIndex = 16
    nom = "MDD" & i - 6
    ThisWorkbook.Sheets(nom).Tab.ColorIndex = 16
    End If
    Next i
     
    End Sub
    Et excel me retourne l'erreur d'exécution suivante :

    Erreur d'exécution '1004':
    Erreur définie par l'application ou par l'objet
    et la ligne surlignée est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.Sheets("FI").Range(Cells(i,2), Cells(i,12)).Interior.ColorIndex = 16
    Comment résoudre cette erreur ?

    Merci,
    Kulnae.

  7. #27
    Membre actif
    Inscrit en
    Août 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Août 2009
    Messages : 284
    Points : 283
    Points
    283
    Par défaut
    Je ne vois pas pourquoi ça ne marche pas comme ça

    j'ai fait des modif et je te met un fichier pour lequel ça marche

  8. #28
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 61
    Points : 68
    Points
    68
    Par défaut
    Bonjour à tous

    il faut également préciser le nom du classeur / de la feuille à la propriété "cells", le bloc "with" permet de rendre le code un plus concis...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With ThisWorkbook.Sheets("FI")
        .Range(.Cells(i, 2), .Cells(i, 12)).Interior.ColorIndex = 16
    End With
    bonne soirée
    @+

  9. #29
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 22
    Points : 6
    Points
    6
    Par défaut
    Ca y'est, c'est résolu !
    Merci à diude, krovax et pierrot !

    Super ce forum !

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/08/2012, 10h24
  2. Réponses: 0
    Dernier message: 22/02/2012, 17h23
  3. [XL-2003] Remplissage d'une cellule en fonction du contenu d'autres cellules.
    Par homer83140 dans le forum Excel
    Réponses: 27
    Dernier message: 13/01/2011, 16h39
  4. [XL-97] Changement valeur d'une cellule en fonction de valeurs d'autres cellules
    Par chubak62 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/01/2011, 10h21
  5. Sommer des cellules en fonction du contenu d'autres cellules
    Par jnmab dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 30/12/2007, 22h05

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