rebouclé une opération sur une ligne [VBA]

  • Initiateur de la discussion Initiateur de la discussion bilos56
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

bilos56

XLDnaute Nouveau
Bonjour a tous!!!
Je suis débutant en VBA, et je n'arrive pas a résoudre un problème.
Je vous explique mon problème:
Je recherche sur une autre feuille une référence. Une fois cette référence retrouvé je souhaiterais prendre la date qui l'associe. Je veut prendre la dernière date (si on retrouve plusieurs fois la meme référence).Actuellement j'arrive à faire ceci!!!
Maintenant je souhaiterais étendre cette ligne de code pour que la recherche se fasse pour les autres référence.
J'espere que vous m'avez bien compris.

Merci d'avance

Voici ma ligne de code

Sub recherche()

Dim cellule As Range
Set cellule = Worksheets("Sheet1").Cells(3, 2)
Dim resultat As Range
Set resultat = Worksheets("Sheet1").Cells(cellule.Row + 1, cellule.Column)

If Cells(Cells.Find(cellule, [iv65536], , , xlByRows, xlPrevious).Row, 2) = Empty Then
resultat = Cells(Cells.FindNext(Cells(Cells.Find(cellule, [iv65536], , , xlByRows, xlPrevious).Row, 1)).Row, 2)
ElseIf Cells(Cells.Find(cellule, [iv65536], , , xlByRows, xlPrevious).Row, 2) <> Empty Then
resultat = Cells(Cells.Find(cellule, [iv65536], , , xlByRows, xlPrevious).Row, 2)
End If
End Sub
 

Pièces jointes

Re : rebouclé une opération sur une ligne [VBA]

bonjour,

sans trop chercher à comprendre, essaie ceci :

VB:
Sub recherche()

Dim cellule As Range
Set cellule = Range("B3")
do while cellule<>""
  Dim resultat As Range
  Set resultat = Worksheets("Sheet1").Cells(cellule.Row + 1, cellule.Column)

  If Cells(Cells.Find(cellule, [iv65536], , , xlByRows, xlPrevious).Row, 2) = Empty Then
    resultat = Cells(Cells.FindNext(Cells(Cells.Find(cellule, [iv65536], , , xlByRows, xlPrevious).Row, 1)).Row, 2)
  ElseIf Cells(Cells.Find(cellule, [iv65536], , , xlByRows, xlPrevious).Row, 2) <> Empty Then
    resultat = Cells(Cells.Find(cellule, [iv65536], , , xlByRows, xlPrevious).Row, 2)
  End If
  set cellule = cellule(1,2)
Loop
End Sub

A tester donc...
 
Re : rebouclé une opération sur une ligne [VBA]

Bonjour Bilos56 et bienvenue, salut Softmama 🙂,
Ça me parait bien compliqué pour pas grand chose 🙄...
Soit en formule matricielle
Code:
=SI(MAX(SI(Sheet2!$A2:$A22=B3;Sheet2!$B2:$B22))=0;"";MAX(SI(Sheet2!$A2:$A22=B3;Sheet2!$B2:$B22)))
à valider avec Ctrl+Maj+Enter 😛

Soit en fonction VBA personalisée
Code:
Function RechercheHaute(Achercher As String, Plage As Range)
Dim Temp
Temp = Evaluate("max(if(" & Plage.Columns(1).Address(external:=True) & "=""" _
    & Achercher & """," & Plage.Columns(2).Address(external:=True) & "))")
If Temp = 0 Then RechercheHaute = "" Else RechercheHaute = Temp
End Function
Voir exemple joint 😉.
Bonne suite 😎
 

Pièces jointes

Re : rebouclé une opération sur une ligne [VBA]

Merci JNP et Softmama pour vos réponse!! Mais malheureusement je n'arrive pas à utiliser vos formules parce que mon fichier est plus complexe que l'exemple!! Je vous joint une partie de mon fichier: Je souhaiterai que dans la feuille 2 (colonne E) on retrouve la référence en feuille 1, et que en dessous de cette référence (feuille 1) on y mette la date (colonne M de la feuille 2) qui correspondent!!! Actuellement j'arrive à le faire manuellement pour une case mais je voudrais que sa le fasse automatiquement pour toute la ligne.
Merci d'avance
 

Pièces jointes

Re : rebouclé une opération sur une ligne [VBA]

Re 🙂,
Il suffisait d'adapter ma formule
Code:
=SI(MAX(SI(Sheet2!$E4:$E42=B3;Sheet2!$M4:$M42))=0;"";MAX(SI(Sheet2!$E4:$E42=B3;Sheet2!$M4:$M42)))
à valider en Ctrl+Maj+Enter et ça fonctionne parfaitement 🙄...
Bon courage 😎
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
2
Affichages
334
Retour