Modifs cellules / couleur autres cellulles

Résolu/Fermé
Le Rom - 23 févr. 2010 à 19:34
 Le Rom - 26 févr. 2010 à 10:57
Bonjour,
J'ai un tableur avec plus de 2000 lignes et je voudrais modifier des cellules sur des lignes en fonction de la couleur ou de la valeur d'une autre cellule de la même ligne.
Par ex. les cellules B2, B5, Bx ... deviennent "Jaunes" ou sont ">10", je veux mettre à "0" les cellules F2, F5, Fx ... et insérer à droite les cellules H2, H5, Hx ...
J'ai une macro faite avec l'enregistreur qui marche pour les actions mais je ne sais pas y mettre la condition ne connaissant pas VBA.
Merci si quelqu'un peut me donner un coup de main la -dessus.
A voir également:

6 réponses

Bonjour,

Je n'ai pas compris, donne moi un exemple concret !
Vous pouvez travailler sur les mises en formes conditionnelles et mettre des couleurs selon les valeurs mais pas l'inverse....

Cordialement,
Migou
0
PS : bien sûr, vous pouvez par le VBA travailler sur les couleurs mais... où allez vous ?
0
Bonjour Migou,

Excuses moi j'ai dû mal m'exprimer.

En fait les cellulles de ma colonne "B" sont le résultat d'une saisie sur une autre feuille.
Si ce résultat est >10, elles se colorent en jaune pour que je puisse les identifier facilement (j'ai mis une mise en forme conditionnelle sur cette colonne).
J'ai parfois plus de 100 cellules qui apparaissent ainsi (>10 et jaune) et c'est fastidieux de sélectionner une par une les cellules correspondantes de la colonne "H" pour faire une insertion à droite, puis les cellules correspondantes de la colonne "F" pour les mettre à "0".
Je voudrais donc avoir une macro qui vérifie à chaque ligne (il y en plus de 2000) que la cellule "Bx" est >10 (ou jaune, je ne sais pas lequel de ces 2 critères est le plus facile à prendre en compte ?) et si oui qu'elle fasse l'insertion à droite de la cellule "Hx" puis mette à "0" la cellule "Fx". Si non elle ne fait rien et passe à la ligne suivante jusqu'à la dernière.

J'espère avoir été plus clair ...!En tous cas merci de t'intéresser à mon problème.

Le Rom
0
On est pas dans le "CACA" !

Voici un site tuto : https://silkyroad.developpez.com/vba/boucles/

Il faut que tu apprennes d'abord à faire une boucle. Par exemple :
Sub Rom ()
Set ZoneControlée = Range ("A1:A2000")
For Each Cellule In ZoneControlée
Ici tu mets ta condition puis,
Next
End Sub
Dans cette boucle, la Machine passe de A1 à A2000

Après, tu apprends à mettre les conditions dans ta boucle, par exemple :
If Cellule >10 Then
Cellule = 0
End If
Dans cet exemple, les cellules >10 sont passées à 0

Bref, y a du boulot. Passe à la maison (non, je rigole !)

Bon courage
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci Migou de ta réponse.

Bon je vais m'y mettre et essayer de m'en sortir en suivant tes conseils, je te tiens au courant !

Sinon çà peut être chez MOI (LOL)

A plus
0
Bonjour,

J'ai essayé ce code pour mon problème mais çà ne marche pas !!!

Sub Rom()
Sheets("Feuil1").Select
Set ZoneControlee = Range("B3:B2000")
For Each Cellule In ZoneControlee
If Cellule > 1 Then
ActiveCell.Offset(0, 6).Select
Selection.Insert Shift:=xlToRight
ActiveCell.Offset(0, 4).Select
Selection = 0
End If
Next
End Sub

En fait ce serait peut être plus simple de poser le problème différemment.

Je veux contrôler sur chaque ligne de 3 à 2000 chacune des cellules de la colonne "B".
Si "B3" >1, j'insère un "0" en "H3" en décalant les cellules à droite.
Sinon, j'ajoute "1" à la cellule "H3" ("H3" devient "H3+1")

Et ainsi de suite jusqu'à "B2000"

Est ce que c'est plus clair ?

Merci d'avance.
0