Vba copier/coller selon conditions

vdh_xavier

XLDnaute Junior
Bonjour,

Tout d'abord merci à celui ou à celle qui voudra bien lire mon message et s'attaquer à mon problème.

Pour simplifier les choses, disons que j'ai un tableau excel avec 2 colonnes : l'une reprenant le nom de différentes sociétés et l'autre avec un "G" ou un "P" selon que la société en question est grande ou petite.
En gros, j'ai : Société A G
Société B P
Société C G
Société D P
Société E P
Société F G
ETC
Pour trier ces sociétés par taille, pas de problème, il y a l'option trier dans excel.
J'en arrive à : Société A G
Société C G
Société F G
Société B P
Société D P
Société E P
ETC

A présent je voudrais que les grandes sociétés aillent se mettre dans une nouvelle feuille et que les petites sociétés fassent de même.

La clé du problème est que le nombre de sociétés n'est pas constant et je ne peux donc pas simplement ordonner à ma macro de faire un copier/coller de A1 à A3 pour les grandes sociétes et de A4 à A6 pour les petites sociétés.

Quelqu'un peut-il donc me dire comment faire une macro pour réaliser ceci? Je suppose qu'il faudrait une formule qui compterait le nombre de grandes et de petites sociétés au préalable et qui utiliserait ce comptage pour faire le copier/coller de façon à bien séparer les 2 types de sociétés, mais je ne sais pas quelle(s) formules utiliser.

Merci beaucoup pour votre aide

Pour ceux qui seraient d'accord de m'offrir encore plus de leur temps, je vous mets mon fichier excel en annexe pour plus de clarté. Vous constaterez qu'en plus de la catégorie G et P, il y a certaines sociétés sans catégorie qui ne doivent pas du tout être copiées.
De plus, il y a la dernière ligne qui n'est qu'un total et qui ne doit pas être copiée non plus.

Finalement, il me reste un petit souci : Ne sachant pas combien de petites et de grandes sociétés seront copiées, je me demande comment je pourrais faire pour que ce que je copie en feuille 3 et en feuille 4 s'imbrique bien dans la tableau qui s'y trouve déjà sans qu'il n'y ait de ligne en trop ou trop peu au dessus de la ligne du total.

Un tout tout grand merci pour votre aide
 

Pièces jointes

  • TABLEAU DES DETTES essai partie 2.xls
    84 KB · Affichages: 280

pat01200

XLDnaute Occasionnel
Re : Vba copier/coller selon conditions

Bonjour,
Le plus simple semble être de faire un filtre automatique et voici un bout de code que tu peux adapter à tes besoins :
Sub Tri()
Sheets("Tableau des dettes").Range("A1:D1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=3, Criteria1:="G"
Range("B2:B122").Copy
Sheets("Tableau grands créanciers").Range("à toi de voir où tu veux faire ton collage").PasteSpecial Paste:=xlPasteValues

Sheets("Tableau des dettes").Range("A1:D1").Select
Selection.AutoFilter Field:=3, Criteria1:="P"
Range("B2:B122").Copy
Sheets("Tableau petits créanciers").Range("à toi de voir où tu veux faire ton collage").PasteSpecial Paste:=xlPasteValues

Sheets("Tableau des dettes").Range("A1:D1").Select
Selection.AutoFilter
End Sub
 

vdh_xavier

XLDnaute Junior
Re : Vba copier/coller selon conditions

Je viens d'essayer votre solution et ça marche super bien. Merci beaucoup pat 01200!!

Maintenant je me permets de vous demander si vous voulez bien analyser aussi la 2ème partie de ma question.

Vu que je ne sais pas combien de petites et de grandes sociétés seront copiées, je me demande comment je pourrais faire pour que ce que je copie en feuille 3 et en feuille 4 s'imbrique bien dans la tableau qui s'y trouve déjà sans qu'il n'y ait de ligne en trop ou trop peu au dessus de la ligne du total.
En gros, j'aimerais que la macro fasse une insertion de lignes (le nombre exact de lignes qu'il faut) en feuille 3 et 4 avant d'y copier les données.

Un tout grand merci pour votre aide

Un tout grand merci de bien vouloir analyser mon problème
 

Discussions similaires

Réponses
28
Affichages
1 K
M
Réponses
9
Affichages
477
Maikales
M

Statistiques des forums

Discussions
312 292
Messages
2 086 856
Membres
103 401
dernier inscrit
sibfil