Aide pour If Then à un débutant [Résolu]

Signaler
Messages postés
5
Date d'inscription
mercredi 4 mars 2009
Statut
Membre
Dernière intervention
5 mars 2009
-
lolobny
Messages postés
5
Date d'inscription
mercredi 4 mars 2009
Statut
Membre
Dernière intervention
5 mars 2009
-
Bonjour à tous
puisqu'il n'y a pas de questions idiotes, je vais poser la mienne plutôt que de rester dans l'ignorance, pourtant j'ai pas mal cherché (je vous jure)

voilà c'est tout simple

sous excel
je saisis une valeur dans la colonne C ,
alors sur la même ligne mais en colonne F, une action se produit (écriture d'une valeur, mise en forme, etc)

je ne veux pas utiliser la mise en forme conditionnelle d'excel car j'ai plusieurs actions à faire en simultanée.

le principe de macro en VBA me permettrait d'adapter cette solution à d'autres fichiers sur lesquels je travaille

j'ai utilisé l'instruction For Each et cela marche mais je voudrais trouver une solution avec l'instruction If Then Else

merci de faire progresser ma compréhension

8 réponses

Messages postés
5
Date d'inscription
mercredi 4 mars 2009
Statut
Membre
Dernière intervention
5 mars 2009

Bonjour et merci aux deux auteurs des réponses
                    de nouvelles perspectives de travail pour nous car ce savoir sera partagé avec mes collègues de travail (nous ne sommes pas programmeurs mais on veut faire avancer les choses)

réponse 1 :     j'ai appliqué et adapté à ma situation la formule  proposée
                      cela fonctionne

réponse 2 :     je vais la tester car sa mise en forme m'intéresse étant d'une approche différente

Bonne journée à tous
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
Salut
Si ton Each fonctionne, colle-le ici, car ton descriptif est un peu vague

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
2
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
5 mars 2009

Slt, c'est vrai que serait pas mal de savoir ce que tu veux faire avec le IF.
Pour le if, il y a plusieurs moyens de le faire.

Dans l'essentiel, tu peux faire :
IF condition THEN
   En fonction de ta condition et de la manière dont tu la souhaites, tu initilises le reste de tes actions.
Ex : if Cellule C <> "" then
   La je teste que ta cellule C ne soit pas vide pour éviter de faire tourner le reste des actions.
   Ensuite, tu codes ce qui correspond dans ta colonne J.
   ELSE
   Représente le cas où ta colonne est vide donc tu mettre un message, un texte, ...
   END IF

Xav
Messages postés
5
Date d'inscription
mercredi 4 mars 2009
Statut
Membre
Dernière intervention
5 mars 2009

voici ce que j'avais fait

Sub essai()

dim statut, registre
statut = Range("C5")
registre = Range("F5")

    If statut = "x" Then
    registre = "non"

End Sub
-----------------------------
Sub essai()
Dim statut

For Each statut in Range("C2:C500")
       If statut = "x" Then
          statut.Interior.colorindex = 48
       End If
Next statut

End Sub
-------------------------------------
bon c pas grand chose mais pour moi c'est une entrée en matière pour comprendre ces instructions
je bloque pour les mélanger

mon but :
est il possible de faire référence à la colonne C entière dans la première instruction
comment faire pour que le Then s'applique à autre colonne (saisie en C3 et action en F3)

Merci
Messages postés
5
Date d'inscription
mercredi 4 mars 2009
Statut
Membre
Dernière intervention
5 mars 2009

voici ce que j'avais fait

Sub essai()

dim statut, registre
statut = Range("C5")
registre = Range("F5")

    If statut = "x" Then
    registre = "non"

End Sub
-----------------------------
Sub essai()
Dim statut

For Each statut in Range("C2:C500")
       If statut = "x" Then
          statut.Interior.colorindex = 48
       End If
Next statut

End Sub
-------------------------------------
bon c pas grand chose mais pour moi c'est une entrée en matière pour comprendre ces instructions
je bloque pour les mélanger

mon but :
est il possible de faire référence à la colonne C entière dans la première instruction
comment faire pour que le Then s'applique à autre colonne (saisie en C3 et action en F3)

Merci
Messages postés
1839
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
Salut,

pas sur d'avoir compris ton besoin mais bon je vais essayer:

Sub essai()
    Dim Maplage As Range, MaCellule As Range
    Set Maplage = Range("C2:C500")
    ' pour chaque cellule de ma plage
    For Each cellule In Maplage
        ' si la valeur de la cellule = x alors
        If cellule.Value = "x" Then
            ' on travail sur la meme ligne que cette cellule mais en colonne f
            With Range("F" & cellule.Row)
                .Value = "non" ' on lui attribu une valeur
                .Interior.ColorIndex = 48 ' on lui attribu une couleur de fond
            End With
        End If
    Next
End Sub
Messages postés
5
Date d'inscription
mercredi 4 mars 2009
Statut
Membre
Dernière intervention
5 mars 2009

Je vais essayer cela

Merci de ton aide bigfish le vrai
[auteur/BIGFISHLEVRAI/510670.aspx
]
Messages postés
2
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
5 mars 2009

Salut lolobny,

Tu peux aussi voir cela :

Sub essai

' Insertion de variable pour recherche dans cellule
refcel=2
refcol=3

while cells(refcel,refcol)<>"" 'on suppose que dans ta colonne C, les valeurs commence à la ligne 2
                                             ' Dès que vide, on sort de la boucle
   if cells(refcel, refcol)="x" then                     ' si ta cellule contient x
      cells(refcel,refcol+2)="ok"                        ' alors la même ligne dans ta colonne F aura "ok"
      cells(refcel,refcol).interior.colorindex=48   ' Colorisation de la colonne trouvé.
   else
      cells(refcel,refcol).interior.color=vbred   ' x pas présent dasn ta colonne C
   end if
   refcel=refcel+1                                          ' Pour que la boucle WHILE se fasse sur les cellules de ta colonne C
wend

end sub

Vla; Bon amusement.