Excel VBA Trouver avec une boucle

Signaler
Messages postés
10
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
29 janvier 2005
-
Messages postés
10
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
29 janvier 2005
-
J'en suis à mes débuts avec les les boucles VBA Excel.
Mon pb:
COL: A3:A:103 AGE Initial de 1,2,3,4,5,etc
B3:B103 AGE Final de 1,2,3,4,5,etc.
C3:C103 Montant montant x inséré
E3:E103 AGE sélect de 1,2,3,4,5,etc
F3:F103 Montant sélet Montant cherché
La boucle Vérifie Chaque cellule de la colone E avec la colone A et B. La valeur de E doit se situer dans l'intervalle de A et B et si VRAI la valeur de C est insérée dans la cellule de la colone F sinon "". Le boucle passe ensuite à la cellule suivante de la colone E et effectue la même condition sur les cellules de A,B,C.

Merci de me répondre

2 réponses

Messages postés
699
Date d'inscription
mercredi 19 février 2003
Statut
Membre
Dernière intervention
13 mai 2011
21
Bonjour,

Ce code devrait te convenir.

Dim celA As Range
Dim celB As Range
Dim celC As Range
Dim celE As Range
Dim celF As Range

Set celA = Range("A1")
Set celB = Range("B1")
Set celC = Range("C1")
Set celE = Range("E1")
Set celF = Range("F1")

'tant que toutes les cellules ne sont pas vides (A, B, C et E) on boucle
While Not (IsEmpty(celA) And IsEmpty(celB) And IsEmpty(celC) And IsEmpty(celE))

    'si E est compris entre A et B
    If (celE > celA And celE < celB) Or (celE < celA And celE > celB) Then
        'alors on met la valeur de C dans F
        celF.Value = celC.Value
    End If

'on descend les cellules d'une ligne
Set celA = celA.Offset(1, 0)
Set celB = celB.Offset(1, 0)
Set celC = celC.Offset(1, 0)
Set celE = celE.Offset(1, 0)
Set celF = celF.Offset(1, 0)
Wend


Fanny
Messages postés
10
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
29 janvier 2005

Salut Fanny,

Je te remercie de ta réponse.

J'ai changé l'adresse des cellulles pour que l'instruction débute à la ligne 3.

On retrouve les valeurs suivantes à la ligne 3:
Col A;40 B;50 C;5,000$ E;40 F:""
À la ligne 4
Col B;51 B;60 C;10,000$ E;41 F;""
À la ligne 5
Col B;61 B;65 C;15,000$ E;42 F;""

La colone E incrémente la série 40 à 100 à partir de la ligne 3.

Ainsi après l'exécution de la routine la colone F devrait afficher à partir de la ligne 3 les valeurs suivantes;
de 40 à 50 5,000$ (lignes 3 à ligne 13)
de 51 à 60 10,000$ (ligne 14 à ligne 23)
de 61 à 65 15,000$( ligne 24 à ligne 28)

Pour l'instant il n'y a aucune valeur s'affichant à la colone F.

Un gros Merci !

Patou