C# excel

sodesign1988 Messages postés 11 Date d'inscription jeudi 23 octobre 2008 Statut Membre Dernière intervention 18 mars 2010 - 14 janv. 2009 à 12:29
WishhhMaster Messages postés 327 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 10 avril 2010 - 15 janv. 2009 à 08:34
Boujour,


j'ai crée de Hashtable  avec comme  code, pour l'une d'entre elles :


Hashtable indiceColumns2 =
new
Hashtable();



Type
type =

typeof
(

LibColumn
);




foreach
(

String
info

in



Enum
.GetNames(type))



{



Range
range = (

Range
)workSheet2.Cells.Find(info, missing, missing, missing, missing,

XlSearchDirection
.xlNext, missing, missing, missing);




if
(range ==

null
) StopApplication(

"colonne "
+ info +

" inexistante dans le fichier de base."
);



indiceColumns2[info] = range.Column;





}




IndiceColumns correspond à l'indice de quatre nom de colonnes dans deux classeurs. Je veux à l'aide de celui-ci comparer les lignes. C'est-à-dire voir si l'une des valeurs d'une colonne est présente dans l'autre classeur dans la colonne du même nom.

merci d'avance, bonne journée.


 

1 réponse

WishhhMaster Messages postés 327 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 10 avril 2010 8
15 janv. 2009 à 08:34
Salut,

D'après ce que je comprends tu dois d'abord exécuter le même code sur l'autre feuille pour mettre les indices dans une 2e HashTable.

Après,
foreach (object colName in indiceColumns2 )
{

if (!
ContainsIdenticalData(indiceColumns1[colName]
, indiceColumns2[colName]
)
{
//des données sont dans colonne 1 mais pas 2
}
}

private bool ContainsIdenticalData(int indCol1, int indCol2)
{
//parcours toutes les lignes du classeur 1 pour la colonne d'indice 1
//pour chaque cellule, regarde si ca valeur est dans la colonne d'indice indCol2 dans le 2e classeur
(tu peux utiliser range.Find, ou juste utiliser l'index si les données sont censées être sur la même ligne dans les 2 classeurs)
}

Après, tu dois sans doute vérifier si des données sont dans la 2e feuille mais pas dans la 1ere. Il ya sans doute un meilleur moyen de vérifier que mon truc.
Rejoignez-nous