besoin d'une macro help help

T

tony

Guest
Bonsoir a tous

je recherche une macro qui compare les lignes
si la donnée de A1 (par exemple) = A2 alors recopier les données de la ligne 2 à la suite de la ligne 1 (meme nombre de cases)

je recherche desesperement le tuto pour cela

je vous remercie de l'aide que vous pourrez m'apporter

Tony de Bordeaux
 
T

tony

Guest
merci c cool

j'ai reflechi au truc en fait j ai un fichier excel ou des lignes sont repetees avec certains éléments communs et d'autres non

je souhaite (c plus simple) dire a excel
ex : si AAA | BBB | XXXX | YYYY
et AAA | BBB | ZZZZ | OOOO

ALORS AFFICHE MOI
AAA | BBB | XXXX | YYYY | ZZZZ | OOOO

tu vois je veux qu il me compare plusieurs cellules et si = alors recopie les elements

ou alors (c peut etre plus simple)
AAA | BBB | XXXXX|YYYY|AAA|BBB|ZZZZ|OOOO
ET APRES JE SUPRIME LES COLONNES EN DOUBLE A LA MAIN (ca c bon je sais faire ) lol

merci pour ton ou votre aide c sympa
 

pierrejean

XLDnaute Barbatruc
bonsoir tony

tes lignes sont-elles successives ou non ??
le nombre de cellules dans la ligne est-il constant???
lorsqu'ily a doublon les doublons sont-ils dans la meme colonne ou non ???

tout cela on le verrait sur un fichier comportant quelques exemples
 
T

tony

Guest
rebonsoir
je suis desole de ne pas avoir ete explicite
effectivement apres tri les lignes se suivent mais certains elements peuvent etre sur 2 lignes d'autre 3 etc.....

en revanche le nombre de cellules est le meme
je joins un morceau du fichier

j'ai besoin en fait qu'il compare les lignes
si excel trouve des elements similaires dans la colonne du nom et de la ville alors qu'il recopie les lignes similaires à la suite de la première style a partir de la colonne AG en allant à droite

j'espere que c clair

merci pour votre aide
 

Charly2

Nous a quittés en 2006
Repose en paix
Bonsoir tony et pierrejean,

Je joins un classeur qui devrait normalement correspondre à ce que tu attends.

Tiens-nous au courant...

[file name=Tony_RegroupementDonnees.zip size=9715]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Tony_RegroupementDonnees.zip[/file]

NOTA : Il n'y a pas de bouton, tu appuies sur Alt+F8 et tu lances la macro 'Regroupement'...

A+ ;)

Message édité par: Charly2, à: 27/02/2006 23:24
 

Pièces jointes

  • Tony_RegroupementDonnees.zip
    9.5 KB · Affichages: 19
T

tony

Guest
Charly je te remercie vraiment et sincerement

tu m'enlèves une groose epine du pied

c presque ca mais j'ai regarde la macro je vais pouvoir modifier legerement le truc pour que ce soit nikel

c vraiment super sympa

c genial de pouvoir tomber sur des tuto et des gens comme ca

merci
 
T

tony

Guest
bonsoir a tous

et en particullier a Charly

bon j'ai encore besoin de vous

j'ai recopie un macro la dessous, je souhaiterais la modifier pour qu'en fait si excel detecte en colonne A&B sur 2 ou plusieurs lignes les memes elements alors qu'il me recopie les lignes en doublon à la fin de la 1ere

c'est a dire........

si j'ai une ligne comme ca
AAA BBB CCC DDD EEE FFF
et une autre
AAA BBB GGG HHH III JJJ
et une autre (c un exemple)
AAA BBB XXX YYY ZZZ WWW

alors que les lignes 2 et 3 soient recopiees derriere la 1ere soit
AAA BBB CCC DDD EEE FFF AAA BBB GGG HHH III JJJ AAA BBB XXX YYY ZZZ WWW

voila si vous me trouvez comment modifier tout cela je vous embrasse (bon faut pas exagerer) mais quand meme cela m'enlevera une grosse epine du pied

merci
Option Explicit

Sub Regroupement()
'
Dim Ligne&
Dim Col%, ColFin%, ColAjout%
Dim Plage As Range
'
Application.ScreenUpdating = False
Ligne = 2 ' on commence à la ligne 2
'
' et on boucle tant que la cellule A(Ligne) n'est pas vide
Do Until IsEmpty(Cells(Ligne, 1))
'
' ColAjout contiendra la première colonne libre de la
' ligne précédent 'Ligne'
ColAjout = Cells(Ligne - 1, 256).End(xlToLeft).Column + 1
'
' Plage représentera les cellules de la ligne précédente
' de la colonne B à la dernière colonne contenant des données
Set Plage = Range(Cells(Ligne - 1, 2), Cells(Ligne - 1, ColAjout - 1))
'
' ColFin contient la dernière colonne de données sur la ligne
' actuelle
ColFin = Cells(Ligne, 256).End(xlToLeft).Column
'
' si le contenu de la colonne A de la ligne actuelle est égale
' à celui de la colonne A ligne précédente,
If Cells(Ligne, 1) = Cells(Ligne - 1, 1) Then
'
' alors on transfère les données de la ligne courante qui
' ne sont pas déjà dans la ligne précédente...
For Col = 2 To ColFin
If Plage.Find(what:=Cells(Ligne, Col), LookIn:=xlValues, _
lookat:=xlWhole) Is Nothing Then
Cells(Ligne - 1, ColAjout) = Cells(Ligne, Col)
ColAjout = ColAjout + 1
End If
Next
'
' et on supprime la ligne copiée
Cells(Ligne, 1).EntireRow.Delete
Else
' s'il n'y a pas d'égalité de contenu, alors on incrémente Ligne
Ligne = Ligne + 1
End If
Loop
Application.ScreenUpdating = True
End Sub
 

Charly2

Nous a quittés en 2006
Repose en paix
Bonjour tony et pierrejean, bonjour à toutes et à tous :)

Encore des soucis d'épines ? Décidément, tu marches sans regarder. Voyons voir si celle-ci va pouvoir être extraite avec ce cataplasme :)

[file name=Tony_RegroupementDonneesV2.zip size=10683]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Tony_RegroupementDonneesV2.zip[/file]

A+ ;)
 

Pièces jointes

  • Tony_RegroupementDonneesV2.zip
    10.4 KB · Affichages: 17
T

tony

Guest
charly merci merci et encore merci

il est 23h30 et je viens de tester mon fichier
avec ta macro

je n'ai qu'une chose a dire bravo

c exactement ce qu'il me fallait

je crois que j'ai plus qu'à me plonger dans la prog sous vba (j'en ai besoin !!!)

merci encore et bonne nuit si tu vois le post ce soir

tchao charly
a la prochaine
 

Discussions similaires

Réponses
12
Affichages
346

Statistiques des forums

Discussions
312 380
Messages
2 087 821
Membres
103 665
dernier inscrit
gjoanou