Find ne fonctionne pas tout le temps

Bonjour,

J'ai crée une macro permettant, si un compte fournisseur est impacté, si l'achat concerne un compte de dossier technique de me récupérer le n°dossier, sinon de classer en frais généraux.

Voici donc le code :

Const d As Integer = 6 Const titreJNL As Integer = 6 Dim Lastlig As Long Dim Lastcol As Long Dim wsh1 As Worksheet Set wsh1 = res.Worksheets("JNL ACH") With wsh1 Lastcol = .Cells(titreJNL, Columns.Count).End(xlToLeft).Column Lastlig = .Cells(Rows.Count, Lastcol).End(xlUp).Row For i = 6 To Lastlig If .Cells(i, d).Value = 401100 Or .Cells(i, d).Value = 401000 Then If Not .Cells(i, d).CurrentRegion.Find("604", LookAt:=xlPart) Is Nothing Then .Cells(i, Lastcol + 1).Value = .Cells(i, d + 1).Value End If If .Cells(i, d).CurrentRegion.Find("604", LookAt:=xlPart) Is Nothing Then .Cells(i, Lastcol + 1).Value = "FGX" End If End If Next i End With End Sub

Problème, vous pourrez tester vous-même avec le fichier test anonymisé, parfois la méthode Find fonctionne, d'autre fois elle considère avoir trouvé un compte 604. alors que non!!!

Aussi je vous demande de l'aide, merci!

3test.zip (146.31 Ko)

Peut-être que le problème vient de la plage de recherche trop vaste... Mais je ne vois pas plus précis que CurrentRegion.

L'idéal serait de sélectionner une plage sur la même colonne que la cellule définie, et en s'arrêtant à la première cellule vide, mais je n'ai aucune idée de comment faire

Je pense avoir trouvé d'où vient le problème : certaine fois il y a un code analytique, et donc le currentregion sélectionne quasiment toute la feuille...

Ceci dit j'aimerai quand même une réponse pour comment faire pour sélectionner une plage à partir d'une certaine cellule, jusqu'à la dernière non-vide, sur la même colonne ?

Merci

Bonjour

Les groupes de tes comptes en colonne F ne sont pas sépaparés par une ligne vide : il y a souvent un zéro en colonne M.

De ce fait, la définition de la plage de recherche avec ‘CurrentRegion » déborde largement celle du groupe de comptes considéré.

Il faut commencer par oter ces zéros.

La macro ci-joint s’en charge.

OK ?

Bye !

1test-v1.zip (155.01 Ko)

Bonjour

Les groupes de tes comptes en colonne F ne sont pas sépaparés par une ligne vide : il y a souvent un zéro en colonne M.

De ce fait, la définition de la plage de recherche avec ‘CurrentRegion » déborde largement celle du groupe de comptes considéré.

Il faut commencer par oter ces zéros.

La macro ci-joint s’en charge.

OK ?

Bye !

Bonjour,

Du coup j'avais trouvé la solution, mais merci tout de même pour le dérangement

Rechercher des sujets similaires à "find fonctionne pas tout temps"