Lindsay_RBD
XLDnaute Nouveau
Bonjour à tous,
Au vue du titre, ma demande peut paraître basique, mais pas du tout ! J'ai réalisé quelques macros grâce à l'autoformation et doc grâce à énormément de forum comme celui-ci. Mais je bloque sur l'un de mes fichiers ... Voici mon souhait :
J'ai un classeur Excel "Classeur 1" dans lequel je renseigne des lots matières, la date de réception du certificat matière et le prélèvement de la matière.
Si je ne possède ni le certificat matière, ni le prélèvement matière, le lots est rouge. Si j'ai le certificat mais pas le prélèvement, le lot est orange. Si j'ai les deux, le lot est vert.
Donc jusque là tout va bien car ce sont des mises en forme conditionnelle.
Les 11 derniers lots inscrits sont copier et coller dans le "Classeur 2" suivant la référence de la matière.
Pas de soucis non plus de ce côté avec la macro. La plage est donc :
Par contre, étant donné que les couleurs sont déterminées par les mises en forme conditionnelle soit :
- je copie les mises en forme conditionnelles, mais qui ne fonctionnent plus dans le Classeur2
- Soit je copie que les valeurs ...
Auriez-vous une solution ?
Voici quelques pistes étudiées :
- Relevé les codes couleurs des MFC pour ensuite les convertir en RVB et les appliquer dans le second classeur. Mais je n'y arrive pas
- Utiliser la fonction Interior.Color mais comme les couleurs à copier sont dans une page variable, je n'arrive pas à appliquer la boucle For ...
Merci à tous par avance pour votre aide !
Au vue du titre, ma demande peut paraître basique, mais pas du tout ! J'ai réalisé quelques macros grâce à l'autoformation et doc grâce à énormément de forum comme celui-ci. Mais je bloque sur l'un de mes fichiers ... Voici mon souhait :
J'ai un classeur Excel "Classeur 1" dans lequel je renseigne des lots matières, la date de réception du certificat matière et le prélèvement de la matière.
Si je ne possède ni le certificat matière, ni le prélèvement matière, le lots est rouge. Si j'ai le certificat mais pas le prélèvement, le lot est orange. Si j'ai les deux, le lot est vert.
Donc jusque là tout va bien car ce sont des mises en forme conditionnelle.
Les 11 derniers lots inscrits sont copier et coller dans le "Classeur 2" suivant la référence de la matière.
Pas de soucis non plus de ce côté avec la macro. La plage est donc :
VB:
Range("C9").End(xlDown).Offset(0, 0).Select
Range(ActiveCell(), ActiveCell.Offset(-10, 0)).Copy
Par contre, étant donné que les couleurs sont déterminées par les mises en forme conditionnelle soit :
- je copie les mises en forme conditionnelles, mais qui ne fonctionnent plus dans le Classeur2
- Soit je copie que les valeurs ...
Auriez-vous une solution ?
Voici quelques pistes étudiées :
- Relevé les codes couleurs des MFC pour ensuite les convertir en RVB et les appliquer dans le second classeur. Mais je n'y arrive pas
Code:
Sub CoulMFC()
Dim Lig As Long, Cel As Range
Dim Cpt As Long, NbCond As Long, Res As String
For Lig = 1 To Range("C9:C19").Rows.Count
Res = 0
Set Cel = Range("C9:C19").Cells(Lig)
NbCond = Cel.FormatConditions.Count
For Cpt = 1 To NbCond
If Cel.DisplayFormat.Interior.Color = Cel.FormatConditions(Cpt).Interior.Color Then
Res = Cel.FormatConditions(Cpt).Interior.Color
Exit For
End If
Next Cpt
Cel.Offset(0, 5).Value = Res
Next Lig
End Sub
- Utiliser la fonction Interior.Color mais comme les couleurs à copier sont dans une page variable, je n'arrive pas à appliquer la boucle For ...
Code:
Public Sub MAJ()
Dim iLig As Integer
Dim MaPlage As Range
Dim der_ligne As Long, pre_ligne As Integer
der_ligne = Range("C9").End(xlDown).Offset(0, 0).Select
pre_ligne = Range(der_ligne, ActiveCell.Offset(-10, 0))
Set MaPlage = Range(Cells(pre_ligne), Cells(der_ligne))
For iLig = pre_ligne To der_ligne
Range("H" & iLig).Interior.Color = Range("C" & iLig).DisplayFormat.Interior.Color
Next iLig
End Sub
Merci à tous par avance pour votre aide !