[VBA et Excel]

Résolu
Bonjour,

J'ai essayé avec le générateur de macro d'Excel de créer une formule conditionnelle.
En regardant dans le code, je ne retrouve pas ma formule.

On ne peut pas le faire ?

Merci

9 réponses

  1. Ca bloque sur le IF déjà, je suis un peu perdu. Tu peux m'aider.
    0
    1. For i = 2 To 1047
      suivante = i + 1
      If Cells(i, 1) = Cells(suivante, 1) Then
      Cells(i, 1).Interior.ColorIndex = 5
      Cells(suivante, 1).Interior.ColorIndex = 5
      End If
      Next
      0
    2. Parfait ;)

      Merci
      0
  2. Salut essayé également comme ça

    IF(SUMIF($B$2:$B$" & ligne & ",B2,$E$2:$E$" & ligne & ")>1) then
       ActiveCell.Interior.ColorIndex = 5
    End If


    Mais ca ne veut pas :s
    0
    1. Bonjour,
      Quelles cellules doivent etre colorées?

      a+

      jéjé
      0
    2. si se sont les cellules identiques il faut mettre :
      Cells(i, 1).Interior.ColorIndex = 5
      Cells(suivante, 1).Interior.ColorIndex = 5

      à la place de
      Cells(1, 1).Interior.ColorIndex = 5
      0
  3. J'ai essayé comme ca

    Range("A2").Select
    For i = 2 To 1047
    suivante = i + 1
    If Cells(i, 1) = Cells(suivante, 1) Then
    Cells(1, 1).Interior.ColorIndex = 5
    End If
    Next

    Mais ca ne marche pas, ca me surligne que la cellule A1
    0
    1. Oui, je sais le faire par excel, mais j'ai besoin de passer par les commandes vba ;)
      C'est vb intégré a un vieux excel 97
      0
      1. bonjour

        Sub transpose()
        'l'equivalent de =NB.SI($A$2:$A$1037;A2)>1 est

        trouve = 0

        For i = 2 To 1037

        If Cells(i, 1) = Cells(2, 1) Then
        trouve = trouve + 1
        End If

        Next

        'le resultat se trouve dans "trouve" je je mets dans B2
        Cells(2, 2) = trouve

        End Sub

        a+

        jéjé
        0
    2. Je recherche dans une liste si plus d'une fois apparait une valeur et je met une couleur à la cellule
      0
      1. Contributeur
        Tu peux très bien faire ça en passant par la mise en forme conditionnelle, pas besoin de macro.
        Quelle est ta version d'Excel ?
        0
    3. Et si je veux mettre un trucs plus complexe genre
      NB.SI($A$2:$A$1037;A2)>1
      plutot que x = 5 :D

      ;)
      0
      1. Contributeur
        Que cherches-tu exactement à faire, parce que là j'ai un peu du mal à comprendre. Ta formule semble légèrement incohérente.... Enfin c'est mon avis
        0
    4. bonjour pour une mise en forme conditionnelle voici le code que tu peux generer toi meme :

      Sub mise_en_forme_conditionnelle()

      'premiere condition
      x = 5

      If Cells(1, 1).Value = x Then

      Cells(1, 1).Interior.ColorIndex = 5

      With Cells(1, 1).Font
      .Name = "Arial"
      .Size = 8
      .Italic = True
      .Bold = True
      .ColorIndex = 8
      End With

      End If
      End Sub

      evidement il y a d'autres options

      a+

      jéjé
      0
      1. Je voulais mettre ceci dans la formule conditionelle
        =NB.SI($A$2:$A$1037;A2)>1


        Et le code que je vois dans la macro est
        Selection.Copy
        Range("A3").Select
        ActiveWindow.ScrollRow = 1017
        Range("A3:A1037").Select
        Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=False
        Range("A2").Select
        Application.CutCopyMode = False


        Merci
        1
        1. bonjour

          Sub transpose()
          'l'equivalent de =NB.SI($A$2:$A$1037;A2)>1 est

          trouve = 0

          For i = 2 To 1037

          If Cells(i, 1) = Cells(2, 1) Then
          trouve = trouve + 1
          End If

          Next

          'le resultat se trouve dans "trouve" je je mets dans B2
          Cells(2, 2) = trouve

          End Sub

          a+

          jéjé
          0
      2. Contributeur
        Bonjour,

        dis-nous exactement ce que tu cherches à faire, afin que nous puissions t'aider.

        Peux-tu mettre également le code qui a été généré par l'enregistreur de macro ?

        Cordialement.
        0