OVH Cloud OVH Cloud

Doublons

5 réponses
Avatar
Ayrton [ASC]
Bonjour à tous,

Voilà, je sèche devant un petit problème ; soit un tableau T contenant 8
colonnes avec des doublons :
4
5
3
4
8
9
2
3

Comment sortir les doublons en vba pour ne conserver que les 6 colonnes
dont les chiffres sont différents ( c'est à dire sans le 4 et le 3 )

Merci de votre aide

--
@+
Ayrton
http://cerbermail.com/?ljOK1CRTMt
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr

5 réponses

Avatar
Daniel
Bonjour.
Il y a sans doute plus simple (j'ai supprimé les colonnes présentant des
doublons)

Option Base 1
Sub test()
Dim Tablo() As Integer, Teste As Boolean, Fin As Integer
ReDim Tablo(1)
Fin = 8
For i = 1 To Fin
Teste = False
For x = 1 To UBound(Tablo)
If Cells(1, i).Value = Tablo(x) Then
Cells(1, i).EntireColumn.Delete
i = i - 1
Fin = Fin - 1
If i = Fin Then Exit Sub
Teste = True
Exit For
End If
Next x
If Teste = False Then
ReDim Preserve Tablo(UBound(Tablo) + 1)
Tablo(UBound(Tablo)) = Cells(1, i).Value
End If
Next i
End Sub

Cordialement.
Daniel
"Ayrton [ASC]" a écrit dans le message de news:
O$
Bonjour à tous,

Voilà, je sèche devant un petit problème ; soit un tableau T contenant 8
colonnes avec des doublons :
4
5
3
4
8
9
2
3

Comment sortir les doublons en vba pour ne conserver que les 6 colonnes
dont les chiffres sont différents ( c'est à dire sans le 4 et le 3 )

Merci de votre aide

--
@+
Ayrton
http://cerbermail.com/?ljOK1CRTMt
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr



Avatar
JB
Bonsoir,

Sub essai()
Dim temp()
ReDim temp(100)
i = 1
For Each c In Range("ch")
If IsError(Application.Match(c, temp, 0)) Then
temp(i) = c
i = i + 1
End If
Next c
ReDim Preserve temp(i - 1)
For k = 1 To i - 1: MsgBox temp(k): Next
End Sub

http://cjoint.com/?hdwp3zzeRl

JB


Bonjour à tous,

Voilà, je sèche devant un petit problème ; soit un tableau T conten ant 8
colonnes avec des doublons :
4
5
3
4
8
9
2
3

Comment sortir les doublons en vba pour ne conserver que les 6 colonnes
dont les chiffres sont différents ( c'est à dire sans le 4 et le 3 )

Merci de votre aide

--
@+
Ayrton
http://cerbermail.com/?ljOK1CRTMt
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr


Avatar
JB
http://cjoint.com/?hdwYgTO7ZJ

For i = Range("ch").Count To 1 Step -1
If Application.CountIf(Range("ch"), Range("ch")(i)) > 1 Then
Range("ch")(i).EntireColumn.Delete
End If
Next i

JB


Bonjour à tous,

Voilà, je sèche devant un petit problème ; soit un tableau T conten ant 8
colonnes avec des doublons :
4
5
3
4
8
9
2
3

Comment sortir les doublons en vba pour ne conserver que les 6 colonnes
dont les chiffres sont différents ( c'est à dire sans le 4 et le 3 )

Merci de votre aide

--
@+
Ayrton
http://cerbermail.com/?ljOK1CRTMt
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr


Avatar
Ayrton [ASC]
Bonjour *Daniel*
Dans ton message de news:
tu nous envoyais cette missive :-(*)
Bonjour.
Bonjour Daniel,

Il y a sans doute plus simple (j'ai supprimé les colonnes présentant
des doublons)

Option Base 1
Sub test()
Dim Tablo() As Integer, Teste As Boolean, Fin As Integer
ReDim Tablo(1)
Fin = 8
For i = 1 To Fin
Teste = False
For x = 1 To UBound(Tablo)
If Cells(1, i).Value = Tablo(x) Then
Cells(1, i).EntireColumn.Delete
i = i - 1
Fin = Fin - 1
If i = Fin Then Exit Sub
Teste = True
Exit For
End If
Next x
If Teste = False Then
ReDim Preserve Tablo(UBound(Tablo) + 1)
Tablo(UBound(Tablo)) = Cells(1, i).Value
End If
Next i
End Sub


Apparement ça correspond pil poil à ce que je voulais ; je vaisétudier
ça de près car je ne voyais pasla syntaxe aussi longue et comme je ne
suis pas un pro du vba.........
Je vais me mettre au travail

Merci beaucoup pour ta gentillesse
Bonne soirée

--
- -
@+
Ayrton
http://cerbermail.com/?ljOK1CRTMt
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr

Avatar
Ayrton [ASC]
Bonjour *JB*
Dans ton message de
news:
tu nous envoyais cette missive :-(*)
http://cjoint.com/?hdwYgTO7ZJ

For i = Range("ch").Count To 1 Step -1
If Application.CountIf(Range("ch"), Range("ch")(i)) > 1 Then
Range("ch")(i).EntireColumn.Delete
End If
Next i


Merci 1000 fois pour ton aide ; je vais aussi bien étudier tes deux
fichiers.
C'est super gentil de ta part

Bonne fin de soirée


- -
@+
Ayrton
http://cerbermail.com/?ljOK1CRTMt
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr