Modifs cellules / couleur autres cellulles

Résolu
Le Rom -  
 Le Rom -
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.
Configuration: Windows XP / Internet Explorer 8.0

6 réponses

  1. Migou76
     
    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
  2. Migou76
     
    PS : bien sûr, vous pouvez par le VBA travailler sur les couleurs mais... où allez vous ?
    0
  3. Le Rom
     
    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
  4. Migou76
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Le Rom
     
    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
  7. Le Rom
     
    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