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
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
-
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 -
Contributeurbonjour, peux-tu partager ton code, en utilisant les balises de code?
-
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 -
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 -
-
-
-
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...