If Then sous excel jusqu'à 1ere cel vide

Nassimo -  
gbinforme Messages postés 14930 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
Configuration: Windows XP
Firefox 2.0.0.1

3 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
    1. Nassimo
       
      Ca marche.
      Magnifique.
      Merci.
      Merci.
      Merci.

      Maintenant il faut que je comprenne.
      Ca viendra.

      Encore merci.
      0
  2. 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
  3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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