Simplifier un code VBA

Résolu
Mixou04 Messages postés 11 Statut Membre -  
Mixou04 Messages postés 11 Statut Membre -
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. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    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...
    0
    1. Mixou04 Messages postés 11 Statut Membre
       
      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!
      0
  2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, peux-tu partager ton code, en utilisant les balises de code?
    0
    1. Mixou04 Messages postés 11 Statut Membre
       
      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
      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Mixou04 Messages postés 11 Statut Membre
         
        suggestion:
        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
        0
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Salut yg_be,
      Sorry de t'avoir oublie t'a leur
      0
    3. Mixou04 Messages postés 11 Statut Membre
       
      Super merci pour ton aide ça marche à merveille :)
      0