Liste avec des conditions. Boucle While et IF
Résolu/Fermé
A voir également:
- Liste avec des conditions. Boucle While et IF
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Gertrude a préparé la liste des affaires à prendre pour l'excursion. juliette a modifié cette liste en utilisant le mode suivi des modifications proposé par le traitement de texte. - Guide
- Triez cette liste par ordre alphabétique des villes et par note de la meilleure à la moins bonne. quel mot est formé par les 8 premières lettres de la colonne code ? ✓ - Forum Excel
- Liste de numéro de téléphone suspect 07 ✓ - Forum Mobile
2 réponses
f894009
Messages postés
17204
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
12 octobre 2024
1 709
Modifié le 4 août 2022 à 18:15
Modifié le 4 août 2022 à 18:15
Bonjour,
chaque ligne du fichier (2 à 156) on teste si la cellule C2 contient le contenu de la cellule U2.
Seulement la cellule C2?
La mise jour doit etre automatique ou sur action type bouton ou combinaison de touche pour lancer le code
ozone_
Messages postés
1518
Date d'inscription
lundi 13 juillet 2009
Statut
Membre
Dernière intervention
2 juin 2023
478
4 août 2022 à 18:25
4 août 2022 à 18:25
Bonjour,
Un exemple de macro :
https://www.cjoint.com/c/LHeqzmDf3Ow
Option Explicit Sub chercheMot() Dim listeDeMot As Long Dim finRecherche As Long Dim i As Long: i = 2 Dim rangeRecherche As Range Dim rangeListeMot As Range Dim ws As Worksheet: Set ws = ActiveSheet With ws ' Délimite la longueur des listes finRecherche = .Cells(Rows.Count, "C").End(xlUp).Row listeDeMot = .Cells(Rows.Count, "U").End(xlUp).Row ' Définit les ranges de recherche Set rangeRecherche = .Range(.Cells(2, "C"), .Cells(finRecherche, "C")) Set rangeListeMot = .Range(.Cells(2, "U"), .Cells(listeDeMot, "U")) ' Boucle et recherche pour chaques lignes non vides dans la colonne C Do If Not IsError(Application.Match(.Cells(i, "C").Value, rangeListeMot, 0)) Then ' Renvoi le contenu de la cellule Vi dans la cellule Mi .Cells(i, "M") = .Cells(i, "V") Else ' Rien End If i = i + 1 Loop While .Cells(i, "C") <> "" End With End Sub
Bonjour à tous,
Je me permets de revenir vers vous, grâce à Ozone j'ai put résoudre mon problème !
J'ai un peu simplifié le code et ajuster à mon problème :
Option Explicit Sub chercheMot() Dim listeDeMot As Long Dim finRecherche As Long Dim i As Long: i = 2 Dim j As Long: j = 2 Dim ws As Worksheet: Set ws = ActiveSheet With ws ' Délimite la longueur des listes finRecherche = .Cells(Rows.Count, "A").End(xlUp).Row MsgBox (finRecherche) listeDeMot = .Cells(Rows.Count, "U").End(xlUp).Row - 1 MsgBox (listeDeMot) ' Boucle et recherche pour chaques lignes non vides dans la colonne C Do While i < listeDeMot + 2 Do While j < finRecherche + 2 If InStr(1, Cells(j, 3), Cells(i, 21)) <> 0 And Cells(j, 6) > 0 Then Cells(j, 13) = Cells(i, 22) End If j = j + 1 Loop j = 2 i = i + 1 Loop End With End Sub