[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. 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
    1. 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. 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
      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. 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
      4. 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. 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
        2. 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