Excel macro: condition sur plusieurs cellules
Résolu
jossdi
Messages postés
22
Statut
Membre
-
jossdi Messages postés 22 Statut Membre -
jossdi Messages postés 22 Statut Membre -
Bonjour,
je cherche à mettre une condition sur plusieurs cellules, la voici:
Si les cellules de B20à B24 de la feuille1 sont toutes vides alors la cellules A5 de la feuille2
est jaune.
voici mon code
Sub macro1()
For i = 20 To 24
Sheets("feuille1").Activate
If Cells(i, 2).Interior.ColorIndex = -4142 Then
Sheets("feuille2").Activate
Cells(5,1).interior.colorindex = 6
end if
next
end sub
la macro ne fait pas exactement ce que je veux:
il suffit qu'une des cellule soit vide pour A5 devienne jaune alors qu'il faut quelles soient toutes
vides pour que A5 deviennent jaune.
Merci d'avance je rame un peu je dois l'avouer!!
je cherche à mettre une condition sur plusieurs cellules, la voici:
Si les cellules de B20à B24 de la feuille1 sont toutes vides alors la cellules A5 de la feuille2
est jaune.
voici mon code
Sub macro1()
For i = 20 To 24
Sheets("feuille1").Activate
If Cells(i, 2).Interior.ColorIndex = -4142 Then
Sheets("feuille2").Activate
Cells(5,1).interior.colorindex = 6
end if
next
end sub
la macro ne fait pas exactement ce que je veux:
il suffit qu'une des cellule soit vide pour A5 devienne jaune alors qu'il faut quelles soient toutes
vides pour que A5 deviennent jaune.
Merci d'avance je rame un peu je dois l'avouer!!
A voir également:
- Excel macro: condition sur plusieurs cellules
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
5 réponses
bonjour,
Sans avoir approfondi...
If Cells(i, 2).Interior.ColorIndex = -4142 Then
si la veleur est réellement à -4142 tu doit employé Color et pas colorIndex
ColorIndex c'est de 1 à 48 et sûrement pas du négatif, là tu a déjà une erreur.
Ensuite tu ne teste qu'une seule cellule à la fois
Voir
dim F as boolean
Sheets("feuille1").Activate
For i = 20 To 24
If Cells(i, 2) <> "" then F = True: exit for
next i
if not F then
Sheets("feuille2").Activate
Cells(5,1).interior.colorindex = 6
end if
A+
Sans avoir approfondi...
If Cells(i, 2).Interior.ColorIndex = -4142 Then
si la veleur est réellement à -4142 tu doit employé Color et pas colorIndex
ColorIndex c'est de 1 à 48 et sûrement pas du négatif, là tu a déjà une erreur.
Ensuite tu ne teste qu'une seule cellule à la fois
Voir
dim F as boolean
Sheets("feuille1").Activate
For i = 20 To 24
If Cells(i, 2) <> "" then F = True: exit for
next i
if not F then
Sheets("feuille2").Activate
Cells(5,1).interior.colorindex = 6
end if
A+
For i = 20 To 24 If Cells(i, 2) <> "" Then F = True: Exit For Next i
Avec cette configuration tu teste les cellules B20, B21, B22, B23 et B24, c'est bien ces cellules que tu veux tester ?
Quand tu dit qu'il ne teste qu'une seule cellule c'est pas possible sauf que dés qu'il y a une cellule non vide il sort de la boucle mais F est à True donc le if ne se fait opas.
Tu dit... parce que ca devrais fonctionner.
en faisant quelques tests je pense avoir trouver l'erreur.
ton code marche très bien mais dans le cas de cellule vide (sans écriture)
alors que moi je voudrais que ce soit dans le cas de cellule vide (couleur de fond transparente)
que faudrait il changer dans le code pour parler de fond de cellule et non d'éventuelle écriture.
ton code marche très bien mais dans le cas de cellule vide (sans écriture)
alors que moi je voudrais que ce soit dans le cas de cellule vide (couleur de fond transparente)
que faudrait il changer dans le code pour parler de fond de cellule et non d'éventuelle écriture.
Y a un noeud, si ton fichier est pas trop coinfidentiel met le sur Cijoint et donne le lien dans un poste suivant.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
a+
je me suis trompé j'ai encore le même problème ça teste une cellule à la fois.
voici le code complet peut être ai je oublié un code:
Sub technologydetailfinish()
Dim F As Boolean
Sheets("TECHNOLOGY DETAIL").Activate
For i = 20 To 24
If Cells(i, 2) <> "" Then F = True: Exit For
Next i
If Not F Then
Sheets("STACK UP").Activate
Cells(9, 38).Interior.Color = 10092543
Cells(10, 38).Interior.Color = 10092543
Cells(10, 47).Interior.Color = 10092543
Cells(9, 38).Value = ""
Cells(10, 38).Value = ""
Cells(10, 47) = ""
Cells(12, 38).Interior.Color = 10092543
Cells(13, 38).Interior.Color = 10092543
Cells(13, 47).Interior.Color = 10092543
Cells(12, 38).Value = ""
Cells(13, 38).Value = ""
Cells(13, 47) = ""
Cells(49, 38).Interior.Color = 10092543
Cells(50, 38).Interior.Color = 10092543
Cells(50, 47).Interior.Color = 10092543
Cells(49, 38).Value = ""
Cells(50, 38).Value = ""
Cells(50, 47) = ""
Cells(52, 38).Interior.Color = 10092543
Cells(53, 38).Interior.Color = 10092543
Cells(53, 47).Interior.Color = 10092543
Cells(52, 38).Value = ""
Cells(53, 38).Value = ""
Cells(53, 47) = ""
Cells(11, 19).Interior.ColorIndex = 2
Cells(51, 19).Interior.ColorIndex = 2
End If
End Sub
tanks for advance