2009-01-06 14 views
0

Je suis très novice en matière de création de macros et de programmation en général. J'ai une feuille de calcul de 38 onglets. 31 onglets sont pour les jours du mois. Je voudrais créer une macro qui invitera les utilisateurs avec un message d'avertissement chaque fois que "MCO" est sélectionné dans la colonne N pour chacun de ces 31 onglets. Est-ce possible?Invite utilisateur lorsque la cellule est modifiée

Merci

+0

Que signifie "MCO à tout moment"? Qu'est-ce que MCO et qu'est-ce que cela signifie de le sélectionner? –

Répondre

2

Il est possible, en utilisant un événement de niveau classeur SheetSelectionChange. Dans le module ThisWorkbook dans votre projet VBA collez le code suivant:

Option Compare Text 
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) 
    Dim SelectedCellsInColN As Range 
    ' Make a range of the cells in Target range that intersect with the cells in the N column 
    Set SelectedCellsInColN = Intersect(Target, Target.Parent.Range("N1:N" & CStr(Target.Parent.Rows.Count))) 

    If Not SelectedCellsInColN Is Nothing Then 
     ' The user has selected a cell in column N 
     Dim CurrCell As Range 
     For Each CurrCell In SelectedCellsInColN 
      ' If the cell's value contains mco (in any case) then prompt the user with a messagebox 
      If CurrCell.Value Like "*MCO*" Then 
       MsgBox "You've selected MCO" 
       ' Exit the sub so we don't keep bugging the user about it... 
       Exit Sub 
      End If 
     Next CurrCell 
    End If 
End Sub 

Fondamentalement, ce que le code est de regarder la fourchette cible pour voir si des cellules de la colonne N sont sélectionnées, et les boucles puis à travers l'un de ces cellules dans la colonne N qui sont sélectionnées pour voir si leur valeur contient MCO (vous pouvez vous débarrasser des étoiles si vous ne voulez qu'une invite lorsque la cellule contient juste "MCO"), et si oui, invite l'utilisateur et quitte.

Espérons que ça aide.

-Jon

0

Vous cherchez une solution macro ou une solution ABV. Les deux sont différents. Pour la macro exécutez les étapes en utilisant le macro recoder, pour une solution VBA commencez par la réponse de Jon

Questions connexes