VBA Remplacer valeur selon couleur de celulle

Résolu
Bonjour,

Je cherche une solution VBA pour résoudre le problème suivant : j'ai une zone de cellule qui est sélectionnée. A l'intérieur de celle-ci j'ai des cellules bleues, et des cellules blanches (sans aucun contenu pour les 2). J'aimerais que ma macro me remplace le vide ("") par des "1" uniquement pour les cellules blanches.

Pouvez-vous m'aider ?

Merci d'avance

5 réponses

  1. bonjour,

    comment ta zone est elle sélectionnée??
    Si c'est manuellement, je ne crois pas que ce soit pas possible.
    par contre si la sélection peut se faire par la macro, je sais faire.
    0
    1. Re,

      essaie ca :

      Sub SelectionEtConcatenation()

      Dim Plage As Range, Cel As Range

      Set Plage = Application.InputBox("Sélectionnez une plage !", "Sélection de cellules", Type:=8)

      For Each Cel In Plage

      If Cel.Interior.ColorIndex = xlNone Then
      Cel.Value = 1
      End If
      Next

      End Sub
      0
      1. Modérateur
        Salut melanie,
        Joli code ;-)
        Bonne journée
        0
    2. Je sélectionne ma zone comme suit :

      Cells.Find("1° trimestre").Activate
      ActiveCell.Offset(2, 0).Select
      ActiveCell.CurrentRegion.Select

      Ainsi la zone que je souhaite sélectionner est activée...et donc l'idée c'est de modifier uniquement les cellules blanches de cette zone.

      Merci pour la réponse en tout cas, je vais tester ça
      0
      1. Ca marche très bien mais comment puis-je faire pour ne pas que ça me pose la question de la zone à sélectionner (mais que ça me prenne automatiquement la zone qui est activée) ?

        Merci
        0
        1. Re,

          alors le code est plutôt :

          Cells.Find("1° trimestre").Activate
          ActiveCell.Offset(2, 0).Select
          Set tbl = ActiveCell.CurrentRegion

          For Each cel In tbl
          If cel.Interior.ColorIndex = xlNone Then
          cel.Selection = 1
          End If
          Next
          0
          1. jai fait une petite erreur, c plutot :
            Cells.Find("1° trimestre").Activate
            ActiveCell.Offset(2, 0).Select
            Set tbl = ActiveCell.CurrentRegion

            For Each cel In tbl
            If cel.Interior.ColorIndex = xlNone Then
            cel.value = 1
            End If
            Next
            0
          2. Ca fonctionne ! Merci beaucoup pour le code :)
            0
          3. re rien juste indique que le sujet est clos!
            0