VBA recherche de données correspondantes

Kouik Kouik jr

XLDnaute Occasionnel
Hello le forum,

Je reviens vous voir car j'essaie de modifier mon code pour le rendre plus rapide et plus robuste.

Mon but est tout simple. Pour chaque cellule de la colonne B(feuille HS) correspondant avec la colonne E (feuille Journal) alors la valeur de la cellule colonne P = valeur de la cellule correspondante colonne A du journal

J'ai le code ci dessous qui marche impecablement bien



HTML:
Sub essai()

   Dim Déb As Integer
    Dim Fin As Integer
    Dim i As Integer
    Dim j As Integer

  With Sheets("JOURNAL")
                Déb = 2
                Fin = .Range("e" & .Rows.Count).End(xlUp).Row
            End With
            With Sheets("HS")
                i = 1
                Do While i < Fin
                    For j = Déb To Fin
                        If .Range("b" & i).Value = Sheets("JOURNAL").Range("e" & j).Value _
                                             Then .Range("p" & i).Value = Sheets("JOURNAL").Range("a" & j).Value
    
                    Next j
                    i = i + 1
                Loop
            End With

End sub


Mais je tente de le rendre plus robuste et plus rapide

j'aimerais donc plutot utiliser celui ci dessous mais je ne sais ou commencer pour chercher toutes les valeurs dans les colonne et non pas ceulement la cellule contenant "cash"

Merci d'avance pour vos idéees, suggestions et votre aide:)
HTML:
Sub essais27 ()

Dim therng As Range
    Dim thecode As String
    Dim theline As Integer
    Dim thedate As Date
    Dim x As Double

    thecode = "cash"
    On Error Resume Next
    If (thecash <> 0) Then
        ActiveWorkbook.Worksheets("HS").Activate
        Set therng = ActiveSheet.Columns("B").Find(thecode, LookIn:=xlValues, lookat:=xlWhole)
        If (therng Is Nothing) Then
            MsgBox "The position CASH_OPERATIONS has not been found..."
        Else
            theline = therng.Row
            MsgBox theline

            With ActiveSheet
                thedate = .Cells(1, 2).Value

                x = .Cells(theline, 4).Value
                x = x + thecash

                .Cells(theline, 4).Value = x
                .Cells(theline, 12).Value = thedate

            End With
        End If
    End If
End Sub
 

Catrice

XLDnaute Barbatruc
Re : VBA recherche de données correspondantes

Bonsoir,

Sans etre sur d'avoir tout compris :

Code:
Sub essai()
 For Each x In Sheets("HS").Range("B2:" & Sheets("HS").Range("B65536").End(xlUp).Address)
    For Each Y In Sheets("JOURNAL").Range("E2:" & Sheets("JOURNAL").Range("E65536").End(xlUp).Address)
        If x.Value = Y.Value Then Sheets("HS").Cells(Y.Row, 16).Value = Sheets("JOURNAL").Cells(x.Row, 1).Value
    Next
Next
End Sub
'------------------------------------------------
Sub essais27()
For Each x In Sheets("HS").Range("B2:" & Sheets("HS").Range("B65536").End(xlUp).Address)
    If x <> "" Then
        Set c = Sheets("JOURNAL").Columns("E").Find(x, LookIn:=xlValues)
        If Not c Is Nothing Then Sheets("HS").Cells(c.Row, 16).Value = Sheets("JOURNAL").Cells(x.Row, 1).Value
    End If
Next
End Sub
 

Statistiques des forums

Discussions
312 674
Messages
2 090 785
Membres
104 664
dernier inscrit
jth