Hello mohkam,
Donc tu peux utiliser la petite macro ci-dessous. Tu la copies dans un module VBA de ton classeur, et tu l'exécutes. Elle mettra en gras et en rouge les n° de téléphone en double.
La macro te demandera dans quelle colonne se trouvent tes n° de téléphone. Il suffira de cliquer, avec ta souris, dans une cellule de cette colonne, puis de faire OK. C'est tout.
Que fait la macro :
- elle commence par insérer une colonne de travail et y numérote les lignes, pour pouvoir tout remettre dans l'ordre une fois le travail fini
- elle trie les lignes sur le critère choisi (selon la colonne désignée)
- elle balaie tout et met en évidence les doublons
- elle retrie tout dans l'ordre initial
- elle supprime la colonne de travail.
Sub VoirDoubles()
Dim I As Long
Dim NbrLig As Long
Dim NumCol As Integer
Dim ColTél As Range
Set ColTél = Application.InputBox(prompt:="Veuillez cliquer dans la colonne contenant un numéro de téléphone, puis faire OK", Type:=8)
NumCol = ColTél.Column
NbrLig = Cells(65536, NumCol).End(xlUp).Row
Application.ScreenUpdating = False
Columns("A:A").Insert Shift:=xlToRight
Range(Cells(1, 1), Cells(NbrLig, 1)).FormulaR1C1 = "=ROW()"
Range(Cells(1, 1), Cells(NbrLig, 1)).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Cells.Select
Selection.Sort Key1:=Range(Cells(1, NumCol + 1), Cells(1, NumCol + 1)), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
For I = 2 To NbrLig
If Cells(I, NumCol + 1).Value = Cells(I - 1, NumCol + 1).Value Then
Cells(I, NumCol + 1).Font.Bold = True
Cells(I, NumCol + 1).Font.ColorIndex = 3
Cells(I - 1, NumCol + 1).Font.Bold = True
Cells(I - 1, NumCol + 1).Font.ColorIndex = 3
End If
Next
Cells.Select
Selection.Sort Key1:=Range(Cells(1, 1), Cells(1, 1)), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Columns("A:A").Delete Shift:=xlToLeft
Cells(1, 1).Select
Application.ScreenUpdating = True
End Sub
Voilà l'énoncé du problème:
J'ai 4 colonnes sur 130 lignes avec en premier:
- des coordonnées (en chiffres et lettres) qui correspondent à des positions sur un plan (ex: 5A)
- une colonne X avec des chiffres
-une colonne Y avec aussi des chiffres
-une colonne "flux corrigé" avec des chiffres également
Le but est de sélectionné 50% des données sur l'ensemble des colonnes et ceci aléatoirement sans répétition.. et de mettre ces résultats sur les colonnes qui suivent..
Merci de m'aider à sortir de cette impasse...
Ta macro est géniale !
En as tu une qui supprimerais les doublons (et qui supprimerais toutes les lignes qui y sont rattachées)
Merci