Vba: code pour recopier couleur et formules de la ligne précedente

Gouniaf

XLDnaute Nouveau
Bonjour à tous!
Débutant sous vba, j'ai crée un userform qui, une fois remplis, inscrit des valeurs sur une ligne d'un tableau excel.
Or je voudrais que soit appliqués à cette ligne les couleurs et les formules de la ligne précédente (fonction somme par exemple).
J'avais pensé à ça:
For i = 1 To y
Cells(irow - 1, i).FormulaR1C1 = Cells(irow, i).FormulaR1C1
Cells(irow - 1, i).Color = Cells(irow, i).Color
Next

Sauf que cela ne fonctionne que pour les formules, la couleur de la nouvelle ligne est différente de celle de la précédente.

Auriez-vous une idée?

Merci, bonne journée à tous!
 

Banzai64

XLDnaute Accro
Re : Vba: code pour recopier couleur et formules de la ligne précedente

Bonjour

Ne connaissant pas le contexte de ton fichier
Voici ce que j'ai trouvé

VB:
Sub test()
Dim Y As Integer
Dim iRow As Long

  Y = 10
  iRow = 6
  
  For i = 1 To Y
    Cells(iRow, i).FormulaR1C1 = Cells(iRow - 1, i).FormulaR1C1
    Cells(iRow, i).Interior.ColorIndex = Cells(iRow - 1, i).Interior.ColorIndex
  Next
End Sub
 

Gouniaf

XLDnaute Nouveau
Re : Vba: code pour recopier couleur et formules de la ligne précedente

Bonjour,
Désolé mais ça ne fonctionne pas, je n'ai sûrement pas assez expliqué. Mon userform trouve la première ligne vide du tablea et rentre les données qui ont été saisies. Cependant, même s'il recopie correctement les formules, il persiste à vouloir mettre du vert en fond de cellule (un vert d'un goût douteux), alors que la couleur de la ligne précédente est différente (orange saumon, et là on ne critique pas la couleur!).
 

Gouniaf

XLDnaute Nouveau
Re : Vba: code pour recopier couleur et formules de la ligne précedente

Bonjour, j'ai finalement contourné le problème. J'ai enregistré une macro où je changeais la couleur d'une cellule puis j'ai copié celle-ci dans mon userform. Ca donne quelque chose de très lourd et pas très agréable à regarder mais ça marche:
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent6
.TintAndShade = 0.399975585192419
.PatternTintAndShade = 0
End With

En tout cas merci pour votre réactivité et vos réponses!
Bonne journée
 

Discussions similaires

Réponses
0
Affichages
137

Statistiques des forums

Discussions
312 103
Messages
2 085 306
Membres
102 859
dernier inscrit
Diallokass