VBA Remplacer valeur selon couleur de celulle

Résolu
VBActor -  
melanie1324 Messages postés 1561 Statut Membre -
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. melanie1324 Messages postés 1561 Statut Membre 156
     
    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
  2. melanie1324 Messages postés 1561 Statut Membre 156
     
    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. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Salut melanie,
      Joli code ;-)
      Bonne journée
      0
  3. VBActor
     
    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
  4. VBActor
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. melanie1324 Messages postés 1561 Statut Membre 156
     
    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. melanie1324 Messages postés 1561 Statut Membre 156
       
      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. VBActor
       
      Ca fonctionne ! Merci beaucoup pour le code :)
      0
    3. melanie1324 Messages postés 1561 Statut Membre 156
       
      re rien juste indique que le sujet est clos!
      0