If Then sous excel jusqu'à 1ere cel vide

Nassimo -  
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je débute en macros excel et je rame sur les conditions if then.

J'ai un tableau sur lequel j'ai mis une condition qui fonctionne pour la première cellule et je voudrais qu'elle fonctionne sur toutes les cellules jusqu'à la 1ere cellule vide de la colonne D. Je me doute qu'il faut employer la fonction Next ou Go To ou un truc comme ça mais j'y arrive pô.

Voici mon code :

Sub essaiconditions()
ActiveSheet.Range("d3").Select
If ((Range("d3").Value < 5000) And (Range("b3").Value = 2) Or (Range("d3").Value >= 5000 And Range("d3").Value < 17500) And (Range("b3").Value = 2.25) Or (Range("d3").Value >= 17500) And (Range("b3").Value = 2.5)) Then
Range("e3").Value = True
Else
Range("e3").Value = False
End If
End Sub

Merci de votre patience avec les débutants.
N
A voir également:

3 réponses

gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 730
 
bonjour

Tu peux essayer ceci
Sub essaiconditions()
Dim l As Long
For l = 3 To Cells(1, 4).SpecialCells(xlLastCell).Row
    If ((Cells(l, 4).Value < 5000) _
        And (Cells(l, 2).Value = 2) _
        Or (Cells(l, 4).Value >= 5000 _
        And Cells(l, 4).Value < 17500) _
        And (Cells(l, 2).Value = 2.25) _
        Or (Cells(l, 4).Value >= 17500) _
        And (Cells(l, 2).Value = 2.5)) Then
        Cells(l, 5).Value = True
Else
        Cells(l, 5).Value = False
End If
Next l
End Sub
0
Nassimo
 
Ca marche.
Magnifique.
Merci.
Merci.
Merci.

Maintenant il faut que je comprenne.
Ca viendra.

Encore merci.
0
waoo40 Messages postés 116 Statut Membre 4
 
Bonjour, Nassimo.
Voilà ta macro comme elle doit être pour lister, dans ce cas, les lignes 3 à 50.
Pour changer les lignes à balayer, remplaces les valeurs de Ligne.
Cela devrait te convenir.

Amicalement,
JM

Sub essaiconditions()
Ligne = 3
For Ligne = 3 To 50
ActiveSheet.Range("d3").Select
If ((Cells(Ligne, 4).Value < 5000) And (Cells(Ligne, 2).Value = 2) Or (Cells(Ligne, 4).Value >= 5000 And Cells(Ligne, 4).Value < 17500) And (Cells(Ligne, 2).Value = 2.25) Or (Cells(Ligne, 4).Value >= 17500) And (Cells(Ligne, 2).Value = 2.5)) Then
Cells(Ligne, 5).Value = True
Else
Cells(Ligne, 5).Value = False
End If
Next
End Sub
0
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 730
 
bonjour

Maintenant il faut que je comprenne.
Ca viendra.


Pas de souci tout le monde a commencé un jour ou l'autre.

La variable l représente la ligne et elle s'incrémente avec "next" pour parcourir l'ensemble de la feuille.

J'ai utilisé "Cells(l, 4)" avec comme paramètres ligne , colonne qui sont simples à comprendre.

Cells(1, 4).SpecialCells(xlLastCell).Row permet de trouver la dernière ligne utilisée de cette colonne
0