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 :

Sélection de "Names" par feuille


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    sal
    sal est déconnecté
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 5
    Par défaut Sélection de "Names" par feuille
    Bonjour,

    Je souhaite créer un macro permettant, pour chaque onglet d'un fichier Excel de:
    - Sélectionner l'onglet
    - Aller dans chaque noms de plage de l'onglet qui commence par "Retri_CR_"et colorier cette plage.

    Ci dessous, voilà mon code. Le problème avec celui-ci est qu'il ne fait rien: il ne colorie pas les plages de cellule.

    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
     
    Sub ColorForum()
     
        Dim r As Variant
        Dim s As Worksheet
     
        For Each s In Worksheets
     
        s.Select
     
          For Each r In s.Names
     
             If r.Name Like "Retri_CR_*" Then
                With range(r.Name).Interior
                    .ColorIndex = 40
                    .Pattern = xlSolid
                 End With
             End If
     
           Next
     
        Next
     
    End Sub
    Je suis à peu près sur que mon problème vient de l'utilisation de: Malheureusement, j'ai vraiment besoin de n'avoir que les noms des plages de cellules de l'onglet seulement et pas ceux de tout le classeur.

    Avez-vous une idée ?

    Merci pour vos réponses

  2. #2
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    220
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 220
    Par défaut
    Salut,

    essaye avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If left(r.Name,9) = "Retri_CR_" then
    ...
    J'ai pas testé mais ca pourrait être déjà un point

  3. #3
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Hello,

    pour moi .Names est une collection de l'objet workbook et pas de worksheet ...

    Pour obtenir le nom de l'onglet d'un objet Name, je le tenterais comme ça ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objName.RefersToRange.Parent.name

  4. #4
    sal
    sal est déconnecté
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 5
    Par défaut
    Merci pour vos réponses Mellouille56 et Cafeine. En effet, le .Names est une collection de l'objet workbook et pas de worksheet. J'ai donc contourner le problème, en allant sur mon .names grâce au code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    application.Goto Reference:=r.Name

    Cela donne donc:
    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
     
    Sub ColorForum()
     
      Dim r AsVariant
      Dim s As Worksheet
     
      For Each r In ActiveWorkbook.Names 
     
            If r.Name Like "RETRI_CR_*" Then 
              application.Goto Reference:=r.Name 
              ActiveSheet.Select 'Select the Activ
    	  With range(r.Name).Interior
                    .ColorIndex = 40
                    .Pattern = xlSolid
    	   EndWith
    	EndIf
     
      Next
     
    EndSub
    Merci encore

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

Discussions similaires

  1. [ICEFACES] Les quotes sont remplacées par &#_39;
    Par Mathieu.J dans le forum JSF
    Réponses: 0
    Dernier message: 19/01/2010, 16h09
  2. sélection d'une ligne DBGrid par clic
    Par duffman dans le forum Bases de données
    Réponses: 2
    Dernier message: 17/05/2004, 13h45

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