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

Résolu/Fermé
OctetPlus
Messages postés
41
Date d'inscription
dimanche 11 septembre 2005
Statut
Membre
Dernière intervention
27 août 2007
- 29 janv. 2007 à 01:39
xkristi
Messages postés
4263
Date d'inscription
lundi 18 décembre 2006
Statut
Membre
Dernière intervention
5 mars 2022
- 29 janv. 2007 à 15:05
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

1 réponse

xkristi
Messages postés
4263
Date d'inscription
lundi 18 décembre 2006
Statut
Membre
Dernière intervention
5 mars 2022
562
29 janv. 2007 à 15:05
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