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 :

Problème de code


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Enseignant
    Inscrit en
    Décembre 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 324
    Par défaut Problème de code
    Bonjour
    Serait il possible de me donner des indication sur cette macro. En effet le résultat escompté ne ce produit pas.Bug. Je n'arrive pas a trouver d'ou vient ce problème.

    Merci pour un petit coup de pouce.

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    Option Explicit
    
    Public Const COL_CLASSE_client = 4, COL_CLASSE_CA = 6
    
    Sub Departement_QuandClic()
    'macro appelée lors d'un clic sur un département
        [clNumDepartement] = Right(Application.Caller, 2)
          'recupere le nom de la forme cliquée et extrait ses deux
          'derniers caratères correspondant au numero du département
    End Sub
    
    Sub ColorierCarte(PlageClasses As Range, PlageLegendes As Range)
    'colorie chaque departement de la carte de France en fonction du critere specifie
    'ENTREE PlageClasses : indique les valeurs des classes de chaque departement (95 cellules)
    '       PlageLegende : indique la legende (pour la couleur de fond de chaque cellule)
    '                      (contient autant de cellules que de valeurs de classe)
        Dim numDep As Integer, numClasse As Integer, couleurClasse As Long
        Dim selectionInitiale As Range
        
       '1.memorise la position de la cellule initialement sélectionnée
        Set selectionInitiale = ActiveCell
       '2.colorie chaque département
        For numDep = 1 To PlageClasses.Rows.Count
            numClasse = PlageClasses.Cells(numDep, 1)
            couleurClasse = PlageLegendes.Cells(numClasse).Interior.Color
            ActiveSheet.Shapes("Departements" & Format(numDep, "000")).Select
            Selection.ShapeRange.Fill.ForeColor.RGB = couleurClasse
        Next numDep
       '3.restaure la position de la cellule ou plage initialement sélectionnée
        selectionInitiale.Select
       '4.recopie les couleurs des classes de légende
        CopierCouleurFond PlageLegendes, [LegendeCarte]
    End Sub
    
    Sub ZoneChoixCarte_QuandChangement()
    'procédure exécutée à chaque sélection dans la liste "Nb client / Nb Espèces"
        Dim numColonne As Integer, legende As Range
        'ActiveCell.Select 'pour deselectionner le ScrollBar
        Select Case [clChoixCarte]
            Case 1: numColonne = COL_CLASSE_client: Set legende = [Legendeclient]
            Case 2: numColonne = COL_CLASSE_CA: Set legende = [LegendeCA]
        End Select
        ColorierCarte [PlageDepartements].Columns(numColonne), legende
    
    End Sub
    
    Sub CopierCouleurFond(PlageSource As Range, PlageCible As Range)
    'recopie les couleurs de fond des cellules de la plage-source vers la plage-cible
    '(utilisé pour les couleurs de légendes)
        Dim c As Integer
        For c = 1 To PlageSource.Cells.Count
            PlageCible.Cells(c).Interior.ColorIndex = PlageSource.Cells(c).Interior.ColorIndex
        Next c
    End Sub
    En rouge c'est la que bug.

    Précision 2 feuilles France et Departements

    Merci par avance
    Philippe

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Si je comprends bien, en cliquant sur le département 35 par exemple, vous mettez à jour au final un objet shape appelé "Departements035" n'est ce pas ?
    Pour vérifier, sélectionnez l'objet, son nom apparaît dans la "zone nom" du menu Excel. Ne manque-t-il pas d'espace entre Departements et 035 ?

    Votre ligne de code fonctionne chez moi.

    Sinon,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ActiveSheet.Shapes("Departements0" & numDep).Select
    Cordialement.

  3. #3
    Membre éclairé
    Profil pro
    Enseignant
    Inscrit en
    Décembre 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 324
    Par défaut
    Bonsoir et merci

    après avoir lu votre mail j'ai modifié ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Shapes("Departement " & Format(numDep, "00")).Select
    ça marche
    Merci
    Philippe

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

Discussions similaires

  1. problème de code avec un tableau
    Par richard038 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/05/2006, 17h35
  2. problème de code javascript pour une vue 360°
    Par tomguiss dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/03/2006, 22h50
  3. [POO] Problème de code PHP avec Internet Explorer
    Par bzoler dans le forum Langage
    Réponses: 5
    Dernier message: 12/02/2006, 11h00
  4. Problème de code besoin d un petit depannage
    Par rakengoule dans le forum MFC
    Réponses: 3
    Dernier message: 10/10/2005, 16h25
  5. Probléme de code non portable
    Par Stany dans le forum Windows
    Réponses: 2
    Dernier message: 23/08/2005, 11h02

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