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 d'une feuille à une autres selon 2 conditions


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 66
    Points : 39
    Points
    39
    Par défaut copier d'une feuille à une autres selon 2 conditions
    Bonjour à tous,

    J'essaie présentement de me monter un fichier excel pour planifier la production d'une usine. Il y a 2 types de commandes: des commandes livrées (# commande dans la colonne B se termine par un "L") et d'autres installées (# commande dans la colonne B se termine par un "F").

    Lorsqu'une commande est terminée, on met le nom du client en rouge ou en bleu.
    Mon objectif est que lorsqu'une commande est en rouge, la ligne se recopie sur la bonne feuille (installation ou livraison) selon la dernière lettre du # de commande.

    Si possible, j'aimerais que les commandes dont le nom est en bleu soit mis dans le haut de la page (AU-DESSUS DE LA LIGNE NOIR) et les rouges ensuite (EN-DESSOUS DE LA LIGNE NOIR).

    J'aimerais que le changement se fasse automatiquement lors du changement de couleur de la colonne A est que les données se copient à la suite des autres sans effacer les anciens transferts de données.

    Voici un exemple de mon fichier
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Comme il n'existe pas de procédure évènementielle sur le changement de couleur d'une cellule, je te propose d'utiliser l'évènement "DoubleClick" afin de copier la ligne voulue sur la feuille correspondante et en dessus ou en dessous de la ligne noire. Code à coller dans le module de la feuille "PLANIFICATION" et pour le test, double clique sur une cellule de la colonne A (ne fonctionne pas pour les autres colonnes) et regarde si le résultat te convient. Il est possible une fois la ligne copiée, de colorer une cellule de cette ligne afin d'indiquer qu'elle a justement été copiée. Fait le test sur une copie de ton classeur :
    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
     
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
     
        Dim I As Long
        Dim J As Integer
        Dim Feuille As String
     
        'seulement en colonne A
        If Target.Column <> 1 Then Exit Sub
     
        'couleur rouge ou bleu
        If Target.Interior.ColorIndex = 3 Or Target.Interior.ColorIndex = 41 Then
     
            'décalage par rapport à la ligne noire (insertion en dessus ou en dessous)
            J = IIf(Target.Interior.ColorIndex = 3, 1, 0)
     
            'défini la feuille cible
            Feuille = IIf(Right(Target.Offset(, 1).Value, 1) = "F", "INSTALLATION", "LIVRAISON")
     
            With Worksheets(Feuille)
     
                'parcour la colonne A à la recherche de la ligne noire
                For I = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
     
                    'si trouvée
                    If .Cells(I, 1).Interior.ColorIndex = 1 Then
     
                        'insère une ligne au dessous et y colle la ligne choisie
                        .Cells(I + J, 1).EntireRow.Insert
                        Target.EntireRow.Copy .Cells(I + J, 1)
     
                        Exit For
     
                    End If
     
                Next I
     
            End With
     
        End If
     
        Cancel = True 'évite d'entrer en édition dans la cellule
     
    End Sub
    Hervé.

Discussions similaires

  1. [XL-2007] copier des cellules d'une feuille à une autre selon condition
    Par coolmek dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/03/2014, 20h46
  2. [XL-2007] copier des lignes d'une feuille à une autre et appliquer des filtres avec VBA
    Par Malek713 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/11/2010, 19h46
  3. [XL-2007] Bouton pour copier des cellules d'une feuille à une autre
    Par Samizarrad dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/03/2010, 16h27
  4. copier coller données d'une feuille à une autre
    Par Caps corp dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 09/01/2008, 09h23
  5. [VBA_E]:copier des lignes d'une feuille à une autre
    Par VBBBA dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/06/2006, 16h42

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