Supprimer doublons

sanaaSooma Messages postés 46 Date d'inscription dimanche 31 décembre 2000 Statut Membre Dernière intervention 9 mars 2010 - 9 déc. 2009 à 17:19
sanaaSooma Messages postés 46 Date d'inscription dimanche 31 décembre 2000 Statut Membre Dernière intervention 9 mars 2010 - 11 déc. 2009 à 12:53
bonsoir j'ai une feuille excel cotenant des information dans la premère colonne mais j'ai des lignes identique je veux supprimer ces lignes identiques et garder seulement une en vb net
merci

14 réponses

bobo10 Messages postés 22 Date d'inscription mardi 14 mars 2006 Statut Membre Dernière intervention 11 décembre 2009
9 déc. 2009 à 17:25
Tu peux te connecter sur la feuille excel via OleDb et ensuite faire un select Distinct(NomDeColonne) et récupèrer les donnée dans une datatable.
Ce sera ensuite plus facile pour traiter les données dans ton programme
0
sanaaSooma Messages postés 46 Date d'inscription dimanche 31 décembre 2000 Statut Membre Dernière intervention 9 mars 2010
9 déc. 2009 à 17:54
merci je suis debutant en vb et j'ai pas compris comment faire cela
0
bobo10 Messages postés 22 Date d'inscription mardi 14 mars 2006 Statut Membre Dernière intervention 11 décembre 2009
9 déc. 2009 à 18:07
tu fais comme ceci:
Imports System.Data.OleDb
Imports System.Data

Dans ta fonction:
dim Chemin as string = "Chemin du fichier excel"
dim strConn as string
dim objDT as New DataTable
dim objAdapter as OleDbDataAdapter
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
strConn &= "Chemin & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1;"""
dim objConn as New OleDbConnection(strConn)
objConn.Open()
If not objConn is Nothing Then
dim strSql as string = "SELECT Distinct(*) FROM [feuil1]"
objAdapter = new OleDbDataAdapter(strSql,objConn)
objAdapter.Fill(objDT)
End If
Dans ta feuille excel tu dois avoir une ligne de titre dans la ligne 1
Ensuite tu aura dans ta datatable toutes les valeurs de ta feuille sans doublon, tu peux dès lors travailler sur ta table
0
sanaaSooma Messages postés 46 Date d'inscription dimanche 31 décembre 2000 Statut Membre Dernière intervention 9 mars 2010
10 déc. 2009 à 11:33
merci pr tn attention je teste ce code
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sanaaSooma Messages postés 46 Date d'inscription dimanche 31 décembre 2000 Statut Membre Dernière intervention 9 mars 2010
10 déc. 2009 à 11:51
merci j'ai tester mais lors de l'ouverture de la connection il se produit une erreur c'est que le chemin ou je met mon application n'existe pas
0
bobo10 Messages postés 22 Date d'inscription mardi 14 mars 2006 Statut Membre Dernière intervention 11 décembre 2009
10 déc. 2009 à 11:58
Que te retourne les variables Chemin et strConn ?
0
sanaaSooma Messages postés 46 Date d'inscription dimanche 31 décembre 2000 Statut Membre Dernière intervention 9 mars 2010
10 déc. 2009 à 12:11
voila le code complet:
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim Chemin As String = "D:"*****
Dim strConn As String
Dim objDT As New System.Data.DataTable
Dim objAdapter As OleDbDataAdapter
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
strConn &= Chemin & "; Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
Dim objConn As New System.Data.OleDb.OleDbConnection(strConn)
objConn.Open()****
If Not objConn Is Nothing Then
Dim strSql As String = "SELECT Distinct(*) FROM [feuil1]"
objAdapter = New OleDbDataAdapter(strSql, objConn)
objAdapter.Fill(objDT)
End If
objConn.Close()
End Sub
il me donne que le chemin est inexistant et la connection est deja ouverte
0
bobo10 Messages postés 22 Date d'inscription mardi 14 mars 2006 Statut Membre Dernière intervention 11 décembre 2009
10 déc. 2009 à 12:22
Pour le problème de connexion if faut que tu mette un Try Catch pour gèrer l'erreur et dans le catch tu rajoute encore:
Finnaly
IF Not objConn is Nothing andalso objConn.State = Connexion.open
objConn.close()
objConn.Dispose()
End IF

Si la connexion est déja ouvert, cela veut dire qu'il a du trouver le fichier. Ce qu'il ne trouve peut-être pas c'est la feuille.
Vérifie le nom de la feuille excel Tab en bas et corrige si nécéssaire dans le code -> SELECT Distinct(*) FROM [Nom de la feuille]
0
sanaaSooma Messages postés 46 Date d'inscription dimanche 31 décembre 2000 Statut Membre Dernière intervention 9 mars 2010
10 déc. 2009 à 12:45
lors du test il passe à catch sans passer sur la requete vraiment j'ai pas compris ce qui se passe !!??
0
bobo10 Messages postés 22 Date d'inscription mardi 14 mars 2006 Statut Membre Dernière intervention 11 décembre 2009
10 déc. 2009 à 13:55
C'est qu'il ne se connect pas.
ça peut venir du string de connexion(Attention à la syntaxe)
Voici un exemple:
http://social.msdn.microsoft.com/Forums/fr-FR/visualcsharpfr/thread/a826fb8c-27c1-4e32-89f6-2a95c89b7504

Ensuite, j'ai fait une erreur dans mon code au niveau de la requete,
j'ai oublié le $ dans le nom de la feuille

SELECT Distinct(*) FROM [MaFeuille$]

ça devrait marcher maintenant.
0
sanaaSooma Messages postés 46 Date d'inscription dimanche 31 décembre 2000 Statut Membre Dernière intervention 9 mars 2010
10 déc. 2009 à 15:11
merci pour votre aide je vais modifier le code.
0
sanaaSooma Messages postés 46 Date d'inscription dimanche 31 décembre 2000 Statut Membre Dernière intervention 9 mars 2010
10 déc. 2009 à 17:02
tjrs la même erreur il ne se connecte pas...
0
bobo10 Messages postés 22 Date d'inscription mardi 14 mars 2006 Statut Membre Dernière intervention 11 décembre 2009
10 déc. 2009 à 17:26
1. Il faut vérifier dans le gestionnaire des tâches qu'il n'y a pas de processus excel qui sont en cours d'execution, sinon il faut les terminer

2. sur quelle ligne se produite l'exception

3. Est-il possible de poster l'exception
0
sanaaSooma Messages postés 46 Date d'inscription dimanche 31 décembre 2000 Statut Membre Dernière intervention 9 mars 2010
11 déc. 2009 à 12:53
l''exception se produit dans cette ligne:
cn.open()
0
Rejoignez-nous