Problème méthode FindNext

Compress

XLDnaute Occasionnel
Encore moi, et bonjour à tous.
En ce moment j'enchaîne même si grâce à vous j'avance bien sur mon projet.

Voici mon problème du jour.
J'ai sur 3 colonne :
- port de départ
- port d'arrivé
- cout transport
je peux avoir plusieurs ports d'arrivés pour un port de départ et plusieurs fois le même port de départ mais pour un port de départ et un port d'arrivé donné je n'ai qu'un cout transport.

Je réalise donc cette fonction

Code:
'Ajout des valeurs relatives à la cotation maritime de l'ILN à l'usine du projet
        With Sheets("Cotation maritime")
        Set RecherchePortILN = .Range(.Cells(2, 3), .Cells(.Cells(65536, 3).End(xlUp).Row, 3))
        'Recherche du port ILN dans la plage des cotations maritimes
        Set h = RecherchePortILN.Find(what:=port_ILN, LookIn:=xlValues, LookAt:=xlPart)
        'Boucle qui teste la présence du port usine pour définir la cotation maritime
        If Not h Is Nothing Then
        firstAddress = h.Address
        Do
            'Recherche le flux entre l'ILN choisi et l'usine du projet
            If h.Offset(0, 2).Value = definition_port_usine Then
            'Si flux trouvé, alors copie dans la case cotation maritime de la cotation
                .Cells(31, der_colonne).Value = h.Offset(0, 3).Value
            Else: Set h = .FindNext(h)
        'On boucle sur la recherche du port ILN tant qu'on en trouve
        'et tant qu'on ne retrouve pas la première ligne trouvée
            End If
        Loop While Not h Is Nothing And h.Address <> firstAddress
        End If
        End With

Et il me met une erreur de "Propriété ou méthode non géré par cet objet sur la ligne Else: Set h = .FindNext(h)
h est bien défini au début du sub
port_ILN est un string
der_colonne est correct

Merci par avance à tous
 

Catrice

XLDnaute Barbatruc
Re : Problème méthode FindNext

Hello Compress,
Encore moi aussi ;)

Essaie en enlevant "Else:"
Cela dit, chez moi ça ne plante pas ...
Faudrait vérifier les variables aussi.

C'est pas plutot ça qu'il faut faire ?
Do
If h.Offset(0, 2).Value = definition_port_usine Then
.Cells(31, der_colonne).Value = h.Offset(0, 3).Value
End If
Set h = .FindNext(h)
Loop While Not h Is Nothing And h.Address <> firstAddress
 
Dernière édition:

Compress

XLDnaute Occasionnel
Re : Problème méthode FindNext

Les variables fonctionnent toutes je les ai suivies une par une avec un espion.
Lorsque la première ligne trouvée pour le port de départ est la ligne où il y a le bon port d'arrivé, tout fonctionne et la cells(31,.... se remplit du cout transport.
Par contre quand le port d'arrivé n'est pas la première ligne trouvée donc qu'il faut boucler j'ai de nouveau l'errerur sur Set h = .FindNext(h) ?
Je te renvoie le code modifié...:

Code:
'Ajout des valeurs relatives à la cotation maritime de l'ILN à l'usine du projet
        With Sheets("Cotation maritime")
        Set RecherchePortILN = .Range(.Cells(1, 3), .Cells(.Cells(65536, 3).End(xlUp).Row, 3))
        'Recherche du port ILN dans la plage des cotations maritimes
        Set h = RecherchePortILN.Find(what:=port_ILN, LookIn:=xlValues, LookAt:=xlPart)
        'Boucle qui teste la présence du port usine pour définir la cotation maritime
        If Not h Is Nothing Then
        firstAddress = h.Address
        Do
            'Recherche le flux entre l'ILN choisi et l'usine du projet
            If h.Offset(0, 2).Value = definition_port_usine Then
            'Si flux trouvé, alors copie dans la case cotation maritime de la cotation
                Sheets("Synthèse").Cells(31, der_colonne).Value = h.Offset(0, 3).Value
            End If
            Set h = .FindNext(h)
            'On boucle sur la recherche du port ILN tant qu'on en trouve
            'et tant qu'on ne retrouve pas la première ligne trouvée
        Loop While Not h Is Nothing And h.Address <> firstAddress
        End If
        End With
 

Compress

XLDnaute Occasionnel
Re : Problème méthode FindNext

PierreJean MERCI !
En fait le With Sheets("Cotation Maritime") s'ajoutait au .FindNext et non RecherchePortILN

Je suis trop bête.... encore désolé de vous avoir dérangé. Mais je la ferai pas deux fois cette erreur.

Bon aujourd'hui je crois que ça sera tout.

Encore merci
 

Statistiques des forums

Discussions
312 538
Messages
2 089 396
Membres
104 158
dernier inscrit
obad