Copie ligne selon liste déroulante

Bonjour au Forum,

Je reviens vers vous pour un petit coup de pouce pour finaliser un projet de boulot.

Je souhaite copier certaines lignes d'un tableau en fonction des choix faits à partir d'une liste déroulante.

Mon fichier contient déjà quelques macros:

  • une pour effacer des données
  • une pour sélection et copie dans le presse papier
Elles doivent cohabiter avec la suite des codes.

Le but du projet et t'aboutir sur un automatisation de publipostage.

Je vous joints mon fichier avec des explications pour bien détailler et expliquer mon souhait.

Merci d'avance à tous.

Bonjour

Je regardais un peu cette demande. Pour ma part, je ferais cela via un bouton qui exécuterait un code si la cellule sélectionnée est soit dans la colonne J ou dans la colonne K

Pensable cela ?

Crdlt

Bonjour Dan,

Merci pour le retour.

Oui cela peut être envisageable: néanmoins, peut on conserver le système de liste déroulante? Ce qui pourrait donner en fonction des valeurs renseignées, la destination de copie des lignes?

Je souhaiterais conserver les listes déroulantes et leurs couleurs pour en même temps assurer un suivi et avoir un aperçu rapide des réponses.....

Un petit Re Up!!!

Personne n'a une idée pour résoudre mon problème??

PLEASE!!!!

re

est-ce qu'il se peut que J soit vide d'info ou K ?

Exemple :

J = absent, K est vide

J= vide, K = Absent

Que fait-on dans ce cas. Ma macro peut être exécutée ou pas ?

Re!

On va dire que oui cela est possible.... et en cas d'absence de réponse cela correspond à une absence à cette date! Et oui oui la macro doit pouvoir s’exécuter néanmoins.

Merci.

re

Un peu plus véreux...

Admettons que tu as ABSENT en J et rien en K, tu actionnes le code qui va mettre l'info dans DATE 1

Plus tard tu viens compléter en colonne K, tu actionnes le code qui va compléter en DATE 1 + 2. Là tu auras l'info une fois en DATE 1 et en DATE 1 + 2

C'est pas un problème ?

re,

heu.... si si cela pose en effet un problème!!! Une solution pour palier à cela??

Re

si si cela pose en effet un problème!!! Une solution pour palier à cela??

On peut considérer que le code ne sera exécuté que si tu as les deux valeurs dans chaque colonne. En gros si une de 2 cellules est vide, rien ne se passe.

Si ok, je te propose le code en question

A te relire

Re,

ok je prend!!! MERCI

Re

Voici un code à placer en VBA dans un module et à lier à ton bouton sur ta feuille

Sub copie()
'Dan - 02/03/15
Dim lg as integer
lg = ActiveCell.Row
With ActiveSheet
If lg = 1 Or .Range("J" & lg) = "" Or .Range("K" & lg) = "" Then Exit Sub
Select Case ActiveSheet.Range("J" & lg)
    Case Is = "Présent"
        If .Range("K" & lg) <> "Présent" Then
            .Range("A" & lg & ":D" & lg).Copy Sheets("PUBLI DATE 1").Range("A" & Sheets("PUBLI DATE 1").Range("A" & Sheets("PUBLI DATE 1").Rows.Count).End(xlUp).Row + 1)
        Else: .Range("K" & lg) = "Présent"
            .Range("A" & lg & ":D" & lg).Copy Sheets("PUBLI DATE 1+2").Range("A" & Sheets("PUBLI DATE 1+2").Range("A" & Sheets("PUBLI DATE 1+2").Rows.Count).End(xlUp).Row + 1)
        End If
    Case Is <> "Présent"
         If .Range("K" & lg) = "Présent" Then
            .Range("A" & lg & ":D" & lg).Copy Sheets("PUBLI DATE 2").Range("A" & Sheets("PUBLI DATE 2").Range("A" & Sheets("PUBLI DATE 2").Rows.Count).End(xlUp).Row + 1)
         End If
End Select
End With
End Sub

Le code ne complétera une feuille que si tu as une donnée en J ou K et si cette donnée est contient le mot PRESENT

Amélioration serait de mettre une petite croix par exemple en colonne L, chaque fois que tu as exécuté le code ou d'effacer le mot PRESENT dans la cellule. Enfin à voir selon tes tests.

A te relire

Re,

Merci pour la macro.

Elle fonctionne parfaitement, pas de soucis.

Il me faudra la tester en grandeur réel lors de l'organisation d'un futur concours!!!

Encore merci pour tout le boulot et bonne journée.

Rechercher des sujets similaires à "copie ligne liste deroulante"