Simplifier un code VBA

Résolu
Mixou04 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
Mixou04 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

3 réponses

Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   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
Mixou04 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
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
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, peux-tu partager ton code, en utilisant les balises de code?
0
Mixou04 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
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
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Mixou04 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
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
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Salut yg_be,
Sorry de t'avoir oublie t'a leur
0
Mixou04 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
Super merci pour ton aide ça marche à merveille :)
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re bonjour Mixou04 ,

Vous avez déjà demande ici et je vous ai repondu. Probleme de mémoire???

https://forums.commentcamarche.net/forum/affich-36314345-comment-faire-plus-simple#p36314475
0