• Initiateur de la discussion Initiateur de la discussion J-Charles
  • 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 !

J-Charles

XLDnaute Occasionnel
Bonjour à tous!
Je croyais avoir quelques petites notions sur les macros, mais je m'apperçois que je suis loin du compte. C'est donc pour cette raison que je m'adresse à vous tous, passionés férus de VBA.
Sous Excel 2002, j'ai créé un tableau (environ 2000 lignes et 10 colonnes) auquel j'ai appliqué un filtre automatique. Le resultat obtenu fait apparaitre environs 500 lignes. Dans la colonne A j'ai des références (nombre de 4 chiffres) que je ne peux pas trier par ordre croissant ou décroissant. Je désire à l'aide d'une macro encadrer la ou l'ensemble des lignes (jusqu'à la colonne J) ayant le même numéro de référence.
Exemple colonne A:
2255
1322
1322
4872
4872
Dans ce cas je dois obtenir une bordure au dessus et au dessous de 2255, une autre au dessous du 2ème 1322 et du 2ème 4872.
Le problème est qu'entre ces références j'ai parfois des lignes cachées (du fait de l'utilisation du filtre).
C'est ma toute première requête et j'espère avoir été suffisemment clair.
Je vous remercie d'avance
 
Re : Filtre automatique

Bonsoir SKOOBI🙂
Ok pour envoyer le fichier, mais je vais devoir le modifier car il comporte des renseignements confidentiels de l'assurance maladie. Je vais également réduire le nombre de lignes.
J'envoie ça ce week-end.
Dans tous les cas, je vous remercie de vous être penché sur le problème à une heure aussi tardive.
 
Re : Filtre automatique

Bonjour J-Charles, Skoobi 🙂,
Sans vouloir chercher midi à 14h, tu dis
que je ne peux pas trier par ordre croissant ou décroissant
pourquoi ? Est-ce pour laisser (comme je le pense) tes lignes dans l'ordre de départ ? Dans ce cas, je passerais par :
1) Suppression du filtre automatique
2) Ajout d'un compteur après la dernière colonne utilisée
3) Tri de ta feuille basé sur ta colonne référence
4) Vérification pour chaque ligne si la réf de la ligne suivante est identique et enrichissement si c'est le cas
5) Tri de ta feuille basé sur la colonne compteur créée en 2)
6) Suppression de cette même colonne
7) Rétablissement du filtre automatique
A te lire 😎
 
Re : Filtre automatique

Bonsoir à tous
Sur les conseils de SKOOBI, je fais parvenir un tout petit bout du fichier car 48 K ce n'est pas bien lourd même compressé.
Pour JNP, malheureusement sa méthode n'a pas donné les résultats escomptés mais c'est sympa de s'être penché sur mon problème.
En fait, la macro recherché devrait traduire les actions suivantes:
1) Je me place en A13
2)Tant que la cellule active n'est pas vide:
a)Tant que la ligne de la cellule active n'est pas masquée:
rechercher la cellule suivante dans la colonne A qui elle aussi n'est
pas masquée, si c'est le cas les comparer et si elles sont différentes
faire une bordure entre les deux.
b)Passer à la cellule non masquée suivante et rechercher ...
Je rêve sûrement un peu mais pour certains d'entre vous ce sera un jeu d'enfants.
Quoiqu'il en soit je remercie tous ceux qui auront pris de leur temps pour me dépanner.
 

Pièces jointes

Re : Filtre automatique

Bonjour J-Charles 🙂,
Effectivement, je n'avais pas bien suivi ton problème. En réalité, je croyais que tu chassais les doublons et non que tu souhaitais séparer des ensembles de lignes.
Je n'ai malheureusement pas le temps de me pencher complètement sur ton fichier, mais une solution possible serait:
Déclarer 1 compteur
Entrer la valeur de filtrage par une InputBox
Balayer toutes les lignes en vérifiant dans la bonne colonne la valeur de filtrage
Quand tu en trouve une affecter la valeur de la ligne au compteur
A la suivante tester si la valeur en colonne A est la même que celle de la ligne compteur, si oui, réaffecter le compteur avec la valeur de la nouvelle ligne, sinon, mettre ta séparation et après avoir affecté la valeur de la ligne au compteur, continuer la série de test
Arrêter quand la ligne est vide
En espérant que ça t'éclaire 😎
 
Re : Filtre automatique

Bonjour J-Charles, JNP 🙂,

Voici un code d'un de mes fichiers que j'ai adapté au tien:

Code:
Sub SéparerArchives()
Application.EnableEvents = False
archive = ""
For Each num In Range([A13], [A13].End(xlDown)).SpecialCells(xlCellTypeVisible)
   If num.Value <> archive Then
      With num.Resize(1, 9).Borders(xlEdgeTop)
         .LineStyle = xlContinuous
         .Weight = xlMedium
         .ColorIndex = 3
      End With
   Else
      With num.Resize(1, 9).Borders(xlEdgeTop)
         .LineStyle = xlContinuous
         .Weight = xlHairline
         .ColorIndex = xlAutomatic
      End With
      With num.Resize(1, 9).Borders(xlEdgeBottom)
         .LineStyle = xlContinuous
         .Weight = xlHairline
         .ColorIndex = xlAutomatic
      End With
   End If
   archive = num.Value
Next num
Application.EnableEvents = True
End Sub
 
Re : Filtre automatique

Je remercie trés sincèrement SKOOBI pour son aide. Ce n'est pas tout d'avoir une macro qui fonctionne, il va falloir que je la décortique si je veux progresser un peu.
Je ne manquerai pas de revenir vous voir car j'ai tout un stock de questions que je n'ai jamais pu hélucider.
Alors encore un grand merci et à bientôt
 
- 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

Discussions similaires

Réponses
4
Affichages
81
Réponses
12
Affichages
769
Retour