2017-07-22 2 views
-1

Je suis nouveau à VBA et je suis encore en train d'apprendre. Ce que j'essaie d'accomplir semble assez facile mais j'ai de la difficulté. J'ai besoin d'écrire une macro qui cache automatiquement une ligne lorsqu'une date (n'importe quelle date) est entrée dans la cellule d'une colonne spécifique.Excel Macro pour masquer automatiquement les lignes lorsque la date est entrée dans une cellule de colonne spécifique

E.g. les données sont enregistrées dans les colonnes A: F. Lorsqu'une date "expédiée" est entrée dans G2, la ligne 2 se masque automatiquement.

Toute aide serait grandement appréciée.

Merci.

MCJ

+0

Can vous s'il vous plaît ajouter un exemple de code? –

Répondre

0

Le code VBA suivant permet de masquer la ligne associée si une cellule dans la colonne « G » est édité et modifié à une date (nombre) entre zéro et la date actuelle:

Option Explicit 

Private lastSelectedCell As Range 

Private Sub Worksheet_Activate() 
    Set lastSelectedCell = Range("A1") 
End Sub 

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    ' If the most recently selected cell was in column 6 ('G') 
    If (lastSelectedCell.Column = 6) Then 
     ' If the previously selected cell was a date on or before today 
     If ((lastSelectedCell.Value <= Date) And (lastSelectedCell.Value > 0)) Then 
      ' Hide the entire row 
      Rows(lastSelectedCell.Row).EntireRow.Hidden = True 
     End If 
    End If 
    Set lastSelectedCell = Target 
End Sub 
+0

Merci pour la réponse rapide. Cependant, cela ne fonctionne pas. Dit: "If (lastSelectedCell.Column = 6) Then" = Encore une fois je suis nouveau à ce sujet toute aide est grandement appréciée. –

+0

@MCJ La méthode 'Worksheet_Activate()' doit s'exécuter pour initialiser la variable 'lastSelectedCell'. Essayez d'enregistrer et de rouvrir le fichier '.xlsm' et l'erreur devrait disparaître. – VirtualMichael