[VBA/EXCEL] copie col. A dans B sur condition

Résolu
OctetPlus Messages postés 41 Statut Membre -  
xkristi Messages postés 4336 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour

Je cherche à copier de B vers A si et seulement si la couleur de fond B3 est retrouvé sur les autres lignes alors copier B vers A de la ligne.

En fait, c'est une première étape:

En réalité je cherche à convertir: exemple

FRUIT           en         FRUIT    pomme
pomme                      FRUIT    pêche
pêche                      FRUIT    orange
orange                     LEGUME   carotte
LEGUME                     LEGUME   patate
carotte
patate

FRUIT et LEGUME dans mon chiffrier est des cellules de couleur de fond jaune, c'est pourquoi que présentement j'essaie de copier seulement si la couleur de B est jaune alors copier B dans A.

Voici ce que j'ai jusqu'à présent pour mon étape 1, mais ca ne fonctionne pas, il ne se passe RIEN !!!

'  Je veux prendre la couleur de fond de B3
      Range("B3").Select
      couleur = Selection.Interior.ColorIndex
'  Calcul le nomdre de ligne de mes données
      NbLignes = ActiveSheet.UsedRange.Rows.Count
      
      Range("A1").Select
      For RowCount = 1 To NbLignes
 '
 '  Si la couleur de B est = couleur alors la valeur de B dans A de la même ligne
            If Cells(RowCount, "B").Interior.ColorIndex = couleur Then
                valeur = Cells(RowCount, "B").Value
                Cells(RowCount, "A").Value = valeur
            End If
            
      Next RowCount


Merci beaucoup, ça fait plusieurs heures que je fouille sur le web que j'essai des trucs, mais j'ai de la diffilcuté à y arriver, c'est pourquoi que j'ai besoin de votre aide.

Ouf, je suis épuisé

OctetPlus
Configuration: Windows XP
Internet Explorer 6.0

1 réponse

  1. xkristi Messages postés 4336 Date d'inscription   Statut Membre Dernière intervention   564
     
    Si j'ai bien compris
    tu dois stocker non seulement la couleur de ta cellule mais aussi son contenu (varFruit) que tu veux mettre en A
    J'obtiens à partir de B en A (italiques)
    FRUIT FRUIT
    FRUIT Pomme
    FRUIT pêche
    FRUIT orange
    LEGUME
    carotte
    patate

    Macro : juste 2 lignes à modifier

    '
    ' Je veux prendre la couleur de fond de B3
    Range("B3").Select
    couleur = Selection.Interior.ColorIndex
    ' Calcul le nomdre de ligne de mes données
    NbLignes = ActiveSheet.UsedRange.Rows.Count

    varFruit = Range("B1").Value

    Range("A1").Select
    For RowCount = 1 To NbLignes
    '
    ' Si la couleur de B est = couleur alors la valeur de B dans A de la même ligne
    If Cells(RowCount, "B").Interior.ColorIndex = couleur Then

    Cells(RowCount, "A").Value = varFruit
    End If

    Next RowCount

    1