Copie conditionnelle en fonction de la couleur d'un cellule
Aucune réponse
Sandrine
Tout d'abord bonjour à tous, je vous lis régulièrement car je débute en
VBA et vos conseil me sont précieux.
D'après vos conseils j'ai essayé d'ecrire un petit bout de code pour
copier dans la feuille 2 de mon fichier les valeurs des cellules de la
feuille 1 en fonction de la couleur de fond.
dans une colonne j'ai sur la feuil1 :
bleu1
vert1
rouge1
bleu2
vert2
bleu3
vert3
rouge2
et dans la feuil2 je voudrais une colonne avec :
bleu1
bleu2
bleu3
Alors j'ai écrit un bout de code (en piochant des infos à droite à
gauche sur le net)qui ressemble à ça :
Sub Moi()
'je selectionne la premiere cellule ou je
'veux ecrire dans la feuil2 pour etre sûre
'que les offset plus tard se feront à
'partir de la bonne cellule
Worksheets("Feuil2").Activate
Sheets("Feuil2").Range("B4").Activate
'je selectionne la premiere cellule
'de ma colonne de la feuil1
Worksheets("Feuil1").Activate
Sheets("Feuil1").Range("B8").Activate
Do While ActiveCell.Value <> ""
If ActiveCell.Interior.ColorIndex = 8 Then
Mavariable = Selection.Value
Worksheets("Feuil2").Activate
Selection = Mavariable
ActiveCell.Offset(1, 0).Cells.Select
Worksheets("Feuil1").Activate
ActiveCell.Offset(1, 0).Cells.Select
End If
Loop
End Sub
Et croyez moi si vous voulez, mais quand je mets n'importe quelle
condition dans le IF, ça marche impeccable (OH MIRACLE ;-)) et quand je
mets la condition de couleur ça me plante excel. Pas un bug avec une
erreur qui offre l'option debogage, non non, le programme qui ne répond
plus du tout !!
Alors ma question est la suivante :
Quel est le probleme avec ma condition de couleur ?
Je sais qu'il y a des gens super balèzes qui me pourraient me filer un
bout de code tout pret a copier-collé, mais j'aimerais juste qu'on
explique ce qui va pas avec ma condition pour comprendre où j'ai
merdouillé ;-P.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
isabelle
bonjour Sandrine,
Sub Moi() Dim c, x As Integer Worksheets("Feuil1").Activate For Each c In Range("A1:A" & Range("A65536").End(xlUp).Row) If c.Interior.ColorIndex = 5 Then x = x + 1 Worksheets("Feuil2").Range("A" & x) = c End If Next End Sub
isabelle
Tout d'abord bonjour à tous, je vous lis régulièrement car je débute en VBA et vos conseil me sont précieux.
D'après vos conseils j'ai essayé d'ecrire un petit bout de code pour copier dans la feuille 2 de mon fichier les valeurs des cellules de la feuille 1 en fonction de la couleur de fond.
dans une colonne j'ai sur la feuil1 :
bleu1 vert1 rouge1 bleu2 vert2 bleu3 vert3 rouge2
et dans la feuil2 je voudrais une colonne avec :
bleu1 bleu2 bleu3
Alors j'ai écrit un bout de code (en piochant des infos à droite à gauche sur le net)qui ressemble à ça :
Sub Moi()
'je selectionne la premiere cellule ou je 'veux ecrire dans la feuil2 pour etre sûre 'que les offset plus tard se feront à 'partir de la bonne cellule Worksheets("Feuil2").Activate Sheets("Feuil2").Range("B4").Activate 'je selectionne la premiere cellule 'de ma colonne de la feuil1 Worksheets("Feuil1").Activate Sheets("Feuil1").Range("B8").Activate Do While ActiveCell.Value <> "" If ActiveCell.Interior.ColorIndex = 8 Then Mavariable = Selection.Value Worksheets("Feuil2").Activate Selection = Mavariable ActiveCell.Offset(1, 0).Cells.Select Worksheets("Feuil1").Activate ActiveCell.Offset(1, 0).Cells.Select End If Loop End Sub
Et croyez moi si vous voulez, mais quand je mets n'importe quelle condition dans le IF, ça marche impeccable (OH MIRACLE ;-)) et quand je mets la condition de couleur ça me plante excel. Pas un bug avec une erreur qui offre l'option debogage, non non, le programme qui ne répond plus du tout !!
Alors ma question est la suivante : Quel est le probleme avec ma condition de couleur ?
Je sais qu'il y a des gens super balèzes qui me pourraient me filer un bout de code tout pret a copier-collé, mais j'aimerais juste qu'on explique ce qui va pas avec ma condition pour comprendre où j'ai merdouillé ;-P.
Merci d'avancc pour votre aide.
Sandrine
bonjour Sandrine,
Sub Moi()
Dim c, x As Integer
Worksheets("Feuil1").Activate
For Each c In Range("A1:A" & Range("A65536").End(xlUp).Row)
If c.Interior.ColorIndex = 5 Then
x = x + 1
Worksheets("Feuil2").Range("A" & x) = c
End If
Next
End Sub
isabelle
Tout d'abord bonjour à tous, je vous lis régulièrement car je débute en
VBA et vos conseil me sont précieux.
D'après vos conseils j'ai essayé d'ecrire un petit bout de code pour
copier dans la feuille 2 de mon fichier les valeurs des cellules de la
feuille 1 en fonction de la couleur de fond.
dans une colonne j'ai sur la feuil1 :
bleu1
vert1
rouge1
bleu2
vert2
bleu3
vert3
rouge2
et dans la feuil2 je voudrais une colonne avec :
bleu1
bleu2
bleu3
Alors j'ai écrit un bout de code (en piochant des infos à droite à
gauche sur le net)qui ressemble à ça :
Sub Moi()
'je selectionne la premiere cellule ou je
'veux ecrire dans la feuil2 pour etre sûre
'que les offset plus tard se feront à
'partir de la bonne cellule
Worksheets("Feuil2").Activate
Sheets("Feuil2").Range("B4").Activate
'je selectionne la premiere cellule
'de ma colonne de la feuil1
Worksheets("Feuil1").Activate
Sheets("Feuil1").Range("B8").Activate
Do While ActiveCell.Value <> ""
If ActiveCell.Interior.ColorIndex = 8 Then
Mavariable = Selection.Value
Worksheets("Feuil2").Activate
Selection = Mavariable
ActiveCell.Offset(1, 0).Cells.Select
Worksheets("Feuil1").Activate
ActiveCell.Offset(1, 0).Cells.Select
End If
Loop
End Sub
Et croyez moi si vous voulez, mais quand je mets n'importe quelle
condition dans le IF, ça marche impeccable (OH MIRACLE ;-)) et quand je
mets la condition de couleur ça me plante excel. Pas un bug avec une
erreur qui offre l'option debogage, non non, le programme qui ne répond
plus du tout !!
Alors ma question est la suivante :
Quel est le probleme avec ma condition de couleur ?
Je sais qu'il y a des gens super balèzes qui me pourraient me filer un
bout de code tout pret a copier-collé, mais j'aimerais juste qu'on
explique ce qui va pas avec ma condition pour comprendre où j'ai
merdouillé ;-P.
Sub Moi() Dim c, x As Integer Worksheets("Feuil1").Activate For Each c In Range("A1:A" & Range("A65536").End(xlUp).Row) If c.Interior.ColorIndex = 5 Then x = x + 1 Worksheets("Feuil2").Range("A" & x) = c End If Next End Sub
isabelle
Tout d'abord bonjour à tous, je vous lis régulièrement car je débute en VBA et vos conseil me sont précieux.
D'après vos conseils j'ai essayé d'ecrire un petit bout de code pour copier dans la feuille 2 de mon fichier les valeurs des cellules de la feuille 1 en fonction de la couleur de fond.
dans une colonne j'ai sur la feuil1 :
bleu1 vert1 rouge1 bleu2 vert2 bleu3 vert3 rouge2
et dans la feuil2 je voudrais une colonne avec :
bleu1 bleu2 bleu3
Alors j'ai écrit un bout de code (en piochant des infos à droite à gauche sur le net)qui ressemble à ça :
Sub Moi()
'je selectionne la premiere cellule ou je 'veux ecrire dans la feuil2 pour etre sûre 'que les offset plus tard se feront à 'partir de la bonne cellule Worksheets("Feuil2").Activate Sheets("Feuil2").Range("B4").Activate 'je selectionne la premiere cellule 'de ma colonne de la feuil1 Worksheets("Feuil1").Activate Sheets("Feuil1").Range("B8").Activate Do While ActiveCell.Value <> "" If ActiveCell.Interior.ColorIndex = 8 Then Mavariable = Selection.Value Worksheets("Feuil2").Activate Selection = Mavariable ActiveCell.Offset(1, 0).Cells.Select Worksheets("Feuil1").Activate ActiveCell.Offset(1, 0).Cells.Select End If Loop End Sub
Et croyez moi si vous voulez, mais quand je mets n'importe quelle condition dans le IF, ça marche impeccable (OH MIRACLE ;-)) et quand je mets la condition de couleur ça me plante excel. Pas un bug avec une erreur qui offre l'option debogage, non non, le programme qui ne répond plus du tout !!
Alors ma question est la suivante : Quel est le probleme avec ma condition de couleur ?
Je sais qu'il y a des gens super balèzes qui me pourraient me filer un bout de code tout pret a copier-collé, mais j'aimerais juste qu'on explique ce qui va pas avec ma condition pour comprendre où j'ai merdouillé ;-P.
Merci d'avancc pour votre aide.
Sandrine
Sandrine
Bonjour Isabelle,
Merci pour le code, ca merche impecable, mais j'ai un petit souci. Dans ma feuille 2 j'aimerai que ca commence dan la colonne B a parti de la ligne 3. Ton code marche imppeccable à ce petit détail pret, mais du coup j'avoue que j'y comprend plus rien.
Euh, au risque d'être un peu bornée quelqu'un peu m'expliquer pourquoi la ligne "If ActiveCell.Interior.ColorIndex = 8 Then" plante mon excel ? c'est juste par couriosité pour pas rester sur un échec quoi :-P
Merci en tout cas Isabelle, je vais essayer de trifouiller pour faire démarrer à la ligne 3 mais pour l'instant j'ai réussi qu'a tout coincer ;-)
Sandrine
bonjour Sandrine,
Sub Moi() Dim c, x As Integer Worksheets("Feuil1").Activate For Each c In Range("A1:A" & Range("A65536").End(xlUp).Row) If c.Interior.ColorIndex = 5 Then x = x + 1 Worksheets("Feuil2").Range("A" & x) = c End If Next End Sub
isabelle
Bonjour Isabelle,
Merci pour le code, ca merche impecable, mais j'ai un petit souci.
Dans ma feuille 2 j'aimerai que ca commence dan la colonne B a parti de
la ligne 3.
Ton code marche imppeccable à ce petit détail pret, mais du coup j'avoue
que j'y comprend plus rien.
Euh, au risque d'être un peu bornée quelqu'un peu m'expliquer pourquoi
la ligne "If ActiveCell.Interior.ColorIndex = 8 Then" plante mon excel ?
c'est juste par couriosité pour pas rester sur un échec quoi :-P
Merci en tout cas Isabelle, je vais essayer de trifouiller pour faire
démarrer à la ligne 3 mais pour l'instant j'ai réussi qu'a tout coincer ;-)
Sandrine
bonjour Sandrine,
Sub Moi()
Dim c, x As Integer
Worksheets("Feuil1").Activate
For Each c In Range("A1:A" & Range("A65536").End(xlUp).Row)
If c.Interior.ColorIndex = 5 Then
x = x + 1
Worksheets("Feuil2").Range("A" & x) = c
End If
Next
End Sub
Merci pour le code, ca merche impecable, mais j'ai un petit souci. Dans ma feuille 2 j'aimerai que ca commence dan la colonne B a parti de la ligne 3. Ton code marche imppeccable à ce petit détail pret, mais du coup j'avoue que j'y comprend plus rien.
Euh, au risque d'être un peu bornée quelqu'un peu m'expliquer pourquoi la ligne "If ActiveCell.Interior.ColorIndex = 8 Then" plante mon excel ? c'est juste par couriosité pour pas rester sur un échec quoi :-P
Merci en tout cas Isabelle, je vais essayer de trifouiller pour faire démarrer à la ligne 3 mais pour l'instant j'ai réussi qu'a tout coincer ;-)
Sandrine
bonjour Sandrine,
Sub Moi() Dim c, x As Integer Worksheets("Feuil1").Activate For Each c In Range("A1:A" & Range("A65536").End(xlUp).Row) If c.Interior.ColorIndex = 5 Then x = x + 1 Worksheets("Feuil2").Range("A" & x) = c End If Next End Sub