Copier la couleur d'une cellule avec fonction si?

Bonjour,

J'aimerais pouvoir faire ceci:

Dans une feuille certaines cellules sont remplies et avec un fond coloré, d'autres non .

Dans une seconde feuille, j'aimerais pouvoir copier (avec la couleur de cellule!) les cellules de la première feuille si celles ci sont remplies .

J'arrive avec la fonction si et estvide à copier le contenu des cellules remplies mais pas leur couleur de fond

Une piste?

merci!

Bonjour Eole,

A l'heure actuelle, Google Sheets ne dispose pas d'une fonction intégrée permettant de copier la couleur d'une cellule à l'aide d'une formule. Les formules de Google Sheets travaillent avec les valeurs et les données, mais pas avec la mise en forme.

Cependant, vous pouvez le faire en utilisant des scripts Google Apps, un exemple de code qui pourrait accomplir cette tâche :

function copyCellColors() {
  var sourceSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Feuille 1"); // nom de la feuille source
  var targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Feuille 2"); // nom de la feuille cible
  var range = sourceSheet.getDataRange(); // plage de cellules à copier
  var values = range.getValues(); // obtenir les valeurs
  var colors = range.getBackgrounds(); // obtenir les couleurs

  for(var i = 0; i < values.length; i++) {
    for(var j = 0; j < values[i].length; j++) {
      if(values[i][j] !== "") { // si la cellule n'est pas vide
        targetSheet.getRange(i+1, j+1).setValue(values[i][j]); // copier la valeur
        targetSheet.getRange(i+1, j+1).setBackground(colors[i][j]); // copier la couleur
      }
    }
  }
}

Ce script copie les valeurs et les couleurs des cellules non vides de la "Feuille 1" vers la "Feuille 2". Vous devez exécuter ce script chaque fois que vous voulez mettre à jour les données dans la "Feuille 2". Ce script ne fonctionne que pour les cellules non vides. Si une cellule dans la feuille source est vide, aucune couleur n'est copiée.

Re,

Si vous voulez réaliser ça en vba, vous pouvez tester en utilisant ce code :

Sub CopyCellColors()
    Dim SourceSheet As Worksheet
    Dim TargetSheet As Worksheet
    Dim c As Range
    Dim SourceRange As Range
    Dim TargetRange As Range

    Set SourceSheet = ThisWorkbook.Sheets("Feuille1") 'nom de la feuille source
    Set TargetSheet = ThisWorkbook.Sheets("Feuille2") 'nom de la feuille cible

    'définir la plage de cellules dans la feuille source
    Set SourceRange = SourceSheet.Range("A1:C10") 'à adapter à votre besoin

    'boucler à travers chaque cellule dans la plage
    For Each c In SourceRange
        'si la cellule n'est pas vide, copier la valeur et la couleur
        If c.Value <> "" Then
            'définir la cellule correspondante dans la feuille cible
            Set TargetRange = TargetSheet.Range(c.Address)
            TargetRange.Value = c.Value
            TargetRange.Interior.Color = c.Interior.Color
        End If
    Next c
End Sub

Cette macro copiera les valeurs et les couleurs des cellules de "Feuille1" à "Feuille2" pour les cellules qui ne sont pas vides. Vous devez adapter le nom des feuilles et la plage de cellules dans la feuille source (SourceRange) à vos besoins. J'espère que cela vous aidera.

Bonjour

Merci pour le script, je vais essayer en mettant un declancheur à l'ouverture!

Bonne soirée

Rebonjour,

Est ce que c'est possible que cela ne copie que les cellules d'une certaine couleur?

Rechercher des sujets similaires à "copier couleur fonction"