Supprimer doublons tableau > SQL ?

Le
FdeCourt
Bonjour,

J'ai un tableau dans excel de 50 000 ligne environs.
Ce tableau est mis à jours très fréquements (l'intégralité est
remplacé par de nouvelles valeurs).
Ce tableau n'a qu'une colonne, dans lequel il peut y avoir énormément
de doublons.

Je le copie donc dans une variable tableau :

bdd_tmp = .Range("A1:A" & Range("A65536").End(xlUp).Row).Value

Ensuite j'ai une boucle qui me supprime un certain nombre de ligne
dont je ne veux pas, et qui me met le résultat dans une autre variable
tableau, à une dimension.

J'aimerais ensuite avoir une autre boucle qui ne me concerve qu'une
ligne de chaque doublon.

ainsi de

A
A
A
B
B
A
A
B
B
B
C
C
C
A
A
A

Je voudrais avoir un tableau qui ne me liste que A, B et C.

Est-ce qu'il est possible de lancer de pseudo requete similli SQL sur
des variables tableau (un SELECT DISTINCT serait parfait).

Merci pour votre aide

Cordialement,

F.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fdecourt
Le #18993311
Oups, je précise, j'ai du code qui me permet de supprimer mes
doublons, mais je cherche à l'optimiser, et étant en plein dans les
connections à des bases de données pour rapatrier des données dans
Excel, je me demandais si ce n'était pas possible de le faire.
Dans le cas actuel, les données ne viennent pas d'une base de données,
mais d'un tableau HTML (analyse de logs).

Cordialement,

F.
Daniel.C
Le #18993511
Bonjour.
Essaie un dictionnaire, c'est super rapide ;-)
Daniel

Bonjour,

J'ai un tableau dans excel de 50 000 ligne environs.
Ce tableau est mis à jours très fréquements (l'intégralité est
remplacé par de nouvelles valeurs).
Ce tableau n'a qu'une colonne, dans lequel il peut y avoir énormément
de doublons.

Je le copie donc dans une variable tableau :

bdd_tmp = .Range("A1:A" & Range("A65536").End(xlUp).Row).Value

Ensuite j'ai une boucle qui me supprime un certain nombre de ligne
dont je ne veux pas, et qui me met le résultat dans une autre variable
tableau, à une dimension.

J'aimerais ensuite avoir une autre boucle qui ne me concerve qu'une
ligne de chaque doublon.

ainsi de

A
A
A
B
B
A
A
B
B
B
C
C
C
A
A
A

Je voudrais avoir un tableau qui ne me liste que A, B et C.

Est-ce qu'il est possible de lancer de pseudo requete similli SQL sur
des variables tableau (un SELECT DISTINCT serait parfait).

Merci pour votre aide

Cordialement,

F.


Fdecourt
Le #18993751
Bonjour,

Désolé pour l'ancien message, j'ai oublié de le copier/coller (merci à
Daniel C. pour la remarque ;))
J'ai un tableau dans Excel de 50 000 lignes environ.
Ce tableau est mis à jours très fréquemment (l'intégralité du tab leau
est remplacée par de nouvelles valeurs).
Ce tableau n'a qu'une colonne, dans lequel il peut y avoir énormément
de doublons.

Je le copie donc dans une variable tableau :

bdd_tmp = .Range("A1:A" & Range("A65536").End(xlUp).Row).Value

Ensuite j'ai une boucle qui me supprime un certain nombre de lignes
dont je ne veux pas, et qui me met le résultat dans une autre variable
tableau, à une dimension.

J'ai ensuite une autre boucle qui ne me conserve qu'un exemplaire de
chaque doublon

Par exemple, c'est simple ;)

A
A
A
B
B
A
A
B
B
B
C
C
C
A
A
A

Je voudrais avoir un tableau qui ne me liste que A, B et C.

Est-ce qu'il est possible de lancer de pseudo requête SQL sur des
variables tableaux (un truc genre SELECT DISTINCT serait parfait).

Merci pour votre aide

Cordialement,

F.

PS : Je précise : j'ai du code qui me permet de supprimer mes
doublons, mais je cherche à l'optimiser, et à trouver une méthode plu s
rapide pour traiter mes données.
MichDenis
Le #18994231
Tu as le filtre élaboré qui fait ce type de travail.
dans la fenêtre du filtre, il ne faut pas oublié de
cocher l'option sans doublon... pas besoin de définir
une zone de critère.

Par requête, tu pourrais utiliser ADO
Ajouter la référence : "Microsoft activex data object 2.x librairy"

Un exemple :

Sub MaRequêteAvecADO()

Dim Conn As ADODB.Connection, Rst As New ADODB.Recordset
Dim Requete As String, FeuilData As String
Dim File As String


'Nom de la feuille où sont les données
FeuilData = "Feuil1"

'Nom de la feuille où tu veux copier les données


'La requête qui sera exécutée.
Requete = "SELECT F1 From [" & FeuilData & "$] Group By F1"

'Fichier sur lequel se fera la requête :
File = ThisWorkbook.FullName

Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & File & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;"""

Rst.Open Requete, Conn, adOpenForwardOnly, adLockOptimistic
Feuil2.Range("A1").CopyFromRecordset Rst

Rst.Close: Conn.Close
Set Rst = Nothing: Set Conn = Nothing

End Sub





"FdeCourt"
Bonjour,

J'ai un tableau dans excel de 50 000 ligne environs.
Ce tableau est mis à jours très fréquements (l'intégralité est
remplacé par de nouvelles valeurs).
Ce tableau n'a qu'une colonne, dans lequel il peut y avoir énormément
de doublons.

Je le copie donc dans une variable tableau :

bdd_tmp = .Range("A1:A" & Range("A65536").End(xlUp).Row).Value

Ensuite j'ai une boucle qui me supprime un certain nombre de ligne
dont je ne veux pas, et qui me met le résultat dans une autre variable
tableau, à une dimension.

J'aimerais ensuite avoir une autre boucle qui ne me concerve qu'une
ligne de chaque doublon.

ainsi de

A
A
A
B
B
A
A
B
B
B
C
C
C
A
A
A

Je voudrais avoir un tableau qui ne me liste que A, B et C.

Est-ce qu'il est possible de lancer de pseudo requete similli SQL sur
des variables tableau (un SELECT DISTINCT serait parfait).

Merci pour votre aide

Cordialement,

F.
MichDenis
Le #18994221
Je te crois pas... as-tu toi aussi écrit un livre sur le sujet ?

;-)))



"Daniel.C"
Bonjour.
Essaie un dictionnaire, c'est super rapide ;-)
Daniel

Bonjour,

J'ai un tableau dans excel de 50 000 ligne environs.
Ce tableau est mis à jours très fréquements (l'intégralité est
remplacé par de nouvelles valeurs).
Ce tableau n'a qu'une colonne, dans lequel il peut y avoir énormément
de doublons.

Je le copie donc dans une variable tableau :

bdd_tmp = .Range("A1:A" & Range("A65536").End(xlUp).Row).Value

Ensuite j'ai une boucle qui me supprime un certain nombre de ligne
dont je ne veux pas, et qui me met le résultat dans une autre variable
tableau, à une dimension.

J'aimerais ensuite avoir une autre boucle qui ne me concerve qu'une
ligne de chaque doublon.

ainsi de

A
A
A
B
B
A
A
B
B
B
C
C
C
A
A
A

Je voudrais avoir un tableau qui ne me liste que A, B et C.

Est-ce qu'il est possible de lancer de pseudo requete similli SQL sur
des variables tableau (un SELECT DISTINCT serait parfait).

Merci pour votre aide

Cordialement,

F.


Daniel.C
Le #18994451
Quel sujet ? Le seul livre que j'ai écrit fut un recueil de poésie que
j'ai publié à compte d'auteur dans ma prime adolescence ("La mer est
mon poison", 200 exemplaires imprimés, moins de 10 vendus !) ;-)))
C'est par désespoir de pouvoir vivre de ma plume que je suis devenu
informaticien.
Daniel

Je te crois pas... as-tu toi aussi écrit un livre sur le sujet ?

;-)))



"Daniel.C" discussion :
Bonjour.
Essaie un dictionnaire, c'est super rapide ;-)
Daniel

Bonjour,

J'ai un tableau dans excel de 50 000 ligne environs.
Ce tableau est mis à jours très fréquements (l'intégralité est
remplacé par de nouvelles valeurs).
Ce tableau n'a qu'une colonne, dans lequel il peut y avoir énormément
de doublons.

Je le copie donc dans une variable tableau :

bdd_tmp = .Range("A1:A" & Range("A65536").End(xlUp).Row).Value

Ensuite j'ai une boucle qui me supprime un certain nombre de ligne
dont je ne veux pas, et qui me met le résultat dans une autre variable
tableau, à une dimension.

J'aimerais ensuite avoir une autre boucle qui ne me concerve qu'une
ligne de chaque doublon.

ainsi de

A
A
A
B
B
A
A
B
B
B
C
C
C
A
A
A

Je voudrais avoir un tableau qui ne me liste que A, B et C.

Est-ce qu'il est possible de lancer de pseudo requete similli SQL sur
des variables tableau (un SELECT DISTINCT serait parfait).

Merci pour votre aide

Cordialement,

F.




Fdecourt
Le #18994631
Ca dérive ;)

Il n'y a donc pas moyen de faire des requêtes sur une variable
tableau, directement…..
C'est fort dommage ;)
Daniel.C
Le #18994781
> Ca dérive ;)



D'où le "HS" dans le titre du message.
Daniel
BOISGONTIER
Le #18995071
Bonjour,

http://boisgontierjacques.free.fr/pages_site/Dictionnaire.htm#AlimenterListe

http://boisgontierjacques.free.fr/pages_site/ado.htm#ListeSansDoublons

JB
http://boisgontierjacques.fr

"FdeCourt"
Bonjour,

J'ai un tableau dans excel de 50 000 ligne environs.
Ce tableau est mis à jours très fréquements (l'intégralité est
remplacé par de nouvelles valeurs).
Ce tableau n'a qu'une colonne, dans lequel il peut y avoir énormément
de doublons.

Je le copie donc dans une variable tableau :

bdd_tmp = .Range("A1:A" & Range("A65536").End(xlUp).Row).Value

Ensuite j'ai une boucle qui me supprime un certain nombre de ligne
dont je ne veux pas, et qui me met le résultat dans une autre variable
tableau, à une dimension.

J'aimerais ensuite avoir une autre boucle qui ne me concerve qu'une
ligne de chaque doublon.

ainsi de

A
A
A
B
B
A
A
B
B
B
C
C
C
A
A
A

Je voudrais avoir un tableau qui ne me liste que A, B et C.

Est-ce qu'il est possible de lancer de pseudo requete similli SQL sur
des variables tableau (un SELECT DISTINCT serait parfait).

Merci pour votre aide

Cordialement,

F.
Fdecourt
Le #18995221
Merci JB, cela va effectivement infiniement plus vite....
Publicité
Poster une réponse
Anonyme