Simplifier un code VBA

Résolu
Bonjour,

Je suis débutant dans la programmation VBA et j'essaie de créer un code pour faire la chose suivante:

Je veux comparer la cellule F6 de ma feuille2 avec les cellules A6:A505 de ma feuille1.
Si par exemple la cellule A8 de ma feuille1 est égale à la cellule F6 de ma feuille2 alors je veux insérer le texte "Imprimé" dans la cellule Y8 de ma feuille1

J'ai réussit à faire le code avec la fonction if mais c'est trop long à faire vu la quantité de cellules. Comment puis-je faire plus simple?

Est-ce que quelqu'un peut m'aider? Merci d'avance

3 réponses

  1. Contributeur
    bonjour, peux-tu partager ton code, en utilisant les balises de code?
    1. Voilà mon code

      Sub Imprimer_1()
      '
      ' Imprimer_1 Macro
      '
          If Worksheets("Gamme op?ratoire").Range("F6") = Worksheets("Commandes").Range("A6") Then
              Worksheets("Commandes").Select
              Range("Y6").Select
              ActiveCell.FormulaR1C1 = "Imprim?"
              Sheets("Gamme op?ratoire").Select
      
          ElseIf Worksheets("Gamme op?ratoire").Range("F6") = Worksheets("Commandes").Range("A7") Then
              Worksheets("Commandes").Select
              Range("Y7").Select
              ActiveCell.FormulaR1C1 = "Imprim?"
              Sheets("Gamme op?ratoire").Select
          
          ElseIf Worksheets("Gamme op?ratoire").Range("F6") = Worksheets("Commandes").Range("A8") Then
              Worksheets("Commandes").Select
              Range("Y8").Select
              ActiveCell.FormulaR1C1 = "Imprim?"
              Sheets("Gamme op?ratoire").Select
              
          ElseIf Worksheets("Gamme op?ratoire").Range("F6") = Worksheets("Commandes").Range("A9") Then
              Worksheets("Commandes").Select
              Range("Y9").Select
              ActiveCell.FormulaR1C1 = "Imprim?"
              Sheets("Gamme op?ratoire").Select
              
         End If
         
      End Sub
    2. Contributeur
      @Mixou04suggestion:
      Sub Imprimer_1()
      '
      ' Imprimer_1 Macro
      '
      Dim ligne As Long, f6 As String
      f6 = Worksheets("Gamme op?ratoire").[f6]
      For ligne = 6 To 9
          If f6 = Worksheets("Commandes").Cells(ligne, "A") Then
              Worksheets("Commandes").Cells(ligne, "Y") = "Imprim?"
              Exit For
          End If
      Next ligne
      End Sub
    3. Salut yg_be,
      Sorry de t'avoir oublie t'a leur
    4. Super merci pour ton aide ça marche à merveille :)
  2. Bonjour,

    Y a-t-il une bonne raison(*) à vouloir le faire avec une macro ? Ce que tu veux peut se faire assez simplement avec une formule directement placée dans les cellules Y6:Y505 :
    =SI(Feuil2!$F$6=A6;"Imprimé";"")


    Xavier

    (*) Parmi les bonnes raisons, entre autre : vouloir s'entraîner, ou vouloir que le "imprimé" reste là même si on change la valeur de feuil2!F6...
    1. Bonjour Reivax962,
      Merci pour ta réponse. Mon problème est que le texte imprimé doit rester afficher. J’ai créer un bouton sur ma feuille2 qui imprime la page. Afin de savoir quelle page j’ai déjà imprimé le texte « imprimé » dans la feuille1 doit rester!