Supprimer doublons

Signaler
Messages postés
46
Date d'inscription
dimanche 31 décembre 2000
Statut
Membre
Dernière intervention
9 mars 2010
-
Messages postés
46
Date d'inscription
dimanche 31 décembre 2000
Statut
Membre
Dernière intervention
9 mars 2010
-
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

Messages postés
22
Date d'inscription
mardi 14 mars 2006
Statut
Membre
Dernière intervention
11 décembre 2009

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
Messages postés
46
Date d'inscription
dimanche 31 décembre 2000
Statut
Membre
Dernière intervention
9 mars 2010

merci je suis debutant en vb et j'ai pas compris comment faire cela
Messages postés
22
Date d'inscription
mardi 14 mars 2006
Statut
Membre
Dernière intervention
11 décembre 2009

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
Messages postés
46
Date d'inscription
dimanche 31 décembre 2000
Statut
Membre
Dernière intervention
9 mars 2010

merci pr tn attention je teste ce code
Messages postés
46
Date d'inscription
dimanche 31 décembre 2000
Statut
Membre
Dernière intervention
9 mars 2010

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
Messages postés
22
Date d'inscription
mardi 14 mars 2006
Statut
Membre
Dernière intervention
11 décembre 2009

Que te retourne les variables Chemin et strConn ?
Messages postés
46
Date d'inscription
dimanche 31 décembre 2000
Statut
Membre
Dernière intervention
9 mars 2010

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
Messages postés
22
Date d'inscription
mardi 14 mars 2006
Statut
Membre
Dernière intervention
11 décembre 2009

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]
Messages postés
46
Date d'inscription
dimanche 31 décembre 2000
Statut
Membre
Dernière intervention
9 mars 2010

lors du test il passe à catch sans passer sur la requete vraiment j'ai pas compris ce qui se passe !!??
Messages postés
22
Date d'inscription
mardi 14 mars 2006
Statut
Membre
Dernière intervention
11 décembre 2009

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.
Messages postés
46
Date d'inscription
dimanche 31 décembre 2000
Statut
Membre
Dernière intervention
9 mars 2010

merci pour votre aide je vais modifier le code.
Messages postés
46
Date d'inscription
dimanche 31 décembre 2000
Statut
Membre
Dernière intervention
9 mars 2010

tjrs la même erreur il ne se connecte pas...
Messages postés
22
Date d'inscription
mardi 14 mars 2006
Statut
Membre
Dernière intervention
11 décembre 2009

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
Messages postés
46
Date d'inscription
dimanche 31 décembre 2000
Statut
Membre
Dernière intervention
9 mars 2010

l''exception se produit dans cette ligne:
cn.open()