Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

ComparerChaqueLigneD'unTableau

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

M

Moa

Guest
Salut et bonsoir à tous !

J'ai un tableau (assez variable), qui fait environ 300 lignes sur 5 colonnes.

Le début de mon tableau est en B10.

Et voilà ce que je cherche à faire avec une macro :

Je voudrais comparer chaque ligne de mon tableau avec la première ligne, (soit ligne 10), et effacer toutes les lignes qui sont identiques à une différence près.

Exemple :

Avant macro :

Ligne 1 : 5;7;8;8;9
Ligne 2 : 5;7;8;8;6
Ligne 3 : 5;7;8;9;5
Ligne 4 : 7;7;8;8;9
Ligne 5 : 6;7;8;8;8

Après macro :

Ligne 1 : 5;7;8;8;9
Ligne 3 : 5;7;8;9;5
Ligne 5 : 6;7;8;8;8

Nota : l'ordre est important, ainsi 5;7;8;8;9 n'est pas égal à 7;5;8;8;9

Puis ensuite, que la macro fasse la même chose avec la ligne suivante (cad Ligne 11) et ainsi de suite jusqu'en bas du tableau.

Et en fait j'ai déjà fait une macro, mais elle est très lourde et plante pratiquement tout le temps.

En fait ma macro n'est qu'une addition de copier/coller/tri additionné à des formules qui donnent vrai ou faux, puis je delete les lignes étant fausses.

De la bricole, quoi..mais rien de sérieux et surtout c'est très long.

Aussi si vous aviez une idée je serais vraiment preneur !

Mille mercis à vous tous et bonne fin de nuit !

@ +

Moa
 
oups, Moa, je me demande finalement si j'ai bien compris ton problème. Moi je compare toutes les lignes avec la première ligne et je m'arrête là, mais je crains que tu veuilles comparer chaque ligne avec toutes les autres, c'est ça ? Dans ce cas, il faut que je revoie ma copie...
 
Salut à tous, Salut Ti !

Merci beaucoup de t'être penché sur mon problème

Je viens de tester et si cela fonctionne assez bien, je dirais que cela fonctionne TROP bien.

En effet, si il faut bien nettoyer les lignes ayant une différence, il faut garder les lignes ayant plus d'une différence.

Et je viens de faire des tests avec mes vraies données et la macro m'en vire beaucoup trop.

Je viens d'essayer de modifier ta macro, mais elle est trop costaud pour moi.

J'y retourne...!

Et encore merci beaucoup

@ +

Moa
 
Re Ti !

Voilà la macro que j'avais faite :

Sub Macro1()

' Macro enregistrée le 16/08/2003 par Moa

Dim LigneCourante As Range
Dim LigneSuivante As Range

Set LigneCourante = ActiveSheet.Range("B10:F100")
Do While Not IsEmpty(LigneCourante) = True
On Error Resume Next
Set LigneSuivante = LigneCourante.Offset(1, 0)
LigneCourante.Select
Selection.Copy

Range("B3").Select
ActiveSheet.Paste

Call DeleteFaux
Set LigneCourante = LigneSuivante
Loop

End Sub

Petite explication :



En fait à côté, de chaque combinaison, j'ai une formule qui me compare cette ligne avec la ligne B3 à F3 et qui me donne le nombre de différence.

Donc, Je prend la première ligne de mon tableau, que je colle en B3:N3

Puis j'ai une autre formule qui m'inscrit "Faux" en colonne A, toujours à côté de chaque combinaison, si il y a 1 seule différence.

Puis ma macro DeleteFaux entre en jeu.

Et je passe à la ligne suivante.

Que de manip inutiles...n'est ce pas ?

Merci à toi Ti

@ +

Moa
 
est-ce que tu pourrais m'envoyer un exemple de ton tableau pour que je puisse travailler sur de "vraies" valeurs ? Au passage, indique ce qu'il y a avant, et ce qui doit rester après.
 
OK d'accord, ça ne pouvait pas marcher comme ça, moi je pensais que chaque cellule comportait la chaine "5;7;8;9;9" etc. Comme quoi un petit fichier évite bien des contre-temps inutiles...
Patiente un peu pour la suite !
 
Salut Ti !

Je viens de faire plusieurs tests et apparement cela fonctionne bien !

J'ai modifié cette partie : Identique = NbDif <= [C2], afin d'avoir le choix des écarts de différences et apparement ça marche aussi.

Je ferai les tests sur des bases de données supérieurs à 300 pour voir le temps que cela prendra.

Honnêtement, je n'aurais pa pu écrire une macro aussi complexe !

Je te remercie encore mille fois !

@ +

Moa
 
- 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

Réponses
2
Affichages
499
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…