Code vba detecter 1er cellule d'une couleur + texte

Luffy -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour le forum,

Je cherche un code VBA qui peut détecter la 1er cellule bleu (issu d'une MFC) dans une ligne et quand trouvé y écrire le contenu de la 1er cellule de la ligne. Ex Ligne 10 première cellule avec du bleu en J10 et écrire le texte en A10 et ainsi de suite jusqu'à ce qu'il ne trouve plus rien de texte dans la colonne A.

Si vous avez d'autre idée je suis prenneur. Merci pour votre aide.

10 réponses

  1. Luffy
     
    Merci pour les liens,

    J'ai bien récupéré le code couleur via le code (16777215). Pour la boucle je sèche, je continue à cherche ^^.
    0
  2. Luffy
     
    Vu que je bloque sur VBA je me demande si une formule type si.multiple peut être une solution. Par exemple je suis en M11 qui est m'a première cellule de couleur et j'écris Si cellule N11 vide et si A11 = no_couleur=16777215 alors A1 sinon vide.

    J'ai tenté ça mais j'ai une erreur =SI.MULTIPLE(R83="";S83=NO_COULEUR(16777215);"ok";"")

    Vous en pensez quoi ?
    0
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Pour les formules ce n'est pas mon fort.

      en vba avec l'exemple 6 mettre quelque chose comme cela:

        Var = FL1.Cells(NoLig, NoCol)
      If FL1.Cells(NoLig, NoCol).DisplayFormat.Interior.Color = 16777215 Then
      'mettre le code
      End If


      @+
      0
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour à tous,

    il faut déposer un fichier exemple sur cjoint.com et coller ici le lien fourni.
    On ne sait pas comment ça se présente, ni quel bleu, ni comment il est mis.
    eric
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Luffy
     
    Merci pour vos retours. Je vous joins un exemple via cjoint.

    https://cjoint.com/c/LCeiNotwgHg
    0
  6. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    Pourquoi ne pas poser la question là où tu as trouvé ce fichier ?
    Et quel est l'intérêt vu que les volets sont figés et que A est toujours visible ?
    De plus ça va déborder sur les colonnes adjacentes et rendra le planning incompréhensible.
    Sans moi...
    eric
    0
  7. Luffy
     
    Bonjour éric,

    J'ai posé la question ici car je suis plus coutumier de ce forum. L'intérêt est que ne voulant pas surchargé les colonnes à droite je vais en masquer certaines a terme. J'aurai bien voulu centrer au milieu le texte mais cela ma semblé plus simple de procédé par la détection de la 1er cellule bleue. Mais si vous avez d'autres idées je suis preneur.
    0
  8. Luffy
     
    Bonjour,

    Je voulais savoir si il était possible par un code vba de copier le contenu d'une cellule et le coller dans une autre cellule mais dont la position est indiquée dans une 3eme cellule.

    Ex: texte en A1 - à copier en B2 - B2 étant renseigné en C3 ?
    0
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      voilà

      Sub test()
      Range(Range("C3").Value).Value = Range("A1").Value
      End Sub
      


      as-tu regardé le post5?

      @+
      0
  9. Luffy
     
    J'ai regardé et essayé mais j'ai eu une erreur de type 9... Pour le coup j'ai trouvé via une formule comment trouver dans quelle colonne est la 1er cellule bleu.

    Est-il possible d'adapter ce code pour qu'il passe à la ligne d'en dessous jusqu'à en trouver une vide avec l'exemple 6 ?

    Merci encore du temps et de l'aide apportée.
    0
  10. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Comme ceci à adapter

    Sub For_Next_Plage()
    Dim FL1 As Worksheet, Cell As Range, NoCol As Integer, NoLig As Long
    Dim DerLig As Long, DerCol As Integer, Var As Variant
     
        Set FL1 = Worksheets("Feuil1")'adapter nom de la feuille
     
        'Détermine la dernière ligne renseignée de la feuille de calculs
        DerLig = Split(FL1.UsedRange.Address, "$")(4)
     
        'Détermine la dernière colonne renseignée de la feuille de calculs
        DerCol = Columns(Split(FL1.UsedRange.Address, "$")(3)).Column
     
        For NoLig = 1 To DerLig
            For NoCol = 1 To DerCol
                Var = FL1.Cells(NoLig, NoCol)
                If FL1.Cells(NoLig, NoCol).Interior.Color = 16777215 Then
    MsgBox Var 'ici tu fais ce que tu veux avec les cellules ayant cette couleur!!!
    End If
            Next
        Next
     End Sub

    0