Macro pour remplacé Index Equiv

Bonjour,

J'utilise beaucoup les fonctions Index Equiv qui alourdie beaucoup mon fichier.

exemple =INDEX('base données'!A:B;EQUIV(Resultat!A6;'base données'!A:A;0);2)

Est il possible de faire un macro qui allège le fichier ?

8index-equiv.xlsx (10.30 Ko)

Bonjour,

Et un simple

=RECHERCHEV(A1;'base données'!A:B;2;FAUX)

A+

Bonjour,

Avec Excel 365 (et mises à jours mensuelles) :

=SIERREUR(RECHERCHEX([@NomMois];Données[NomMois];Données[NumMois]);"N/A")

Adieu RECHERCHEV(), INDEX() et EQUIV() !...

Cdlt.

7index-equiv.xlsx (12.35 Ko)

Bonjour,

la recherche est pour des mots , chiffres ....

je recherche un macro car je l'utilise beaucoup et je finie avec des fichier de 300 000 ko

Bonjour

Bonjour à tous

Une version macro a tester, avec résultat sans formules

Cela te convient-il ?

Bye !

11index-equiv-v1.xlsm (23.95 Ko)

Bonjour,

Une autre proposition VBA.

Bon, maintenant 300.000ko = 300mo ?

Cdlt.

Public Sub SearchDataBetween2Tables()
Dim wsInput As Worksheet, wsOutput As Worksheet
Dim rngOutput As Range
Dim tblInput, tblOutput
Dim lastRow As Long, I As Long, J As Long

    With ActiveWorkbook
        Set wsInput = .Worksheets("base données")
        Set wsOutput = .Worksheets("Resultat")
    End With

    With wsInput
        lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
        tblInput = .Cells(1).Resize(lastRow, 2)
    End With

    With wsOutput
        lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
        Set rngOutput = .Cells(1).Offset(, 1).Resize(lastRow)
        tblOutput = .Cells(1).Resize(lastRow, 2).Value
    End With

    For I = LBound(tblOutput) To UBound(tblOutput)
        For J = LBound(tblInput) To UBound(tblInput)
            If tblOutput(I, 1) = tblInput(J, 1) Then
                tblOutput(I, 2) = tblInput(J, 2)
                Exit For
            End If
        Next J
    Next I

    rngOutput.Value = Application.Index(tblOutput, , 2)

End Sub

Merci

Bonjour,

La macro suivant est bien mais j'aurai besoin d'aide pour la modifier:

  • Est il possible de la démarré depuis un bouton?
  • Est il possible de la demandé quand on ouvre l'onglet?

J'aurai aussi besoin de la même version mais pas avec le mot exact

exemple ;

Si la cellulle A contient "Janvier,terre" et que mon index contient Janvier, il m’affiche le resultat

Merci d'avance

Option Explicit

Dim plage As Range
Dim i&, ln&, col&

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    col = 4 ' Numéro de la colonne où sera le résultat. A adapter si besoin
    Set plage = Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row)

    If Target.Row >= plage.Row And Target.Row < plage.Row + plage.Rows.Count _
            And Target.Column = col Then

        For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
            For ln = 1 To Sheets("base données").Range("B" & Rows.Count).End(xlUp).Row
                If Range("A" & i) = Sheets("base données").Range("A" & ln) Then
                    Cells(i, col) = Sheets("base données").Range("B" & ln)
                    Exit For
                End If
            Next ln
        Next i
    End If
End Sub

Bonjour

Nouvelle version.

Bye!

Rechercher des sujets similaires à "macro remplace index equiv"