Boucle pour recherche et collage de valeurs

Bonjour

Je reçois un journal de vente avec beaucoup de lignes.

J'ai besoin de créer une colonne et d'y reporter pour un code d'écriture spécifique un code contenu dans une autre colonne.

Ce code n'est que sur une ligne, pour les autres lignes il est N/A.

En colonne D sont mes numéros d'écriture.

Pour chacune en colonne T il existe un code qui n'est pas N/A.

Il me faut copier ce code sur toutes les autres lignes de la même écriture (et si possible que pour les comptes 706..... qui sont en colonne L, le reste je n'en ai pas besoin)

J'ai essayé index.equiv, recherchev, sierreur, max.si mais je me heurte tjs a l'un de ces 2 problèmes :

le code recherché n'est pas un nombre, j'ai besoin de plusieurs critères de recherche, et il ne se situe pas toujours en première ligne de l'écriture.

J'ai l'impression qu'il me faut passer par une macro. et une boucle genre tant que = N/A, trouve moi la valeur à copier

Mais je n'y arrive pas

Ce fichier n'est qu'un échantillon, il peut contenir 2000 lignes..

Merci à vous

Didier

12journal-vente.zip (77.95 Ko)

bonjour,

une proposition; fait l'hypothèse que les numéros d'écriture (colonne D) sont triés en ordre croissant.

Sub aargh()
    With Sheets("exemple")
        dl = .Cells(.Rows.Count, "T").End(xlUp).Row
        ref = ""
        For i = 3 To dl + 1
            If .Cells(i, 4) <> ref Then
                If ref <> "" Then
                    .Range("T" & fr & ":T" & lr).Value = v
                End If
                ref = .Cells(i, 4)
                fr = i

                v = ""
            End If
                If (Not IsError(.Cells(i, "T"))) And v = "" Then v = .Cells(i, "T")
                lr = i
        Next i
    End With
End Sub

Bonjour didi75 et bienvenue,

Salut h2so4

On peut aussi utiliser une formule matricielle (sur 2000 lignes max, ça devrait rester acceptable)

En ligne 3 d'une colonne vide, coller cette formule:

=INDEX($T$3:$T$2000;MIN(SI(($D$3:$D$2000=D3)*($O$3:$O$2000<>"");LIGNE($O$3:$O$2000)-2)))

Valider avec Ctrl+Shift+Enter, puis recopier en bas ... Sur l'exemple fourni, ça me semble fonctionner (si j'ai correctement compris!?)

Ca marche ! Super

Merci


par contre la formule elle marche pas, le code reste tjs le même

(j'ai bien validé la matrice pourtant

Re-bonjour,

didi75 a écrit :

par contre la formule elle marche pas, le code reste tjs le même

(j'ai bien validé la matrice pourtant

j'ai inséré la formule en colonne U et j'obtiens des codes différents (voir fichier joint)

Ceci dit, si la macro de h2so4 fait ton bonheur, mon amour propre y survivra

Re bonjour Milité

Ah oui, finalement c'est même mieux que la macro !

(désolé h2so4)

didi75 a écrit :

Ah oui, finalement c'est même mieux que la macro !

Rien n'est moins sûr: tout dépend du contexte ... À ta place, je conserverais précieusement les deux propositions sous le coude: il y aura peut-être un cas de figure qui apparaîtra demain, où la macro serait finalement mieux adaptée!

Bon travail

didi75 a écrit :

Ah oui, finalement c'est même mieux que la macro !

(désolé h2so4)

pour copier U.milité,je dirais que mon amour propre y survivra aussi

h2so4 a écrit :

pour copier U.milité,je dirais que mon amour propre y survivra aussi

Rechercher des sujets similaires à "boucle recherche collage valeurs"