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

ligne par ligne Index + Equiv ss conditions

  • Initiateur de la discussion Initiateur de la discussion jojo_peter67
  • 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 !

J

jojo_peter67

Guest
Bonjour le forum,

Je cherche a faire une boucle qui :
1. pour chaque ligne (jusqu'à la dernière), si une cellule de la colonne D prend pour valeur Fr
2. alors Si la cellule de la colonne E prend la valur P
3. alors excel recherche une info dans un tableau a l'aide d'INDEX et de EQUIV dans une feuille Tarif3

Code:
Pour vérifier si on a la valeur FR, je fais cela :
For Each K In [D2:D9]
 valtest = "FR"
   If w Like valtest2 Then

Comment lui indiquer de faire cette boucle de E2 jusqu'au dernier E de ma feuille ?

Code:
Pour vérifier si on a la valeur P, je fais cela :
For Each w In [F2:F9]
 valtest2 = "P"
   If w Like valtest2 Then

Sans passer par une boucle, pour Index et Equiv, je me sert de ça :


Code:
Range("J9").Value = Application.Index(Worksheets("Tarif3").Range("B3:N100"), Application.Match(Worksheets("AgencesTfe").Range("B9"), Worksheets("Tarif3").Range("A3:A105"), 0), Application.Match(Worksheets("AgencesTfe").Range("D9"), Worksheets("Tarif3").Range("B1:E1"), 1))

Comment le faire pour qu'il le fasse pour chaque ligne ? (en gros, le B9 et le D9 doivent changer en B10 et D10 etc ... , le reste restant les mêmes)

Merci beaucoup !
 
Re : ligne par ligne Index + Equiv ss conditions

Bonsoir

Pour déterminer la ligne de la dernière cellule utilisée dans une colonne on utilise

Sheets(nom de la feuille).Range("E65536").End(xlUp).Row
Pour la colonne E
On remplace la valeur numérique par ce code.

JP
 
Re : ligne par ligne Index + Equiv ss conditions

Ok, mais quelle boucle dois je utiliser pour chaque ligne, jusqu'à la fin ?
Il me faut aussi récuprer ce numero de ligne puisque j'en ai besoin dans la suite.

Merci
 
Re : ligne par ligne Index + Equiv ss conditions

Bonjour

Ci dessous un exemple de macro.
A tester
Code:
Option Explicit


Sub travdemande()
Dim cellule As Range
Dim plage As Range

Dim nomfeuille1 As String
Dim col1 As String
Dim lidep1 As Long

'**********************************
' à modifier
nomfeuille1 = ActiveSheet.Name '"Feuil1" 
col1 = "d"
lidep1 = 2
'************************************

With Sheets(nomfeuille1)

Set plage = .Range(col1 & lidep1 & ":" & col1 & .Range(col1 & "65536").End(xlUp).Row)

For Each cellule In plage 'pour chaque ligne (jusqu'à la dernière)
     If cellule.Value = "FR" Then 'si une cellule de la colonne D prend pour valeur Fr
        If cellule.Offset(0, 1).Value = "P" Then 'alors Si la cellule de la colonne E (offset 1)prend la valur P

'3. alors excel recherche une info dans un tableau a l'aide d'INDEX et de EQUIV dans une feuille Tarif3            
            'Range("J9").Value = Application.Index(Worksheets("Tarif3").Range("B3:N100"), Application.Match(Worksheets("AgencesTfe").Range("B9"), Worksheets("Tarif3").Range("A3:A105"), 0), Application.Match(Worksheets("AgencesTfe").Range("D9"), Worksheets("Tarif3").Range("B1:E1"), 1))
            ' si on doit ranger dans la même ligne il faut utiliser Cellule.row
            Range("J" & cellule.Row).Value = Application.Index(Worksheets("Tarif3").Range("B3:N100"), Application.Match(Worksheets("AgencesTfe").Range("B" & cellule.Row), Worksheets("Tarif3").Range("A3:A105"), 0), Application.Match(Worksheets("AgencesTfe").Range("D" & cellule.Row), Worksheets("Tarif3").Range("B1:E1"), 1))
        End If
     End If
Next cellule

End With

End Sub


JP
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

D
Réponses
2
Affichages
950
D
G
  • Question Question
Microsoft 365 Recherche v + VBA
Réponses
3
Affichages
2 K
Grelune
G
Réponses
3
Affichages
1 K
G
Réponses
9
Affichages
1 K
P
Réponses
14
Affichages
2 K
Pexcel
P
D
  • Question Question
Réponses
6
Affichages
2 K
D
P
Réponses
4
Affichages
1 K
pompier83
P
K
Réponses
9
Affichages
2 K
KOGITUS
K
M
Réponses
6
Affichages
2 K
M
D
Réponses
6
Affichages
2 K
doclefou
D
L
Réponses
14
Affichages
2 K
L
M
Réponses
3
Affichages
1 K
MarcTer
M
K
Réponses
3
Affichages
2 K
kevenpom
K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…