Vba recherche informations dans liste
Fermé
tutitou
-
20 mars 2011 à 20:04
ccm81 Messages postés 10907 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2025 - 22 mars 2011 à 13:57
ccm81 Messages postés 10907 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2025 - 22 mars 2011 à 13:57
A voir également:
- Vba recherche informations dans liste
- Liste déroulante excel - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Entrer les informations d'identification reseau - Guide
- Liste déroulante en cascade - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
4 réponses
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
21 mars 2011 à 10:07
21 mars 2011 à 10:07
bonjour
est ce que ceci répond à la question (modifier les constantes)
bonne suite
est ce que ceci répond à la question (modifier les constantes)
Private Sub CommandButton1_Click() Const limin = 1 Const limax = 7 Dim li As Long, lili As Long, libonne As Long libonne = limin For lili = limin To limax libonne = 1 For li = limin To limax If Cells(li, 6) <= Cells(lili, 1) Then If Cells(libonne, 6) < Cells(li, 6) Then libonne = li End If End If Next li Cells(lili, 2).Value = Cells(libonne, 5) Next lili End Sub
bonne suite
Merci!
Ca marche bien mais comment je peux faire pour :
- ne mettre aucune valeur dans la colonne B si la valeur en A est supérieure à la plus grande valeur de F (par exemple, si A=100 et que maxF=50, on n'écrit rien en B car je recherche la valeur inférieure la plus proche et non la valeur supérieure la plus proche).
- je n'ai pas du comprendre toute la subtilité de votre code car je ne réussi pas à faire la même chose en cherchant la valeur supérieure la plus proche.
- qu'est ce que je dois changer pour mettre les données (actuellement en colonnes E et F) dans une autre feuille?
Merci de vos réponses!!!!
Ca marche bien mais comment je peux faire pour :
- ne mettre aucune valeur dans la colonne B si la valeur en A est supérieure à la plus grande valeur de F (par exemple, si A=100 et que maxF=50, on n'écrit rien en B car je recherche la valeur inférieure la plus proche et non la valeur supérieure la plus proche).
- je n'ai pas du comprendre toute la subtilité de votre code car je ne réussi pas à faire la même chose en cherchant la valeur supérieure la plus proche.
- qu'est ce que je dois changer pour mettre les données (actuellement en colonnes E et F) dans une autre feuille?
Merci de vos réponses!!!!
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
Modifié par ccm81 le 22/03/2011 à 10:49
Modifié par ccm81 le 22/03/2011 à 10:49
re
Q1. si j'ai bien compris la question
Q2. que veux tu dire par qu'est ce que je dois changer pour mettre les données (actuellement en colonnes E et F) dans une autre feuille?
est ce que ne serait pas plutot "prendre les données"
quoiqu'il en soit (prendre ou mettre), il te suffit de mettre un sheets(nom_de_ta_feuille). devant tous les cells et range, sans oublier le "."
ex
bonne suite
Q1. si j'ai bien compris la question
Option Explicit Private Sub CommandButton1_Click() Const limin = 1 Const limax = 7 Dim li As Long, lili As Long, libonne As Long Dim maxF For lili = limin To limax maxF = Application.WorksheetFunction.Max(Cells(limin, 6), Cells(limax, 6)) If maxF > Cells(lili, 1) Then libonne = 1 For li = limin To limax If Cells(li, 6) <= Cells(lili, 1) Then If Cells(libonne, 6) < Cells(li, 6) Then libonne = li End If End If Next li Cells(lili, 2).Value = Cells(libonne, 5) Else Cells(lili, 2).Value = "" End If Next lili End Sub
Q2. que veux tu dire par qu'est ce que je dois changer pour mettre les données (actuellement en colonnes E et F) dans une autre feuille?
est ce que ne serait pas plutot "prendre les données"
quoiqu'il en soit (prendre ou mettre), il te suffit de mettre un sheets(nom_de_ta_feuille). devant tous les cells et range, sans oublier le "."
ex
cells(li,6)devient par exemple
sheets("Feuil2").Cells(li,6)
bonne suite
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
22 mars 2011 à 13:57
22 mars 2011 à 13:57
pour compléter le post précedent
les colonnes E et F sont dans Feuil2 et A et B dans Feuil1
bonne suite
les colonnes E et F sont dans Feuil2 et A et B dans Feuil1
Option Explicit Private Sub CommandButton1_Click() Const limin = 1 Const limax = 7 Const FD = "Feuil2" Const FR = "Feuil1" Dim li As Long, lili As Long, libonne As Long Dim maxF For lili = limin To limax With Sheets(FD) maxF = Application.WorksheetFunction.Max(.Cells(limin, 6), .Cells(limax, 6)) End With If maxF > Cells(lili, 1) Then libonne = limin For li = limin To limax If Sheets(FD).Cells(li, 6) <= Sheets(FR).Cells(lili, 1) Then If Sheets(FD).Cells(libonne, 6) < Sheets(FD).Cells(li, 6) Then libonne = li End If End If Next li Sheets(FR).Cells(lili, 2).Value = Sheets(FD).Cells(libonne, 5) Else Sheets(FR).Cells(lili, 2).Value = "" End If Next lili End Sub
bonne suite