Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 

tototiti2008

XLDnaute Barbatruc
Re : Application.Match

Bonsoir Didier,

.Range(.Cells(3, 1), .Cells(3, .Columns.Count))
Signifie : la plage de cellule qui commence en ligne 3, colonne 1 et qui se finit en ligne 3, colonne "le nombre de colonnes dans la feuille"
Bref, cette plage représente l'ensemble de la ligne 3
Pour le reste, je n'ai pas trop regardé
 

Discussions similaires

Réponses
6
Affichages
284
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…