lolobny
Messages postés5Date d'inscriptionmercredi 4 mars 2009StatutMembreDernière intervention 5 mars 2009
-
4 mars 2009 à 13:10
lolobny
Messages postés5Date d'inscriptionmercredi 4 mars 2009StatutMembreDernière intervention 5 mars 2009
-
5 mars 2009 à 11:37
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
lolobny
Messages postés5Date d'inscriptionmercredi 4 mars 2009StatutMembreDernière intervention 5 mars 2009 5 mars 2009 à 11:37
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
xavfra
Messages postés2Date d'inscriptionmardi 3 mars 2009StatutMembreDernière intervention 5 mars 2009 4 mars 2009 à 15:30
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
lolobny
Messages postés5Date d'inscriptionmercredi 4 mars 2009StatutMembreDernière intervention 5 mars 2009 4 mars 2009 à 15:47
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
lolobny
Messages postés5Date d'inscriptionmercredi 4 mars 2009StatutMembreDernière intervention 5 mars 2009 4 mars 2009 à 16:05
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)
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 4 mars 2009 à 17:21
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
xavfra
Messages postés2Date d'inscriptionmardi 3 mars 2009StatutMembreDernière intervention 5 mars 2009 5 mars 2009 à 11:16
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