Je travaille sur un formulaire en VBA pour un document Word. J'apprends au fur et à mesure. J'ai une liste déroulante où vous pouvez sélectionner un élément de la liste. Fondamentalement, je veux que le document imprime 4 copies si l'article "Homestretch" est sélectionné et 3 copies pour tout le reste qui est sélectionné ou tapé dans la zone de liste déroulante.Instruction If et ElseIf dans VBA
J'ai les 4 copies imprimant parfaitement quand je choisis Homestretch, mais si je choisis n'importe quoi autrement il n'imprimera pas. Notez également que ceci est sous la fonction de clic sur le bouton de commande et je veux seulement que ceci s'exécute si la case ckbPrint est cochée. Voici le code ci-dessous. Merci.
If Me.ckbPrint.Value = True Then
If cbxCarrier.Value = "Homestretch" Then
ActiveDocument.PrintOut copies:=4
ElseIf cbxCarrier.Value <> "Homestretch" Then
ElseIf Me.ckbPrint.Value = True Then
ActiveDocument.PrintOut copies:=3
End If
End If
Félicitations pour avoir évité le test explicite '{bool-expression} = True', mais alors ... vous comptez sur la valeur du membre par défaut pour' ckbPrint', mais vérifiez explicitement 'cbxCarrier.Value'. Je voudrais également renflouer tôt avec 'If Not Me.ckbPrint.Value Then Exit Sub', et supprimer un niveau d'indentation. L'upvote va supprimer la duplication 'ActiveDocument.PrintOut'. Bon travail! –
Merci! Cela a fonctionné parfaitement et il est très facile de comprendre ce qui se passe ici. Je suppose que j'étais juste en train de le penser. Merci encore! – Christopher