Application.Match

Didier972

XLDnaute Junior
Bonjour

Voilà je me sert d'un code qui me permet de retrouver une date, mais vu que je l'ai recopier, je n'arrive pas forcément à l'utiliser car je ne la comprend pas.

Index = Application.Match(TheDate, .Range(.Cells(3, 1), .Cells(3, .Columns.Count)), 0)

TheDate = Valeur cherchée
Le dernier "0", = recherche la première valeur qui est exactement égale à valeur cherchée

.Range(.Cells(3, 1), .Cells(3, .Columns.Count) : Ceci je n'arrive pas à le traduire afin de l'appliquer à ma nouvelle Macro.

Si quelqu'un peux m'expliquer comment fonctionne la matrice de recherche cela m'aiderais à avancer.

Voici en suite la macro que j'aimerais utiliser

Code:
Sub location()
Dim TheDate As Long, Index As Variant

Application.ScreenUpdating = False
Worksheets("Articles").Activate
Code = "LCHAP300" 'Code AGLM
Cde3 = "1" 'Command.TB3 'Valeur de la TB3 de l'USF Command
DatCde = "02/01/2013" 'Command.Lab_DatCde.Caption
DatRet = "05/01/2013" 'Command.Lab_DateRetour.Caption

'If Command.TB3 = "" Then
'Else
Worksheets("Articles").Activate
 
    With Sheets("Articles")
            'Chercher son nom dans la feuille Conso colonne B
            Set c = .Range("B2:B" & .Cells(.Rows.Count, 1).End(xlUp).Row).Find( _
                            What:=Code, _
                            After:=.Range("B2"), _
                            LookIn:=xlValues, _
                            LookAt:=xlWhole, _
                            SearchOrder:=xlByRows, _
                            SearchDirection:=xlNext, _
                            MatchCase:=False)
    Columns(2).Find(Code, , , , , Previous).Select
            c.Value = Code
       
      
        MsgBox "Quantité commandé : " & Cde3
        
        If c(1, 8).Value = "" Then
            c(1, 8) = Cde3 'Nbre ce Chapiteaux Cdé
            c(1, 7).FormulaR1C1 = "=[@[Stock Total]]-[@[Qté Sortie]]" 'DIspo = Stock Total - Qté Sortie
        Else
            c(1, 8) = c(1, 8) + Cde3 'Qté Sortie + Cde en cours
            c(1, 7).FormulaR1C1 = "=[@[Stock Total]]-[@[Qté Sortie]]" 'DIspo = Stock Total - Qté Sortie
        End If
        
       ' MsgBox Datecde
        If DatCde = "" Then
            Else: c(1, 9) = CDate(DatCde) ' Affiche la Date de Sortie
        End If
        
        'MsgBox DateRet
        If DatRet = "" Then
            Else: c(1, 10) = CDate(DatRet) ' Affiche la date Retour
        End If
 
 c(1, 11).Select
 ActiveCell.FormulaR1C1 = _
        "=IF([@[Date de Retour]]="""","""",[@[Date de Retour]]-[@[Date de Sortie]])" ' Nbre de Jour de Loc = Date de Sortie - Date de Retour
  Temps = c(1, 11)
  
'Recherche Date du début

TheDate = CDate(c(1, 9))  '(Command.Lab_DatCde)
 'MsgBox TheDate
    With Worksheets("Articles")
 
        Index = Application.Match(TheDate, .Range(.Cells(2, 1), .Cells(2, .Columns.Count)), 0)
       
 
        If IsError(Index) Then

            MsgBox "Résultat négatif. Rien trouvé.", _
                   vbOKOnly + vbInformation, _
                   "Résultat"
        Else
           .Cells(2, Index).Select 'Sélectionne la date
        End If

    End With
'Fin Call Croisement
'------------------Recherche la Date du Jour----------------

'---------------------------Sélectionne la cellule à l'intersection Ligne/Colonne----------

Set Date_Loc = ActiveCell
col = Date_Loc.Column

Set Personnel = Range("B5:B1000").Find(Command.TB_Code)
ligne = Personnel.Row
Cells(ligne, col).Select
Application.ScreenUpdating = True
 
 For i = 1 To Temps
ActiveCell = CDec(c(1, 7))
ActiveCell.Offset(0, 1).Select
Next i

End With
Application.ScreenUpdating = True
Worksheets("Planning").Activate
End Sub


Merci d'avance

Didier
 

Discussions similaires

Statistiques des forums

Discussions
314 450
Messages
2 109 729
Membres
110 553
dernier inscrit
loic55