Copie automatique lignes sur autre feuille VBA

  • Initiateur de la discussion Initiateur de la discussion valentin.f41
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

V

valentin.f41

Guest
Bonjour à tous ! Je suis nouveau sur ce forum et j'ai un petit souci d'automatisation sur Excel (Mac).

J'ai un fichier dans lequel j'ai une feuille ("PROSPECTS") contenant plusieurs lignes.
J'aimerais, lorsque je passe une ligne de cette feuille en couleur bleue, qu'elle se copie automatiquement sur la feuille ("BLEUS").
L'objectif étant que si je repasse cette ligne dans une autre couleur dans la feuille "PROSPECTS", qu'elle s'efface automatiquement de la feuille "BLEUS".
Cela me servirait à créer une sorte de tableau de bord répertoriant toutes mes lignes bleues dans une seule feuille.

Voici le fichier en question.

Merci beaucoup !
 

Pièces jointes

Bonjour valentin.f41 et bienvenue sur XLD 🙂,

Deux petites remarques perso :

1) un changement de couleur ne déclenchant aucun évènement au sein d'Excel (du moins sur ma version PC), un changement de couleur n'est pas approprié pour réaliser une action (mieux vaut utiliser une colonne particulière avec une action souris qui sera détectable)

2) il vaudrait mieux avoir une clef unique pour chaque ligne de la source qui permettrait de repérer un enregistrement à coup sûr( que l'enregistrement soit sur la feuille ou dupliqué sur la seconde feuille)
 
Dernière édition:
Bonjour valentin.f41 et bienvenue sur XLD 🙂,

Deux petites remarques :

1) un changement de couleur ne déclenchant aucun évènement au sein d'Excel (du moins sur ma version PC), un changement de couleur n'est pas approprié pour réaliser une action (mieux vaut utiliser une colonne particulière avec une action souris qui sera détectable)

2) il vaudrait mieux avoir une clef unique pour chaque ligne de la source qui permettrait de repérer un enregistrement à coup sûr( que l'enregistrement soit sur la feuille ou dupliqué sur la seconde feuille)

C'est vrai que je suis un peu novice... j'ai choisi la couleur bleue pour désigner une catégorie spécifique. Par exemple, toutes les lignes bleues signifient "Contacté". Mon but est de pouvoir regrouper toutes les lignes bleues dans une autre feuille qui se mettrait automatiquement à jour. Je ne sais pas trop comment m'y prendre...
 
Re,

Un essai dans le fichier joint avec VBA et une MFC.

Double-cliquer sur une cellule de la colonne A du tableau, fait alterner la couleur de la ligne entre le bleu et la couleur d'origine de la ligne. Ceci par le biais d'une MFC sur l'ensemble du tableau.

Le transfert des lignes en bleu (plus exactement avec un x en colonne A) se produit quand on sélectionne la feuille BLEUS.

Les codes sont dans les modules de code de chacune des deux feuilles.
 

Pièces jointes

Dernière édition:
Re,

Un essai dans le fichier joint avec VBA et une MFC.

Double-cliquer sur une cellule de la colonne A du tableau, fait alterner la couleur de la ligne entre le bleu et la couleur d'origine de la ligne. Ceci par le biais d'une MFC sur l'ensemble du tableau.

Le transfert des lignes en bleu (plus exactement avec un x en colonne A) se produit quand on sélectionne la feuille PROSPECTS.

Les codes sont dans les modules de code de chacune des deux feuilles.

Bonjour @mapomme,
Merci beaucoup, je regarde le fichier !
 
Bonjour @mapomme,
Merci pour votre aide, pourriez-vous me dire comment je dois modifier le code VBA dans le cas où j'aurais plusieurs feuilles de type PROSPECTS afin de transférer automatiquement les lignes bleues de ces autres feuilles vers la feuille "BLEUS" ?
Merci beaucoup !
 
Bonsoir valentin.f41,
pourriez-vous me dire comment je dois modifier le code VBA dans le cas où j'aurais plusieurs feuilles de type PROSPECTS afin de transférer automatiquement les lignes bleues de ces autres feuilles vers la feuille "BLEUS" ?

Le fichier joint a été modifié pour répondre à votre demande.
Les codes se trouvent dans les modules de code de la feuille "BLEUS", de Module1 et de ThisWorkbook.

Dans le code de Module1, se trouve une constante publique nommée Fproj.
  • Cette constante doit être modifiée par vous-même
  • Elle doit contenir les noms des onglets "projet" séparés par un point-virgule
N'oubliez pas d'appliquer la MFC sur chaque feuille "projet" !
 

Pièces jointes

Bonsoir valentin.f41,


Le fichier joint a été modifié pour répondre à votre demande.
Les codes se trouvent dans les modules de code de la feuille "BLEUS", de Module1 et de ThisWorkbook.

Dans le code de Module1, se trouve une constante publique nommée Fproj.
  • Cette constante doit être modifiée par vous-même
  • Elle doit contenir les noms des onglets "projet" séparés par un point-virgule
N'oubliez pas d'appliquer la MFC sur chaque feuille "projet" !

Super @mapomme !

Un grand merci. Tout est clair ! Une dernière question ce devrait être bon ensuite.
Si je souhaite que la largeur et la hauteur des cellules copiées dans "BLEUS" soient identiques à celles des autres feuilles, dois-je remplacer "Autofit" dans les modules de "BLEUS" par quelque chose d'autre ?

Merci 🙂
 
Bonjour valentin.f41
Une dernière question ce devrait être bon ensuite.
Si je souhaite que la largeur et la hauteur des cellules copiées dans "BLEUS" soient identiques à celles des autres feuilles, dois-je remplacer "Autofit" dans les modules de "BLEUS" par quelque chose d'autre ?

Pas tout à fait, à la place de l'autofit, il faut copier les largeurs des colonnes d'une feuille de type Prospect vers la feuille BLEUS. C'est ce que font les deux instructions rajoutées suivantes :
VB:
.Range("A1:O1").Copy: Range("A1:O1").PasteSpecial xlPasteColumnWidths
 

Pièces jointes

Bonjour valentin.f41


Pas tout à fait, à la place de l'autofit, il faut copier les largeurs des colonnes d'une feuille de type Prospect vers la feuille BLEUS. C'est ce que font les deux instructions rajoutées suivantes :
VB:
.Range("A1:O1").Copy: Range("A1:O1").PasteSpecial xlPasteColumnWidths

Merci @mapomme, j'ai bien tout intégré et tout fonctionne bien.
Est-ce possible que je rajoute une variable en plus du "x" ?
Par exemple, ajouter une variable "v" qui me copierait toutes les lignes contenant "v" dans une autre feuille vierge ?
J'aimerait avoir mes lignes bleues copiées dans la feuille "BLEUS" et mes lignes vertes (contenant "v") copiées dans une autre feuille ("VERTS" par exemple).
Dites-moi si j'en demande trop, je ne connais pas du tout les codes à ajouter...
Merci 🙂
 
Bonsoir valentin.f41,

Est-ce possible que je rajoute une variable en plus du "x" ?
Par exemple, ajouter une variable "v" qui me copierait toutes les lignes contenant "v" dans une autre feuille vierge ?
J'aimerait avoir mes lignes bleues copiées dans la feuille "BLEUS" et mes lignes vertes (contenant "v") copiées dans une autre feuille ("VERTS" par exemple).

Une version v3 qui devrait répondre à votre demande.

Les codes de chaque feuille couleur sont identiques à la déclaration de la constante maValeur près.
Cette constante est égale à la lettre de la colonne A des feuilles PROJET dont les lignes doivent être copiées sur la feuille couleur en question.

Sur la feuille Data figurent la liste des codes Etat pour la liste de validation.

Pour rajouter un état :
  • ajouter une feuille couleur vierge
  • changer le nom de la feuille par le nom de sa couleur (par ex. VIOLETS)
  • sur la feuille Data, rajouter la lettre correspondante à la liste de la colonne A (par ex. v)
  • sur la première feuille Projet, sélectionner le tableau (ligne 2 à 500, colonne A à N)
  • ajouter la MFC pour l'état v
  • puis copier le tableau (ligne 2 à 500, colonne A à N) pour le coller en format seulement sur les autres feuilles projets
  • copier l'ensemble du code d'une feuille couleur déjà existante
  • et coller ce code dans le module de code de la feuille VIOLETS
  • puis dans ce code, modifier la valeur de la constante maValeur pour y placer la lettre v
 

Pièces jointes

Dernière édition:
@mapomme,
Merci infiniment ! Je vais regarder tout cela.
Très bonne soirée,
Valentin
Bonsoir valentin.f41,



Une version v3 qui devrait répondre à votre demande.

Les codes de chaque feuille couleur sont identiques à la déclaration de la constante maValeur près.
Cette constante est égale à la lettre de la colonne A des feuilles PROJET dont les lignes doivent être copiées sur la feuille couleur en question.

Sur la feuille Data figurent la liste des codes Etat pour la liste de validation.

Pour rajouter un état :
  • ajouter une feuille couleur vierge
  • changer le nom de la feuille par le nom de sa couleur (par ex. VIOLETS)
  • sur la feuille Data, rajouter la lettre correspondante à la liste de la colonne A (par ex. v)
  • sur la première feuille Projet, sélectionner le tableau (ligne 2 à 500, colonne A à N)
  • ajouter la MFC pour l'état v
  • puis copier le tableau (ligne 2 à 500, colonne A à N) pour le coller en format seulement sur les autres feuilles projets
  • copier l'ensemble du code d'une feuille couleur déjà existante
  • et coller ce code dans le module de code de la feuille VIOLETS
  • puis dans ce code, modifier la valeur de la constante maValeur pour y placer la lettre v

@mapomme,
Merci pour votre aide. J'ai tout bien mis à jour et cela fonctionne parfaitement.
Que dois-je ajouter à "PasteSpecial xlPasteColumnWidths" si je souhaite également copier la hauteur des lignes ?
Bonne journée,
Valentin
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour