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 :

union plusieurs ranges selon la zone en couleur


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Par défaut union plusieurs ranges selon la zone en couleur
    j'ai un fichier excel avec couleur sur ces cellules range(("l8") et range("l11")
    je voudrais recuperer les range(a8:m8) et range(a11:m11) avec la fonction union mais cela ne semble pas marcher
    si vous avez une piste merci d'avance
    Nom : 0img54.jpg
Affichages : 689
Taille : 129,6 Ko
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub aa_2_5test3()
        Set plage1 = Range("l2:l13")
        plage1.Select
        Set Plage = Nothing
        Set Plage = Range("a4:m4")
        For Each c In plage1
        If c.Interior.ColorIndex = 6 Then
        Set Plage = Union(Plage, Range("A" & c.Column - 1, "m" & c.Column - 1))
        End If
        Next c
        Plage.Select
    End Sub

  2. #2
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,
    c.column --> c.row
    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Par défaut
    merci mjpmjp ca a l'air de marcher
    j'aimerais en faire une fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    fuction f_get_multi_select_Scolor()
        col = get_tit_Srech_Act("volt_conn", 3)
        derlig = Range(col & Rows.Count).End(xlUp).Row  '
        Set plage1 = Range(col & 4, col & derlig)
        Set f_get_multi_select_Scolor = Range("a4:aa4")
        For Each c In plage1
        If c.Interior.ColorIndex = 6 Then
        Set f_get_multi_select_Scolor = Union(f_get_multi_select_Scolor, Range("A" & c.Row, "AA" & c.Row))
        End If
        Next c
        'Plage.Select
    End Sub
    et lancer avec çà
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub aa_2ee()
      Set Plage = f_get_multi_select_Scolor()
      Plage.Select
    End Sub
    mais ca ne marche pas .
    encore besoin de votre conseil

  4. #4
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,
    le "format" de range est le suivant ... range("A1") ... une lettre et un chiffre
    tu utilise ...range("A1","A2")..... ok

    maintenant tu écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set plage1 = Range(col & 4, col & derlig)
    si on reprend la partie Range(col & 4) .... on a "col" qui est un chiffre et 4 qui est un chiffre ... çà ne correspond au "format" indiqué au début !!!

    tu peut dans ce cas utiliser Cells() qui utilise que des chiffres avec un "format".... Cells(ligne,colonne)...qui est inversé par rapport à range(colonne & ligne)
    donc tu pourrais écrire
    Set plage1 = Cells(col & derlig,col & 4) ....avec une inversion

    à toi de voir si le contenu est correct !!
    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Par défaut
    je refais avec ec code mais ca ne marche toujours pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    fuction union_plage()
    Set plage1 = Range("l2:l13")
    plage1.Select
    Set union_plage = Range("a4:m4")
    For Each c In plage1
    If c.Interior.ColorIndex = 6 Then
    Set union_plage = Union(union_plage, Range("A" & c.Row - 1, "m" & c.Row - 1))
    End If
    Next c
    End Sub
    Sub aa_1tes()
    Set Plage = union_plage()
    Plage.Select
    End Sub

  6. #6
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,
    la plage commence ligne 4 : Set plage1 = Range("l4:l13")

    pourquoi c.Row - 1 ?

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

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

Discussions similaires

  1. Concatener le contenu de plusieurs cellules selon couleurs
    Par ludion62 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/05/2010, 20h05
  2. [VBA-E] sélection plusieurs lignes selon critères
    Par clairefranclieu dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 06/09/2006, 17h22
  3. Copie de plusieurs lignes d'une zone de liste
    Par abennani dans le forum Access
    Réponses: 3
    Dernier message: 28/08/2006, 14h02
  4. Réponses: 10
    Dernier message: 03/07/2006, 14h55
  5. plusieurs selections selon sur colonne different critere
    Par richton95 dans le forum Requêtes
    Réponses: 2
    Dernier message: 27/01/2006, 17h25

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