|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() amine Consultant informatique Inscription : septembre 2011 Messages : 6 ![]() |
Bonjour,
J'ai un petit souci: le numéro de la ligne sur la quelle je fais une recherche avec find() est la variable i. Je cherche donc une donnée dans cette ligne (il y a une boucle for avant). Mais Excel pas vouloir erreur 93, 91.. Je dois signaler que je manipule deux fichiers Excel J'ai essayé ceci mais rien.. Code :
|
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
D'abord, ligne 15
Code :
ws201.Range(ws201.Cells(i, 11), ws201.Cells(i, 100))... Code :
Set ws201=Thisworkbook.worksheets("Nom de la Feuille")
__________________
Cordialement. |
|
|
10
|
|
|
#3 | ||
|
Invité de passage
![]() amine Consultant informatique Inscription : septembre 2011 Messages : 6 ![]() |
Bonjour,
oui je l'ai déclaré dans mon code, j'ai oublié de le faire ici... j'ai modifié un peu le code mais, le message d'erreur est le suivant: Variable objet ou variable bloc With non définie (erreur 91) Le bout de code modifié est: Code :
|
||
|
|
00
|
|
|
#4 | ||
|
Membre Expert
![]() Retraité Inscription : avril 2011 Messages : 692 ![]() |
Bonsoir,
Tu peux avoir cette erreur parce que la valeur recherchée n’a pas été trouvée. La recherche retourne alors « Nothing » et provoque l’erreur d’exécution ‘91’. Pour t’en assurer, tu peux décomposer ton code et visualiser en pas à pas avec la fenêtre variables locales. Code :
|
||
|
|
00
|
|
|
#5 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
Avec Find, il faut toujours garder en tête l'éventualité où rien n'est trouvé.
Par exemple Code :
__________________
Cordialement. |
||
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() amine Consultant informatique Inscription : septembre 2011 Messages : 6 ![]() |
J'envois les deux fichier de jeux de test.
Ré-explication:: je récupère la date à laquelle la saisie a été faite, donc la donnée de la deuxième ligne de la colonne où je trouve la donnée saisie que je met dans la colonne saisie du fichier cible. Pareil pour l'exécution et la livraison qui sont la même chose: donc à mettre dans la colonne exécution du fichier cible (la date). J'espère qu'avec le jeux de test c'est plus claire! NB J'ai mis mon code dans le fichier source! Donc je lis dans le fichier source la colonne toto à chaque ligne (i), lue je vais chercher la chaine de caractères Saisie, la fonction find me renvoie le n° de colonne (j) de la cellule contenant Saisie. Je récupère la date (qui est la donnée de la seconde ligne du fichier à la j ème colonne. cette date est mise dans le fichier cible dans la colonne des saisies et à la ligne de la même transaction (toto) que celle du fichier source. |
|
|
00
|
|
|
#7 |
![]() ![]() |
bonsoir
as tu appliquée les corrections préconisées plus haut par mercatog ? montre nous ton code modifié .. (sur le forum.. je ne télécharge pas les pièces jointes ..)
__________________
page à bbil : dernières entrées : Débuter en VB6 Mes contributions en téléchargement Les pages VB : FAQs, Tutoriels VB, Outils , Sources, WIKI Impératif "A LIRE AVANT DE POSTER"
|
|
00
|
|
|
#8 | ||||
|
Invité de passage
![]() amine Consultant informatique Inscription : septembre 2011 Messages : 6 ![]() |
Code :
Code :
col_source_saisie = Rows(i).Find(What:=Saisie, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByColumns).Column Code :
col_source_execution = Rows(i).Find(What:="Exec", LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns).Column Code :
|
||||
|
|
00
|
|
|
#9 |
![]() ![]() |
Après,
pour être sur d'agir sur la bonne feuille de la même manière que tu as créé tes feuilles variables liées au feuilles :"ws202 ..." crée une variable worksheet pointant sur la feuille ou tu effectue tes recherches ... et préfixe tous tes objets de type "[H2:H5000]", Cells, Range ... avec cette variable ainsi tu seras sur de travailler avec la bonne feuille...
__________________
page à bbil : dernières entrées : Débuter en VB6 Mes contributions en téléchargement Les pages VB : FAQs, Tutoriels VB, Outils , Sources, WIKI Impératif "A LIRE AVANT DE POSTER"
|
|
10
|
|
|
#10 |
|
Invité de passage
![]() amine Consultant informatique Inscription : septembre 2011 Messages : 6 ![]() |
j'ai pu avancer un peu.
Il fallait que j'active la worksheet du fichier source. Parce que dans mon code j'ouvre le fichier cible, et j'ai beau lui demander de selectionner une Range dans l'autre fichier, VBA pas vouloir. Donc il fallait réactiver le fichier source. |
|
|
00
|
|
|
#11 | ||
|
Membre Expert
![]() Retraité Inscription : avril 2011 Messages : 692 ![]() |
Bonjour bibiman23,
Je te retourne ton code modifié. Je te laisse découvrir les corrections ou adaptations, en particulier pour l’utilisation de find. Code :
|
||
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() amine Consultant informatique Inscription : septembre 2011 Messages : 6 ![]() |
Merci bbil et gFZT82 et tous les autres pour votre aide!
il fallait vraiment faire attention à quelle feuille je me réferais. En activant l'ancienne feuille après l'ouverture de la nouvelle pour le find, ça marchait mieux! La méthode de l'exécution pas à pas (F8) est d'une grande aide, ainsi que vos commentaires avisés. ![]() Cordialement Amine |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com