Ecrire dans Excel si match avec une autre donnée

Questions sur de la programmation avancée avec WinTask
Ung
Posts: 2
Joined: 01 Apr 2016, 11:56

Ecrire dans Excel si match avec une autre donnée

Postby Ung » 01 Apr 2016, 12:00

Bonjour,

J'ai deux fichiers Excel, je veux lire toutes les cellules d'une colonne du fichier 1 et pour chaque valeur je dois voir si elle existe dans un deuxième fichier excel et si oui écrire à la ligne correspondante des données du premier fichier excel. Je n'y arrive pas avec l'imbrication des boucles, pourriez-vous m'aider ?
Merci d'avance

Support
Posts: 55
Joined: 11 Feb 2016, 09:26

Re: Ecrire dans Excel si match avec une autre donnée

Postby Support » 06 Apr 2016, 11:40

Bonjour,

Pouvez-vous envoyer sur info@wintask.fr un exemple pour les deux fichiers Excel, il peut y avoir des données "bidon" dedans mais il faut des données de test pour écrire ce script de comparaison.

Cordialement,
Support WinTask

Support
Posts: 55
Joined: 11 Feb 2016, 09:26

Re: Ecrire dans Excel si match avec une autre donnée

Postby Support » 13 Apr 2016, 10:54

Bonjour,

Voici le code pour rechercher un seul nom. Pour effectuer la même recherche sur tous les noms de la colonne A, il faut ajouter une boucle.

Code: Select all

Dim nom1$(100)
Dim adresse$(100)
Dim nom2$(100)
Dim resultat$(2)

fichier1$="monfichier1.xlsx"
fichier2$="monfichier2.xlsx"

'lecture de la première colonne du fichier 1
ReadExcel(fichier1$, "A1:A100", nom1$())
'Lecture de la troisième colonne du fichier 1 qui sera à écrire dans le fichier 2 quand les noms sont identiques
ReadExcel(fichier1$,"C1:C100",adresse$())

'Lecure de la première colonne du fichier 2
ReadExcel(citibank$,"A1:A100", nom2$())

'Recherche par exemple du cinquième nom dans le fichier 1 si il est dans le fichier 2.
'Comme les tableaux commencent à l'index 0, le 5ème nom est à l'index 4
i=4
recherche$=nom1$(i)

'recherche$ est-il dans le deuxième fichier ?
j=0
exit=0
repeat
   If recherche$=nom2$(j) then
      exit=1
   Else
      j=j+1
   Endif
until exit=1 or j=100

'If j=100 recherche$ n'est pas dans le fichier 2
If j=100 then
   msgbox(recherche$+" non trouvé")
   'Remplir le tableau à écrire dans le fichier 2 d'une chaîne vide
   resultat$()=""
Else
   'Le nom a été trouvé et il faut écrire dans le fichier 2 l'adresse correspondante lue dans le fichier 1
   resultat$(0)=adresse$(i)
EndIf

'Ecriture dans le fichier 2 en colonne B de l'adresse venant du fichier 1 pour le nom recherché
WriteExcel(fichier2$,"B"+str$(j),resultat$())


Return to “Scripts complexes avec WinTask”

Who is online

Users browsing this forum: No registered users and 1 guest