Find methode

argon1515

XLDnaute Junior
Bonjour, voici un bout de code qui permet de chercher une valeur dans le classeur (Acq et imput 2007.xls) et :
- Si elle existe copier la cellule située 2 colonnes à droite et la coller dans un
un autre classeur (BILAN 2007.xls) sous les données.
- Si elle n'existe pas coller dans un autre classeur (BILAN 2007.xls) sous les
données : 0
Remarque : cette valeur n'existe qu'une seule fois ou est absente.

Dim b As Byte
Dim avip(10) As Variant ' exemple NPBE
Dim plgacqui(10) As String 'exemple B225
Dim ded(10) As String 'exemple DOM

For b = 0 To 10
Windows("Acq et imput 2007.xls").Activate
Worksheets("acqui").Select
Cells.Find(What:=avip(b), After:=ActiveCell, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
If Selection.Value = avip(b) Then
ActiveCell.Offset(0, 2).Select
Selection.Copy
Windows("BILAN 2007.xls").Activate
Worksheets(ded(b)).Select
Range(plgacqui(b)).End(xlDown).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Else
Windows("BILAN 2007.xls").Activate
Worksheets(ded(b)).Select
Range(plgacqui(b)).End(xlDown).Offset(1, 0).Select
Cells.Value = 0
End If
End If

Mon probléme est que l'instruction Cells.Find(What:=avip(b),... me renvoi
systematiquement une erreur d'execution '91' Variable objet ou variable de bloc with non defini.
Pouvez vous m'aider ? :eek:
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Find methode

Bonjour Argon, bonjour le forum,

J'ai à peine parcouru ton code mais je pense que tu as déclaré le tableau de variables avip mais tu ne l'as pas défini... Donc dans ta boucle, avip(b) doit renvoyer une variable vide ou nulle... Il te faudrait définir tes tableaux de varibles (avip, plagacqui et ded) avant de lancer la boucle.
 

argon1515

XLDnaute Junior
Re : Find methode

Robert à dit:
Bonjour Argon, bonjour le forum,

J'ai à peine parcouru ton code mais je pense que tu as déclaré le tableau de variables avip mais tu ne l'as pas défini... Donc dans ta boucle, avip(b) doit renvoyer une variable vide ou nulle... Il te faudrait définir tes tableaux de varibles (avip, plagacqui et ded) avant de lancer la boucle.
Merci Robert de t'interesser à mon probléme, toutes mes variables sont definies avant dans la macro et je peux voir leurs affectations dans la fenétre des variables locales ...et je ne vois toujours pas l'erreur :mad:
 

Pierrot93

XLDnaute Barbatruc
Re : Find methode

Bonjour Argon, Robert

le problème vient peut être du fait que la recherche n'aboutie pas, essaye le code ci dessous, sait on jamais...

Code:
Dim x As Range
Set x = Cells.Find(What:=avip(b), After:=ActiveCell, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not x Is Nothing Then x.Select

bon après midi
 

argon1515

XLDnaute Junior
Re : Find methode

Pierrot93 à dit:
Bonjour Argon, Robert

le problème vient peut être du fait que la recherche n'aboutie pas, essaye le code ci dessous, sait on jamais...

Code:
Dim x As Range
Set x = Cells.Find(What:=avip(b), After:=ActiveCell, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not x Is Nothing Then x.Select

bon après midi

Merçi Pierrot93 je viens de tester ton code qui fonctionne l'erreur était bien du au fait que la recherche n'aboutie pas.
Encore Merci et bon apres midi
 

Discussions similaires

Réponses
2
Affichages
176

Statistiques des forums

Discussions
312 497
Messages
2 088 994
Membres
104 000
dernier inscrit
dinelcia