Excel insertion ligne vide selon critères
Résolu
Alendo
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
Alendo Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Alendo Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je cherche un code pour macro excel qui me permettrait de séparer des lignes selon des critères.
Je m'explique :
Je fais des statistiques pour les commerciaux par départements. J'ai une feuille excel par commercial et dans chaque feuille, j'ai la liste de ses clients (COLONNE A) classés par départements (COLONNE B).
Je commence à me débrouiller dans les codes simples, mais pas suffisament, et je voudrais savoir si un balèze en programmation pouvait me pondre un petit code me permettant d'insérer une ligne entre chaque département.
En gros, j'ai ceci :
COLONNE A_________COLONNE B
PHARMACIE aaaaaaaa 04100
PHARMACIE bbbbbbbb 04130
PHARMACIE cccccccccc 06000
PHARMACIE dddddddd 06000
PHARMACIE eeeeeeee 06300
PHARMACIE ffffffffffff 06300
PHARMACIE gggggggg 06450
PHARMACIE hhhhhhhh 07100
PHARMACIE mmmmmm 26540
PHARMACIE zzzzzzzzz 26700
et je voudrais ceci :
COLONNE A_________COLONNE B
PHARMACIE aaaaaaaa 04100
PHARMACIE bbbbbbbb 04130
PHARMACIE cccccccccc 06000
PHARMACIE dddddddd 06000
PHARMACIE eeeeeeee 06300
PHARMACIE ffffffffffff 06300
PHARMACIE gggggggg 06450
PHARMACIE hhhhhhhh 07100
PHARMACIE mmmmmm 26540
PHARMACIE zzzzzzzzz 26700
Ce n'est qu'un exemple. Si je n'avais que cette dizaine de lignes je ne vous demanderais rien. En tout j'ai une cinquantaine de feuilles Excel d'environ 500 lignes chacune à traiter à chaque fin de mois et actuellement, je me tape les insertions de lignes à la main. Un petit code de derrière les fagots me ferait gagner de précieuses heures.
Voilà.
Merci d'avance à ceux qui pourront m'aider, ainsi qu'à ceux qui ne pourront qu'essayer.
al
Je cherche un code pour macro excel qui me permettrait de séparer des lignes selon des critères.
Je m'explique :
Je fais des statistiques pour les commerciaux par départements. J'ai une feuille excel par commercial et dans chaque feuille, j'ai la liste de ses clients (COLONNE A) classés par départements (COLONNE B).
Je commence à me débrouiller dans les codes simples, mais pas suffisament, et je voudrais savoir si un balèze en programmation pouvait me pondre un petit code me permettant d'insérer une ligne entre chaque département.
En gros, j'ai ceci :
COLONNE A_________COLONNE B
PHARMACIE aaaaaaaa 04100
PHARMACIE bbbbbbbb 04130
PHARMACIE cccccccccc 06000
PHARMACIE dddddddd 06000
PHARMACIE eeeeeeee 06300
PHARMACIE ffffffffffff 06300
PHARMACIE gggggggg 06450
PHARMACIE hhhhhhhh 07100
PHARMACIE mmmmmm 26540
PHARMACIE zzzzzzzzz 26700
et je voudrais ceci :
COLONNE A_________COLONNE B
PHARMACIE aaaaaaaa 04100
PHARMACIE bbbbbbbb 04130
PHARMACIE cccccccccc 06000
PHARMACIE dddddddd 06000
PHARMACIE eeeeeeee 06300
PHARMACIE ffffffffffff 06300
PHARMACIE gggggggg 06450
PHARMACIE hhhhhhhh 07100
PHARMACIE mmmmmm 26540
PHARMACIE zzzzzzzzz 26700
Ce n'est qu'un exemple. Si je n'avais que cette dizaine de lignes je ne vous demanderais rien. En tout j'ai une cinquantaine de feuilles Excel d'environ 500 lignes chacune à traiter à chaque fin de mois et actuellement, je me tape les insertions de lignes à la main. Un petit code de derrière les fagots me ferait gagner de précieuses heures.
Voilà.
Merci d'avance à ceux qui pourront m'aider, ainsi qu'à ceux qui ne pourront qu'essayer.
al
A voir également:
- Excel insertion ligne vide selon critères
- Aller à la ligne excel - Guide
- Liste déroulante excel - Guide
- Partager photos en ligne - Guide
- Word et excel gratuit - Guide
- Supprimer page word vide - Guide
4 réponses
salut,
essaye avec un truc comme çà :
For i = 1 To 5
j = i + 1
Range("B" & i).Select
departement1 = ActiveCell.Value
Range("B" & j).Select
departement2 = ActiveCell.Value
If departement1 <> departement2 Then
Rows(j & ":" & j).Select
Selection.Insert Shift:=xlDown
i = i + 1
End If
Next
Je ne garantis pas que ce soit la meilleur solution, ni même que çà marche, mais j'espère que çà t'aidera
essaye avec un truc comme çà :
For i = 1 To 5
j = i + 1
Range("B" & i).Select
departement1 = ActiveCell.Value
Range("B" & j).Select
departement2 = ActiveCell.Value
If departement1 <> departement2 Then
Rows(j & ":" & j).Select
Selection.Insert Shift:=xlDown
i = i + 1
End If
Next
Je ne garantis pas que ce soit la meilleur solution, ni même que çà marche, mais j'espère que çà t'aidera
C'est pas mal, thierry, c'est super pas mal.
Bon, j'ai fait quelques modifs (For i = 1 To 1000, par exemple) mais y'a un truc qui va pas. Ce code sépare toutes les valeurs différentes des cellules de la colonne. Par exemple, il sépare les 06000 des 06300. Je voudrais en fait qu'il sépare tout ce qui commence par 26 de tout ce qui commence par 27, par exemple.
Sinon c'est nickel
al
Bon, j'ai fait quelques modifs (For i = 1 To 1000, par exemple) mais y'a un truc qui va pas. Ce code sépare toutes les valeurs différentes des cellules de la colonne. Par exemple, il sépare les 06000 des 06300. Je voudrais en fait qu'il sépare tout ce qui commence par 26 de tout ce qui commence par 27, par exemple.
Sinon c'est nickel
al
Bonjour,
Je pense qu'au lieu de
If departement1 <> departement2
Il faut que tu fasses
If Left(departement1;2) <> Left(departement2;2)
Ca devrait faire pile poil ce que tu veux
Je pense qu'au lieu de
If departement1 <> departement2
Il faut que tu fasses
If Left(departement1;2) <> Left(departement2;2)
Ca devrait faire pile poil ce que tu veux
Alors là bravo les gars, c'est effectivement pile poil ce qu'il me fallait. Un grand merci à vous deux. Vous êtes des chefs.
Euh...je dis ça mais si ça se trouve vous êtes des d'jeuns...Alors z'y va les keums, z'êtes des teubés.
Je connaissais pas ce code "departement". Ca va bien me servir.
Encore merci.
al
ps : fallait mettre des virgules à la place des point-virgules ;-)
Euh...je dis ça mais si ça se trouve vous êtes des d'jeuns...Alors z'y va les keums, z'êtes des teubés.
Je connaissais pas ce code "departement". Ca va bien me servir.
Encore merci.
al
ps : fallait mettre des virgules à la place des point-virgules ;-)