XL 2016 Extraire ligne de couleur

Scorpio

XLDnaute Impliqué
Bonjour à tous,
Alors voici un nouveau soucis.
j'aimerais transférer les lignes sélectionnée en vert de la feuille "BD", pour les transférer dans la feuille "Copie"
Merci de votre aide
A++++
 

Pièces jointes

  • ColoriageSélectionLigne.xlsm
    22.4 KB · Affichages: 31

Brice G

XLDnaute Occasionnel
Ok, merci:),
alors il est vrai que je trouvais ta macro assez bien faite et efficace, mais je me suis dit qu'en utilisant les tableaux d'Excel, ça me permettait de répondre à tes attentes.
J'ai supprimé dans le fichier joint ta macro, pour plus de clarté, je ne pense pas en avoir besoin, et si tu souhaites la garder, tu l'as déjà.;):)
Voici ce que j'ai fait :
- Inséré deux tableaux de taille identiques, un dans BD, un dans Copie ; l'utilisation des boutons de filtre te permettent très simplement de filtrer les différentes entrées du tableau ; la ligne total (ajoutée simplement en cochant "ligne total" sous l'onglet création quand la cellule active se trouve dans le tableau) suit le rythme du filtre ;

- Ajouté une macro qui copie les lignes filtrées du tableau1 de BD (pour cela notamment que je voulais avoir un tableau, pour m'éviter dans la macro d'avoir un "A2:D13" mais plutôt un "Tableau1") vers celui dans Copie.

Seul hic quand on refait la manip si la deuxième sélection est moins grande que la première ==> nécessité de supprimer l'ensemble des valeurs du tableau 2 avant de refaire la manip, j'ai là aussi mis un petit bouton qui te permet peut-être de gagner une seconde.:D:)

Cela te convient-il ?
 

Pièces jointes

  • ColoriageSélectionLigne_brice.xlsm
    32 KB · Affichages: 28

Scorpio

XLDnaute Impliqué
Et bien ok, je te remercie beaucoup.
C'est aussi jouable
Le seul souci Brice G, c'est que j'ai un autre classeur, avec des données personnel.
j'utilise déjà la sélection avec ligne de couleur, et j'aurais bien aimé faire le transfert avec un code vba, qui serais bien plus simple dans ce classeur
A++++
 

Brice G

XLDnaute Occasionnel
Comme tu le souhaites, :) j'avais essayé d'expliquer simplement ce que j'avais fait, qui, honnêtement, est très très simple, et très facilement transposable. Tu as "juste" à sélectionner ton tableau, puis insérer tableau.:p:) Pour les deux petites macros, rien de méchant si j'y suis arrivé.:D

Je trouve toujours dommage de ne pas utiliser un outil d'Excel déjà efficace et puissant, ou d'en passer par du VBA pour refaire ce que l'outil fait déjà.
Mais bon, tant que ça fonctionne après tout, toi qui vois.;):)
 

Scorpio

XLDnaute Impliqué
Comme tu le souhaites, :) j'avais essayé d'expliquer simplement ce que j'avais fait, qui, honnêtement, est très très simple, et très facilement transposable. Tu as "juste" à sélectionner ton tableau, puis insérer tableau.:p:) Pour les deux petites macros, rien de méchant si j'y suis arrivé.:D

Je trouve toujours dommage de ne pas utiliser un outil d'Excel déjà efficace et puissant, ou d'en passer par du VBA pour refaire ce que l'outil fait déjà.
Mais bon, tant que ça fonctionne après tout, toi qui vois.;):)
Re salut Brice G,
Non non, je suis d'accord avec toi, seulement que pour mon autre classeur, la soluc du code et plus simple à adapter, voilà
Mais je garde ta solus, bien sur, et elle me serviras pour d'autre travaux.
Merci beaucoup Brice G de ton aide, c'est super.
A++++
 

zebanx

XLDnaute Accro
Re-

Pour la forme et pour supprimer 1/2 select inutiles dans les copies de feuilles à feuille.
Ca me plait plus comme cela bien que la différence en nombre de lignes soit très faible.
Mais sur une plage plus longue, le temps sera réduit avec la suppression des select.

Bon apm ++

Code:
Sub copie_coul2()
Dim derligne As Integer

derligne = Sheets("BD").Cells(Rows.Count, 1).End(3).Row
Set S1 = Sheets("BD")
Set S2 = Sheets("Copie")
j = 2

S2.Activate: S2.Range("A2:D" & Range("D2").End(4).Row).ClearContents

S1.Select
For i = 2 To derligne
If Cells(i, 1).Interior.ColorIndex = 4 Then
S1.Rows(i).Copy Destination:=S2.Range("A" & j)
j = j + 1
End If
Next i
S2.Activate: [A1].CurrentRegion.Interior.ColorIndex = 2: [F1].Select
End Sub
 

Pièces jointes

  • couleurs_sous-total.xls
    51.5 KB · Affichages: 33

zebanx

XLDnaute Accro
Re-

Préalable :
Si tu donnes un exemples avec 4 colonnes pour ensuite partir sur 15, il te faudra nécessairement modifier ton premier code (avec les couleurs) puisque tout est calé sur la zone "a:d" comme tu peux le voir dans les modules de VBA.
A toi de changer tes bornes dans ce cas (taper ALT +f11 pour accéder à la fenêtre VBA puis aller dans la feuille 4 et modifier les bornes "d" par la lettre qui représente ta dernière colonne, soit O pour 15 colonnes).

S'agissant de la réponse, elle est différenciée :
- sur les colonnes : pas de problème puisqu'on copie des lignes entre les deux feuilles
- sur les formules : ça dépend
cas 1 : toutes tes formules ne concernent que la ligne concernée, dans ce cas, la copie simple ne pose pas de problème
cas 2 : si ce n'est pas le cas, alors il y aura des problèmes (cellule en jaune) puisque l'on perd des données utilisées dans les formules.

J'ai donc rajouté une autre macro qui ne fait que la copie en valeur dans le deuxième tableau.
Là, il n'y a pas de problème.

cdlt
 

Pièces jointes

  • couleurs_sous-total.xls
    65.5 KB · Affichages: 26

Discussions similaires

Réponses
12
Affichages
166
Réponses
9
Affichages
246

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
314 144
Messages
2 106 354
Membres
109 563
dernier inscrit
sylla121