XL 2013 Conservation des couleurs après importation de données

  • Initiateur de la discussion Initiateur de la discussion an@s
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

an@s

XLDnaute Occasionnel
Bonjour le forum,
je reviens vers vous à nouveau pour vous demander si c'est possible de modifier le code ci-dessous fourni par job pour conserver les couleurs après importation

VB:
Private Sub CommandButton1_Click()
Dim ncol%, nlig&, t, nlig1&, P As Range, d As Object, i&, P1 As Range, x$, j&
ncol = 45 'nombre de colonnes du tableau, adaptable
Application.ScreenUpdating = False
With Workbooks.Open(ThisWorkbook.Path & "\Matrice.xlsx").Sheets("MNT")
  nlig = .Range("C" & .Rows.Count).End(xlUp).Row
  If nlig > 1 Then nlig = nlig - 1
.[E2].Resize(nlig) = "=RC[4]-RC[7]-(RC[40]+RC[31]+RC[18])"
.[M2].Resize(nlig) = "=RC[-4]-RC[-1]"
.[N2].Resize(nlig) = "=RC[-2]+(RC[9]+RC[22]+RC[31])"
.[O2].Resize(nlig) = "=IFERROR(RC[-3]/RC[-1],"""")"
.[W2].Resize(nlig) = "=SUM(RC[-5]:RC[-1])"
.[AJ2].Resize(nlig) = "=SUM(RC[-12]:RC[-1])"
.[AS2].Resize(nlig) = "=SUM(RC[-8]:RC[-1])"
t = .[A2].Resize(nlig, ncol).FormulaR1C1
  .Parent.Close False
End With
'---restitution des valeurs et formules du 1er tableau---
nlig1 = Range("C" & Rows.Count).End(xlUp).Row + 2
With [A3].Resize(nlig1, ncol)
  .Borders.LineStyle = xlNone 'supprime les bordures
  .Copy [A3].Offset(, ncol) 'sauvegarde TOUT le tableau vers la droite
  .Delete xlUp 'RAZ
End With
Set P = [A3].Resize(nlig, ncol)
P = t
'---liste des "Hiérarchie OTP" du 1er tableau (sans doublon)---
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To nlig
  If t(i, 3) <> "" Then d(t(i, 3)) = i 'repère la ligne
Next i
'---copie les lignes du 2ème tableau vers le 1er---
Set P1 = [A3].Offset(, ncol).Resize(nlig1, ncol)
For i = 1 To nlig1
  x = P1(i, 3)
  If x <> "" And d.Exists(x) Then
    j = d(x)
    P(j, "E") = P1(i, "E").FormulaR1C1
    P(j, "M") = P1(i, "M").FormulaR1C1
    P(j, "N") = P1(i, "N").FormulaR1C1
    P(j, "O") = P1(i, "O").FormulaR1C1
    P(j, "W") = P1(i, "W").FormulaR1C1
    P(j, "AJ") = P1(i, "AJ").FormulaR1C1
    P(j, "AS") = P1(i, "AS").FormulaR1C1
    P1.Rows(i).Copy
    P(j, 1).PasteSpecial xlPasteFormats 'copie les couleurs
  End If
Next i
P1.EntireColumn.Delete 'RAZ
'---bordures---
P.Borders(xlEdgeLeft).Weight = xlThin
P.Borders(xlEdgeTop).Weight = xlThin
P.Borders(xlEdgeRight).Weight = xlThin
P.Borders(xlEdgeBottom).Weight = xlMedium 'pourquoi pas...
P.Borders(xlInsideVertical).Weight = xlThin
P.Borders(xlInsideHorizontal).Weight = xlHairline
'---actualise les barres de défilement---
With Me.UsedRange: End With
[A1].Select
End Sub


Merci d'avance

Amicalement
Ana@s
 

Pièces jointes

Bonjour an@s,

Vous avez la tête dure, ce qu'on vous dit entre par une oreille et ressort par l'autre.

Mon code conserve les couleurs des lignes qui existaient avant la nouvelle importation.

Les lignes nouvelles créées sont incolores, pour les colorer il faut le faire à la main ou construire une usine à gaz.

Et il faudrait se donner des critères pour la coloration...

Mais il y a peut-être des amateurs d'usine à gaz sur ce forum 🙄

A+
 
Re,

Si les données que vous modifiez en colonne C existent dans le fichier à importer, leurs lignes seront conservées avec les couleurs.

Si elles n'existent pas eh bien leurs lignes seront purement et simplement supprimées.

C'est vous qui l'avez voulu ainsi, il ne faudrait pas l'oublier !

Et n'oubliez pas qu'il ne faut pas de doublons en colonne C...

A+
 
Bonsoir Job, le forum,
Je reviens vers vous à nouveau poursolliciter votre aide concernant le sujet des couleurs
L'importation fait disparaitre Les couleurs quand les données de la colonne C changent, c'est à dire en passant d'un chantier à autre les couleurs disparaissent chose qui fait buguer le code de calcule qui est lié au couleurs, 🙁
est ce qu'on peut pas faire références à plusieurs colonnes non pas seulement la colonne C pour pouvoir conserver les couleurs ??
C'est a dire si les donnes des colonnes A, B, C, D, E changent en ce moment on ne conserve pas les couleurs mais si une donnée par exemple da ligne est toujours la même on conserve les couleurs.
Trouvez moi s'il vous plait une solution à ce problème,
Je vous en serais eternellement reconnaissant

Cordialement
An@s
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
495
Retour