Bonjour, *LSteph*
Question subsidiaire, juste pour t'empecher de dormir :
;-)
Quid si plusieurs occurences dans la même colonne ?
exemple :
André André
André Benoit
Charles
--
Bien amicordialement,
P. BastardMerci pour cet éclaircissement,
un truc dans le genre si a:a est disponible pour se passer de
tableaux:
Sub aligntri()
Dim myn As Long, c As Range
Application.ScreenUpdating = False
ActiveSheet.Range("b2:B20").Sort key1:=[b2]
ActiveSheet.Range("c2:c20").Sort key1:=[c2]
myn = 2
For Each c In Range("b2:c20")
Cells(myn, 1) = c
myn = myn + 1
Next c
ActiveSheet.Range("a2:a41").Sort key1:=[a2]
For i = 40 To 2 Step -1
If Cells(i, 1) = Cells(i - 1, 1) Then _
Cells(i, 1).Delete xlUp
Next
[b2].Select
Do While Not IsEmpty(ActiveCell)
If ActiveCell.Text <> _
ActiveCell.Offset(0, -1).Text Then
ActiveCell.Insert xlDown
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
[c2].Select
Do While Not IsEmpty(ActiveCell)
If ActiveCell.Text <> _
ActiveCell.Offset(0, -2).Text Then
ActiveCell.Insert xlDown
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
[a:a].Clear
Application.ScreenUpdating = True
End Sub
'lSteph
"Patrick BASTARD" a écrit dans le
message de news: %23HEh%233a$Bonjour, *LSteph*
Ce que j'ai compris du problème de *Izmi* que j'ai pris comme cas
d'école, pour le plaisir
Données d'origine
a b
b c
d d
f e
g g
h
Données souhaitées
a
b
c
d d
e
f
g g
h
La macro que j'ai transmis commence bien, en testant les 2 valeur de
la première ligne concernée, et en décalant l'une ou l'autre des
colonnes vers le bas, mais :
1° - Problème de boucle pour continuer sur la igne suivante
2° - Problème de sélection pour supprimer les éventuelles cellules
adjacentes vides. (en commentaire dans le code).
Si tu as une idée, je suis preneur, et *Izmi* aussi, je suppose...
ps : merci pour les conseils [HS]. Actuellement : Helicidine et
Efferalgan...
--
Bien amicordialement,
P. BastardBonjour Patrick,
Izmi n'a pas encore réagi...
je ne sais ce que tu as pu comprendre de son souhait.
Il me semble que le but serait non un tri comme la commande le
prévoit mais d'aligner les valeurs ensemble mais je ne comprends
rien à ceci:cellules qui comprennent les mêmes données. Lorsqu'une cellule de
B de contenu identique dans A elle restera vide, et inversement.
si elles ne s'alignent que qd elles ont les mêmes données il ne peut
y en avoir une seule de vide.
pire: (..et inversement
j'ai testé ta macro, elle trie B:B en ajoutant des lignes et met
""(rien) à côté de André
Stéphane à coté de Benoit
Sébastien à coté de Bernard...
??
..
du coup quoique un peu présent même si guère talentueux,
:(.... je comprends encore moins le but
pourtant ton code en lui même je le comprends...
'lSteph
....HS[Pour la toux tisane peu dosée en (pousses de ronce , pétales
de coquelicot, somités de thym) + Miel]
"Patrick BASTARD" a écrit dans
le message de news: eJzDmXZ$Bonjour, *Izmi*
Un début de solution pour trier tes 2 colonnes, mais j'ai besoin
d'un coup de main des spécialistes (pb de boucle entre autres) pour
présenter une solution qui fonctionne.
Si les rares, mais néanmoins talentueux présents voulaient bien
jeter un coup d'oeil à :
http://cjoint.com/?mkpsSYtDxM
et corriger toutes mes fautes,
1° cela m'aiderait à progresser en VBA,
2° cela répondrait à la problématique de *Izmi*
3° l'analyse des critiques me permettrait d'employer utilement ce
samedi où je suis bloqué à la maison par une toux rebelle.
:-(
Bon WE à toutes et tous.
--
Bien amicordialement,
P. BastardBonjour tout le monde ;
C'est une question que j'avais déjà posée et pour laquelle je
n'avais pas eu de réponse suffisante. Je vais essayer de la
reposer. Peut être aurai-je la chance de tomber sur quelqu'un qui
connaisse la réponse.
J'ai deux colonnes A et B. La colonne B comprend certains éléments
de A, mais pas tous. Elle comprend aussi d'autres données.
Je souhaiterais trier les deux colonnes et mettre en vis à vis les
cellules qui comprennent les mêmes données. Lorsqu'une cellule de
B de contenu identique dans A elle restera vide, et inversement.
Merci d'avance.
Bonjour, *LSteph*
Question subsidiaire, juste pour t'empecher de dormir :
;-)
Quid si plusieurs occurences dans la même colonne ?
exemple :
André André
André Benoit
Charles
--
Bien amicordialement,
P. Bastard
Merci pour cet éclaircissement,
un truc dans le genre si a:a est disponible pour se passer de
tableaux:
Sub aligntri()
Dim myn As Long, c As Range
Application.ScreenUpdating = False
ActiveSheet.Range("b2:B20").Sort key1:=[b2]
ActiveSheet.Range("c2:c20").Sort key1:=[c2]
myn = 2
For Each c In Range("b2:c20")
Cells(myn, 1) = c
myn = myn + 1
Next c
ActiveSheet.Range("a2:a41").Sort key1:=[a2]
For i = 40 To 2 Step -1
If Cells(i, 1) = Cells(i - 1, 1) Then _
Cells(i, 1).Delete xlUp
Next
[b2].Select
Do While Not IsEmpty(ActiveCell)
If ActiveCell.Text <> _
ActiveCell.Offset(0, -1).Text Then
ActiveCell.Insert xlDown
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
[c2].Select
Do While Not IsEmpty(ActiveCell)
If ActiveCell.Text <> _
ActiveCell.Offset(0, -2).Text Then
ActiveCell.Insert xlDown
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
[a:a].Clear
Application.ScreenUpdating = True
End Sub
'lSteph
"Patrick BASTARD" <pasdespambastardp@freepasdespam.fr> a écrit dans le
message de news: %23HEh%233a$FHA.2784@tk2msftngp13.phx.gbl...
Bonjour, *LSteph*
Ce que j'ai compris du problème de *Izmi* que j'ai pris comme cas
d'école, pour le plaisir
Données d'origine
a b
b c
d d
f e
g g
h
Données souhaitées
a
b
c
d d
e
f
g g
h
La macro que j'ai transmis commence bien, en testant les 2 valeur de
la première ligne concernée, et en décalant l'une ou l'autre des
colonnes vers le bas, mais :
1° - Problème de boucle pour continuer sur la igne suivante
2° - Problème de sélection pour supprimer les éventuelles cellules
adjacentes vides. (en commentaire dans le code).
Si tu as une idée, je suis preneur, et *Izmi* aussi, je suppose...
ps : merci pour les conseils [HS]. Actuellement : Helicidine et
Efferalgan...
--
Bien amicordialement,
P. Bastard
Bonjour Patrick,
Izmi n'a pas encore réagi...
je ne sais ce que tu as pu comprendre de son souhait.
Il me semble que le but serait non un tri comme la commande le
prévoit mais d'aligner les valeurs ensemble mais je ne comprends
rien à ceci:
cellules qui comprennent les mêmes données. Lorsqu'une cellule de
B de contenu identique dans A elle restera vide, et inversement.
si elles ne s'alignent que qd elles ont les mêmes données il ne peut
y en avoir une seule de vide.
pire: (..et inversement
j'ai testé ta macro, elle trie B:B en ajoutant des lignes et met
""(rien) à côté de André
Stéphane à coté de Benoit
Sébastien à coté de Bernard...
??
..
du coup quoique un peu présent même si guère talentueux,
:(.... je comprends encore moins le but
pourtant ton code en lui même je le comprends...
'lSteph
....HS[Pour la toux tisane peu dosée en (pousses de ronce , pétales
de coquelicot, somités de thym) + Miel]
"Patrick BASTARD" <pasdespambastardp@freepasdespam.fr> a écrit dans
le message de news: eJzDmXZ$FHA.228@TK2MSFTNGP12.phx.gbl...
Bonjour, *Izmi*
Un début de solution pour trier tes 2 colonnes, mais j'ai besoin
d'un coup de main des spécialistes (pb de boucle entre autres) pour
présenter une solution qui fonctionne.
Si les rares, mais néanmoins talentueux présents voulaient bien
jeter un coup d'oeil à :
http://cjoint.com/?mkpsSYtDxM
et corriger toutes mes fautes,
1° cela m'aiderait à progresser en VBA,
2° cela répondrait à la problématique de *Izmi*
3° l'analyse des critiques me permettrait d'employer utilement ce
samedi où je suis bloqué à la maison par une toux rebelle.
:-(
Bon WE à toutes et tous.
--
Bien amicordialement,
P. Bastard
Bonjour tout le monde ;
C'est une question que j'avais déjà posée et pour laquelle je
n'avais pas eu de réponse suffisante. Je vais essayer de la
reposer. Peut être aurai-je la chance de tomber sur quelqu'un qui
connaisse la réponse.
J'ai deux colonnes A et B. La colonne B comprend certains éléments
de A, mais pas tous. Elle comprend aussi d'autres données.
Je souhaiterais trier les deux colonnes et mettre en vis à vis les
cellules qui comprennent les mêmes données. Lorsqu'une cellule de
B de contenu identique dans A elle restera vide, et inversement.
Merci d'avance.
Bonjour, *LSteph*
Question subsidiaire, juste pour t'empecher de dormir :
;-)
Quid si plusieurs occurences dans la même colonne ?
exemple :
André André
André Benoit
Charles
--
Bien amicordialement,
P. BastardMerci pour cet éclaircissement,
un truc dans le genre si a:a est disponible pour se passer de
tableaux:
Sub aligntri()
Dim myn As Long, c As Range
Application.ScreenUpdating = False
ActiveSheet.Range("b2:B20").Sort key1:=[b2]
ActiveSheet.Range("c2:c20").Sort key1:=[c2]
myn = 2
For Each c In Range("b2:c20")
Cells(myn, 1) = c
myn = myn + 1
Next c
ActiveSheet.Range("a2:a41").Sort key1:=[a2]
For i = 40 To 2 Step -1
If Cells(i, 1) = Cells(i - 1, 1) Then _
Cells(i, 1).Delete xlUp
Next
[b2].Select
Do While Not IsEmpty(ActiveCell)
If ActiveCell.Text <> _
ActiveCell.Offset(0, -1).Text Then
ActiveCell.Insert xlDown
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
[c2].Select
Do While Not IsEmpty(ActiveCell)
If ActiveCell.Text <> _
ActiveCell.Offset(0, -2).Text Then
ActiveCell.Insert xlDown
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
[a:a].Clear
Application.ScreenUpdating = True
End Sub
'lSteph
"Patrick BASTARD" a écrit dans le
message de news: %23HEh%233a$Bonjour, *LSteph*
Ce que j'ai compris du problème de *Izmi* que j'ai pris comme cas
d'école, pour le plaisir
Données d'origine
a b
b c
d d
f e
g g
h
Données souhaitées
a
b
c
d d
e
f
g g
h
La macro que j'ai transmis commence bien, en testant les 2 valeur de
la première ligne concernée, et en décalant l'une ou l'autre des
colonnes vers le bas, mais :
1° - Problème de boucle pour continuer sur la igne suivante
2° - Problème de sélection pour supprimer les éventuelles cellules
adjacentes vides. (en commentaire dans le code).
Si tu as une idée, je suis preneur, et *Izmi* aussi, je suppose...
ps : merci pour les conseils [HS]. Actuellement : Helicidine et
Efferalgan...
--
Bien amicordialement,
P. BastardBonjour Patrick,
Izmi n'a pas encore réagi...
je ne sais ce que tu as pu comprendre de son souhait.
Il me semble que le but serait non un tri comme la commande le
prévoit mais d'aligner les valeurs ensemble mais je ne comprends
rien à ceci:cellules qui comprennent les mêmes données. Lorsqu'une cellule de
B de contenu identique dans A elle restera vide, et inversement.
si elles ne s'alignent que qd elles ont les mêmes données il ne peut
y en avoir une seule de vide.
pire: (..et inversement
j'ai testé ta macro, elle trie B:B en ajoutant des lignes et met
""(rien) à côté de André
Stéphane à coté de Benoit
Sébastien à coté de Bernard...
??
..
du coup quoique un peu présent même si guère talentueux,
:(.... je comprends encore moins le but
pourtant ton code en lui même je le comprends...
'lSteph
....HS[Pour la toux tisane peu dosée en (pousses de ronce , pétales
de coquelicot, somités de thym) + Miel]
"Patrick BASTARD" a écrit dans
le message de news: eJzDmXZ$Bonjour, *Izmi*
Un début de solution pour trier tes 2 colonnes, mais j'ai besoin
d'un coup de main des spécialistes (pb de boucle entre autres) pour
présenter une solution qui fonctionne.
Si les rares, mais néanmoins talentueux présents voulaient bien
jeter un coup d'oeil à :
http://cjoint.com/?mkpsSYtDxM
et corriger toutes mes fautes,
1° cela m'aiderait à progresser en VBA,
2° cela répondrait à la problématique de *Izmi*
3° l'analyse des critiques me permettrait d'employer utilement ce
samedi où je suis bloqué à la maison par une toux rebelle.
:-(
Bon WE à toutes et tous.
--
Bien amicordialement,
P. BastardBonjour tout le monde ;
C'est une question que j'avais déjà posée et pour laquelle je
n'avais pas eu de réponse suffisante. Je vais essayer de la
reposer. Peut être aurai-je la chance de tomber sur quelqu'un qui
connaisse la réponse.
J'ai deux colonnes A et B. La colonne B comprend certains éléments
de A, mais pas tous. Elle comprend aussi d'autres données.
Je souhaiterais trier les deux colonnes et mettre en vis à vis les
cellules qui comprennent les mêmes données. Lorsqu'une cellule de
B de contenu identique dans A elle restera vide, et inversement.
Merci d'avance.
Re,
'donc en cas de doublons en b ou c
'***
Sub aligntri2()
Dim myn As Long, c As Range, myLast As Long
Application.ScreenUpdating = False
myLast = Application.WorksheetFunction.Max( _
[b65536].End(xlUp).Row, [c65536].End(xlUp).Row)
If myLast > 65536 / 2 Then
MsgBox "trop de lignes"
Exit Sub
End If
ActiveSheet.Range("b2:B" & myLast).Sort _
key1:=[b2]
ActiveSheet.Range("c2:c" & myLast).Sort _
key1:=[c2]
myn = 2
For Each c In Range("b2:c" & myLast)
Cells(myn, 1) = c
myn = myn + 1
Next c
ActiveSheet.Range("a2:a" & myLast * 2).Sort _
key1:=[a2]
For j = 1 To 3
For i = myLast * 2 To 2 Step -1
If Not IsEmpty(Cells(i, j)) And _
UCase(Cells(i, j)) = UCase(Cells(i - 1, j)) Then _
Cells(i, j).Delete xlUp
Next i
Next j
monalign ([b2])
monalign ([c2])
[a:a].Clear
Application.ScreenUpdating = True
End Sub
Private Sub monalign(myr As Range)
myr.Select
Do While Not IsEmpty(ActiveCell)
If ActiveCell.Text <> _
Cells(ActiveCell.Row, 1).Text Then
ActiveCell.Insert xlDown
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
End Sub
'***
'lSteph
"Izmi" a écrit dans le message de news:
Bonjour tout le monde ;
C'est une question que j'avais déjà posée et pour laquelle je
n'avais pas eu de réponse suffisante. Je vais essayer de la reposer.
Peut être aurai-je la chance de tomber sur quelqu'un qui connaisse la
réponse.
J'ai deux colonnes A et B. La colonne B comprend certains éléments de
A, mais pas tous. Elle comprend aussi d'autres données.
Je souhaiterais trier les deux colonnes et mettre en vis à vis les
cellules qui comprennent les mêmes données. Lorsqu'une cellule de B
de contenu identique dans A elle restera vide, et inversement.
Merci d'avance.
Re,
'donc en cas de doublons en b ou c
'***
Sub aligntri2()
Dim myn As Long, c As Range, myLast As Long
Application.ScreenUpdating = False
myLast = Application.WorksheetFunction.Max( _
[b65536].End(xlUp).Row, [c65536].End(xlUp).Row)
If myLast > 65536 / 2 Then
MsgBox "trop de lignes"
Exit Sub
End If
ActiveSheet.Range("b2:B" & myLast).Sort _
key1:=[b2]
ActiveSheet.Range("c2:c" & myLast).Sort _
key1:=[c2]
myn = 2
For Each c In Range("b2:c" & myLast)
Cells(myn, 1) = c
myn = myn + 1
Next c
ActiveSheet.Range("a2:a" & myLast * 2).Sort _
key1:=[a2]
For j = 1 To 3
For i = myLast * 2 To 2 Step -1
If Not IsEmpty(Cells(i, j)) And _
UCase(Cells(i, j)) = UCase(Cells(i - 1, j)) Then _
Cells(i, j).Delete xlUp
Next i
Next j
monalign ([b2])
monalign ([c2])
[a:a].Clear
Application.ScreenUpdating = True
End Sub
Private Sub monalign(myr As Range)
myr.Select
Do While Not IsEmpty(ActiveCell)
If ActiveCell.Text <> _
Cells(ActiveCell.Row, 1).Text Then
ActiveCell.Insert xlDown
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
End Sub
'***
'lSteph
"Izmi" <hmad54@yahoo.com> a écrit dans le message de news:
1134158734.026332.131720@g44g2000cwa.googlegroups.com...
Bonjour tout le monde ;
C'est une question que j'avais déjà posée et pour laquelle je
n'avais pas eu de réponse suffisante. Je vais essayer de la reposer.
Peut être aurai-je la chance de tomber sur quelqu'un qui connaisse la
réponse.
J'ai deux colonnes A et B. La colonne B comprend certains éléments de
A, mais pas tous. Elle comprend aussi d'autres données.
Je souhaiterais trier les deux colonnes et mettre en vis à vis les
cellules qui comprennent les mêmes données. Lorsqu'une cellule de B
de contenu identique dans A elle restera vide, et inversement.
Merci d'avance.
Re,
'donc en cas de doublons en b ou c
'***
Sub aligntri2()
Dim myn As Long, c As Range, myLast As Long
Application.ScreenUpdating = False
myLast = Application.WorksheetFunction.Max( _
[b65536].End(xlUp).Row, [c65536].End(xlUp).Row)
If myLast > 65536 / 2 Then
MsgBox "trop de lignes"
Exit Sub
End If
ActiveSheet.Range("b2:B" & myLast).Sort _
key1:=[b2]
ActiveSheet.Range("c2:c" & myLast).Sort _
key1:=[c2]
myn = 2
For Each c In Range("b2:c" & myLast)
Cells(myn, 1) = c
myn = myn + 1
Next c
ActiveSheet.Range("a2:a" & myLast * 2).Sort _
key1:=[a2]
For j = 1 To 3
For i = myLast * 2 To 2 Step -1
If Not IsEmpty(Cells(i, j)) And _
UCase(Cells(i, j)) = UCase(Cells(i - 1, j)) Then _
Cells(i, j).Delete xlUp
Next i
Next j
monalign ([b2])
monalign ([c2])
[a:a].Clear
Application.ScreenUpdating = True
End Sub
Private Sub monalign(myr As Range)
myr.Select
Do While Not IsEmpty(ActiveCell)
If ActiveCell.Text <> _
Cells(ActiveCell.Row, 1).Text Then
ActiveCell.Insert xlDown
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
End Sub
'***
'lSteph
"Izmi" a écrit dans le message de news:
Bonjour tout le monde ;
C'est une question que j'avais déjà posée et pour laquelle je
n'avais pas eu de réponse suffisante. Je vais essayer de la reposer.
Peut être aurai-je la chance de tomber sur quelqu'un qui connaisse la
réponse.
J'ai deux colonnes A et B. La colonne B comprend certains éléments de
A, mais pas tous. Elle comprend aussi d'autres données.
Je souhaiterais trier les deux colonnes et mettre en vis à vis les
cellules qui comprennent les mêmes données. Lorsqu'une cellule de B
de contenu identique dans A elle restera vide, et inversement.
Merci d'avance.
Bonjour, *LSteph*
[mode envieux on]
Pfff... Normal, il ne dort jamais...
[mode envieux off]
[mode sincère on]
Chapeau, Stéphane.
Comme il est simple d'insérer (manuellement) une cellule à l'endroit qui
va bien, mais difficile de formaliser le cheminement (ton code).
C'était la pensée du jour...
--
Bien amicordialement,
P. BastardRe,
'donc en cas de doublons en b ou c
'***
Sub aligntri2()
Dim myn As Long, c As Range, myLast As Long
Application.ScreenUpdating = False
myLast = Application.WorksheetFunction.Max( _
[b65536].End(xlUp).Row, [c65536].End(xlUp).Row)
If myLast > 65536 / 2 Then
MsgBox "trop de lignes"
Exit Sub
End If
ActiveSheet.Range("b2:B" & myLast).Sort _
key1:=[b2]
ActiveSheet.Range("c2:c" & myLast).Sort _
key1:=[c2]
myn = 2
For Each c In Range("b2:c" & myLast)
Cells(myn, 1) = c
myn = myn + 1
Next c
ActiveSheet.Range("a2:a" & myLast * 2).Sort _
key1:=[a2]
For j = 1 To 3
For i = myLast * 2 To 2 Step -1
If Not IsEmpty(Cells(i, j)) And _
UCase(Cells(i, j)) = UCase(Cells(i - 1, j)) Then _
Cells(i, j).Delete xlUp
Next i
Next j
monalign ([b2])
monalign ([c2])
[a:a].Clear
Application.ScreenUpdating = True
End Sub
Private Sub monalign(myr As Range)
myr.Select
Do While Not IsEmpty(ActiveCell)
If ActiveCell.Text <> _
Cells(ActiveCell.Row, 1).Text Then
ActiveCell.Insert xlDown
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
End Sub
'***
'lSteph
"Izmi" a écrit dans le message de news:
Bonjour tout le monde ;
C'est une question que j'avais déjà posée et pour laquelle je
n'avais pas eu de réponse suffisante. Je vais essayer de la reposer.
Peut être aurai-je la chance de tomber sur quelqu'un qui connaisse la
réponse.
J'ai deux colonnes A et B. La colonne B comprend certains éléments de
A, mais pas tous. Elle comprend aussi d'autres données.
Je souhaiterais trier les deux colonnes et mettre en vis à vis les
cellules qui comprennent les mêmes données. Lorsqu'une cellule de B
de contenu identique dans A elle restera vide, et inversement.
Merci d'avance.
Bonjour, *LSteph*
[mode envieux on]
Pfff... Normal, il ne dort jamais...
[mode envieux off]
[mode sincère on]
Chapeau, Stéphane.
Comme il est simple d'insérer (manuellement) une cellule à l'endroit qui
va bien, mais difficile de formaliser le cheminement (ton code).
C'était la pensée du jour...
--
Bien amicordialement,
P. Bastard
Re,
'donc en cas de doublons en b ou c
'***
Sub aligntri2()
Dim myn As Long, c As Range, myLast As Long
Application.ScreenUpdating = False
myLast = Application.WorksheetFunction.Max( _
[b65536].End(xlUp).Row, [c65536].End(xlUp).Row)
If myLast > 65536 / 2 Then
MsgBox "trop de lignes"
Exit Sub
End If
ActiveSheet.Range("b2:B" & myLast).Sort _
key1:=[b2]
ActiveSheet.Range("c2:c" & myLast).Sort _
key1:=[c2]
myn = 2
For Each c In Range("b2:c" & myLast)
Cells(myn, 1) = c
myn = myn + 1
Next c
ActiveSheet.Range("a2:a" & myLast * 2).Sort _
key1:=[a2]
For j = 1 To 3
For i = myLast * 2 To 2 Step -1
If Not IsEmpty(Cells(i, j)) And _
UCase(Cells(i, j)) = UCase(Cells(i - 1, j)) Then _
Cells(i, j).Delete xlUp
Next i
Next j
monalign ([b2])
monalign ([c2])
[a:a].Clear
Application.ScreenUpdating = True
End Sub
Private Sub monalign(myr As Range)
myr.Select
Do While Not IsEmpty(ActiveCell)
If ActiveCell.Text <> _
Cells(ActiveCell.Row, 1).Text Then
ActiveCell.Insert xlDown
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
End Sub
'***
'lSteph
"Izmi" <hmad54@yahoo.com> a écrit dans le message de news:
1134158734.026332.131720@g44g2000cwa.googlegroups.com...
Bonjour tout le monde ;
C'est une question que j'avais déjà posée et pour laquelle je
n'avais pas eu de réponse suffisante. Je vais essayer de la reposer.
Peut être aurai-je la chance de tomber sur quelqu'un qui connaisse la
réponse.
J'ai deux colonnes A et B. La colonne B comprend certains éléments de
A, mais pas tous. Elle comprend aussi d'autres données.
Je souhaiterais trier les deux colonnes et mettre en vis à vis les
cellules qui comprennent les mêmes données. Lorsqu'une cellule de B
de contenu identique dans A elle restera vide, et inversement.
Merci d'avance.
Bonjour, *LSteph*
[mode envieux on]
Pfff... Normal, il ne dort jamais...
[mode envieux off]
[mode sincère on]
Chapeau, Stéphane.
Comme il est simple d'insérer (manuellement) une cellule à l'endroit qui
va bien, mais difficile de formaliser le cheminement (ton code).
C'était la pensée du jour...
--
Bien amicordialement,
P. BastardRe,
'donc en cas de doublons en b ou c
'***
Sub aligntri2()
Dim myn As Long, c As Range, myLast As Long
Application.ScreenUpdating = False
myLast = Application.WorksheetFunction.Max( _
[b65536].End(xlUp).Row, [c65536].End(xlUp).Row)
If myLast > 65536 / 2 Then
MsgBox "trop de lignes"
Exit Sub
End If
ActiveSheet.Range("b2:B" & myLast).Sort _
key1:=[b2]
ActiveSheet.Range("c2:c" & myLast).Sort _
key1:=[c2]
myn = 2
For Each c In Range("b2:c" & myLast)
Cells(myn, 1) = c
myn = myn + 1
Next c
ActiveSheet.Range("a2:a" & myLast * 2).Sort _
key1:=[a2]
For j = 1 To 3
For i = myLast * 2 To 2 Step -1
If Not IsEmpty(Cells(i, j)) And _
UCase(Cells(i, j)) = UCase(Cells(i - 1, j)) Then _
Cells(i, j).Delete xlUp
Next i
Next j
monalign ([b2])
monalign ([c2])
[a:a].Clear
Application.ScreenUpdating = True
End Sub
Private Sub monalign(myr As Range)
myr.Select
Do While Not IsEmpty(ActiveCell)
If ActiveCell.Text <> _
Cells(ActiveCell.Row, 1).Text Then
ActiveCell.Insert xlDown
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
End Sub
'***
'lSteph
"Izmi" a écrit dans le message de news:
Bonjour tout le monde ;
C'est une question que j'avais déjà posée et pour laquelle je
n'avais pas eu de réponse suffisante. Je vais essayer de la reposer.
Peut être aurai-je la chance de tomber sur quelqu'un qui connaisse la
réponse.
J'ai deux colonnes A et B. La colonne B comprend certains éléments de
A, mais pas tous. Elle comprend aussi d'autres données.
Je souhaiterais trier les deux colonnes et mettre en vis à vis les
cellules qui comprennent les mêmes données. Lorsqu'une cellule de B
de contenu identique dans A elle restera vide, et inversement.
Merci d'avance.