Aide pour une programmation sur vba

Fermé
Man-awa SOUMAHORO - 25 sept. 2003 à 13:08
AFRIPA Messages postés 3 Date d'inscription jeudi 25 septembre 2003 Statut Membre Dernière intervention 26 septembre 2003 - 26 sept. 2003 à 16:32
bonjour a tous
je souhaite resoudre mon probleme par le biais de ce forum et je remercie d'avance tous qui de près ou de loin pourons m'aider.
il s'agit de comparer les champs de deux fichiers qui sont sur un meme classeur mais sur des feuilles differentes. je precise que c'est sur visual basic for application
urgent SVP, c'est dans le cadre d'un rapport que je dois rendre le 30/09/03. merci encore!
sub comparaison()
dim myrange as range
dim straddresse, stradresse as string
dim c1, c2 as object
dim var, i as integer
i=1
set nvellefeuille=worksheets.add
nvellefeuille.Name=("feuil4")
var=msgbox("recherhce en cours")
for each c1 in worksheets ("feuil1").range("d2:d587")
srtaddresse=UCase(trim(c1.value))
for each c2 in worksheets ("feuil2").range("d2:d968")
srtadresse=UCase(trim(c1.value))
if stradresse=straddresse then
worksheets("feuil4").cells(i,1).value=straddresse
i=i+1
end if
next c2
next c1
var=msgbox("fin de la comparaison", vbokonly, " ")
end sub
A voir également:

2 réponses

Cqqn Messages postés 964 Date d'inscription vendredi 22 novembre 2002 Statut Membre Dernière intervention 1 avril 2010 21
25 sept. 2003 à 13:14
Je réponds vite fait là.
Dans les déclarations, on m'a montré que dans
dim straddresse, stradresse as string
dim c1, c2 as object
dim var, i as integer


eh bien straddresse, c1 et var seront interprétés comme des variants, donc essayes déjà ceci:
dim straddresse as string, stradresse as string
dim c1 as object, c2 as object
dim var as integer, i as integer



Le respect, y'a que ça de vrai!
Entre autres.
0
AFRIPA Messages postés 3 Date d'inscription jeudi 25 septembre 2003 Statut Membre Dernière intervention 26 septembre 2003
25 sept. 2003 à 14:31
salut Cqqn

merci d'abords pour la rapidité avec laquelle vous avez repondu à cet S.O.S. merci encore
j'ai donc suivi vos instructions mais quand j'execute le programme il s'affiche une icone disant depassement de capacité et quand j'actionne le débogueur c'est l'incrementation i=i+1 qui est pointé par le curseur.
je ne sais comment pallier à cela, j'ai de nouveau recours a votre devouement pour m'aider.

merci
0
Cqqn Messages postés 964 Date d'inscription vendredi 22 novembre 2002 Statut Membre Dernière intervention 1 avril 2010 21
25 sept. 2003 à 18:25
Je ne suis pas certain, mais c'est ptêt ça:
"i" est incrémenté 967 fois dans le "For each c2", et cela multiplié par 586 du "For each c1".
En fait "i" est trop souvent incrémenté par rapport à ta condition "if stradresse=straddresse".
les entiers c'est 32 000qqchose < (967*586).
Donc "i" ne doit pas être un integer mais plutôt un double.

Le respect, y'a que ça de vrai!
Entre autres.
0
AFRIPA Messages postés 3 Date d'inscription jeudi 25 septembre 2003 Statut Membre Dernière intervention 26 septembre 2003
26 sept. 2003 à 16:32
salut Cqqn

merci encore de bien vouloire m'accorder ton aide si précieuse pour moi surtout dans ma situation. je croix que je vais encore en avoir besion; excuse moi d'avance pour le dérrangement.
j'ai encore suivi les instructions que tu m'as proposé et quand j'execute le programme il s'affiche " indice hors de plage" et après débogage le curseur m'indique
worksheets ("feuil 9").cells(i,1).value=straddresse_6

merci encore Cqqn pour ton aide

tu as raison le respect ya que ca de vrai

merci
0