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 les cellules colorées en contingu avec union


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut Copier les cellules colorées en contingu avec union
    j'aimerais copier les cellules en verts avec ce code mais ca ne marche pas
    merci pour votre aide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Dim c As Range, Plage As Range, Adresse As Range
    Set Plage = Range(Selection.Address)
    Set addresse = Application.Union(Range("d215"), Range("d216"))
    For Each c In Plage
    If c.Interior.ColorIndex <> 0 Then
    Set Adresse = Application.Union(Adresse, c)
    End If
    Next c
    For Each c In Adresse
    c.Offset(, 1) = c.Value
    Next c
    Nom : 0img36.jpg
Affichages : 250
Taille : 21,6 Ko

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 661
    Points : 5 785
    Points
    5 785
    Par défaut
    mais ca ne marche pas
    Peux tu être encore moins précis ? tu nous noyes dans les détails il est difficile de t'aider dans ce cas.

    Tes couleurs viennent-elles d'une MFC ?
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par bigs3232 Voir le message
    j'aimerais copier les cellules en verts avec ce code mais ca ne marche pas
    Les copier où ?

    A priori, ton code peut se simplifier ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim c As Range
    For Each c In Selection
        If c.Interior.ColorIndex <> 0 Then c.Offset(0, 1).Value = c.Value
    Next c
    Mais je n'ai pas compris à quoi sert le Set addresse = Application.Union(Range("d215"), Range("d216")) du début.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour

    1) Cette ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c.Offset(, 1) = c.Value
    ne fait que copier dans la colonne suivante à droite le contenu des cellules répondant à ton critère.
    Est-ce ce que tu veux ou veux-tu obtenir autre chose (et quoi, exactement) ?
    2) à quoi correspond Selection ?
    - à une sélection manuelle ?
    - à la sélection d'une seule cellule ou de pluusieurs ?

    il est d'autant plus difficile de deviner que tu ne montres qu'une partie de ton code, sans même que l'on puisse savoir dans quelle procédure évènementielle il a été écrit.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    trop gentil pour s'occuper de mon petit probleme
    je cherche à maitriser la selection contigue c'est a dire quand je selectionnne plusieurs cellules contigues comme sur la photo et que je puisse stocker les cellules en vert .
    soit je le copie à droite comme l'a fait menhir soit surtout j'aimerais copier en presse papier toutes les cellules en vert en utilisant la fonction union

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    Mais je n'ai pas compris à quoi sert le Set addresse = Application.Union(Range("d215"), Range("d216")) du début.[/QUOTE]
    en fait je ne sais pas comment utiliser la fonction union et j'ai vu çà sur ce forum

  7. #7
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par bigs3232 Voir le message
    en fait je ne sais pas comment utiliser la fonction union et j'ai vu çà sur ce forum
    Union n'est pas une fonction mais une méthode de l'objet Application.
    https://msdn.microsoft.com/fr-fr/lib.../ff834621.aspx

    Perso, c'est l'un des trucs que j'évite d'utiliser autant que possible parce qu'il est compliqué d'utiliser des objets composés de sélections non contigües.
    Dans la plupart des cas, il est plus simple de faire un traitement sur les cellule quand on les trouve plutôt que de vouloir les unir pour faire globalement un traitement à posteriori.
    Surtout dans un code comme le tien dans lequel tu redécomposes ton objet uni par une seconde boucle.

    Dans ton cas, le plus simple serait de placer (éventuellement en VBA) un filtre sur ta sélection qui ne fasse apparaitre que les cellules vertes et, ensuite, de sélectionner les cellules visibles par l'intermédiaire d'un SpecialCells(xlCellTypeVisible).
    https://msdn.microsoft.com/fr-fr/lib.../ff196157.aspx
    Ca éviterait de faire une boucle.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    bonne idée menhir .oui j'oublies les cellules contigues et j'adopte ta méthode avec SpecialCells(xlCellTypeVisible

  9. #9
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par bigs3232 Voir le message
    les cellules contigues
    Je crois que tu confonds "contigües" (liées 2 à 2 par un bord) et "unies" ou "groupées".
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    surement .en tout cas selon tes conseils j abandonne la methode union

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/02/2018, 10h37
  2. VBA - Copier les cellules de la cellulle supérieure
    Par jeremie78 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/08/2011, 14h11
  3. [XL-2007] copier les cellules d'un fichier à l'autre
    Par salekh dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 17/05/2011, 10h39
  4. [XL-2007] Copier les cellules d'un classeur vers un autre
    Par tibofo dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/07/2010, 13h02
  5. classer par date les resultats de 2 tables avec UNION
    Par dgedge dans le forum Requêtes
    Réponses: 4
    Dernier message: 14/06/2005, 19h23

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