Événements WorkBook - Ne pas enregistrer avec Freeze Panes - Exemples de code VBA

Figer les volets à l'aide de VBA

J'ai récemment publié sur Geler les volets dans Excel, voici comment vous pouvez le faire en utilisant VBA :

Geler les lignes

 Rows("1:1").Sélectionnez ActiveWindow.FreezePanes = True 

Geler les colonnes

 Range ("A:A").Sélectionnez ActiveWindow.FreezePanes = True

Geler les lignes et les colonnes

 Range ("B2").Sélectionnez ActiveWindow.FreezePanes = True

Dégeler les volets

 ActiveWindow.FreezePanes = Faux 

Forcer l'enregistrement du classeur sans figer les volets

Excel nous permet de contrôler les choses à travers des événements. Cet article n'est pas une discussion détaillée sur ce que sont les événements ou leurs caractéristiques. Au lieu de cela, il donne un exemple d'événement WorkBook. Il s'agit d'événements organisés au niveau du classeur plutôt qu'au niveau d'une feuille de calcul particulière.

Grâce à VBA, nous pouvons contrôler ce qui se passe lors de certains événements, comme avant l'impression ou avant l'enregistrement. Un problème courant auquel je suis confronté est qu'un certain nombre de personnes avec qui je travaille n'aiment pas les fichiers avec Freeze Panes.

Donc, dans cet article, nous allons mettre en place un code qui vérifiera si Freeze Panes est activé et si c'est le cas, il n'enregistrera pas le fichier. Cela signifie que je dois l'enregistrer sans geler les vitres - pour que mes collègues soient heureux !!

La chose la plus importante à propos des événements de classeur est qu'ils doivent être enregistrés au bon endroit - au niveau du classeur.

Pour accéder au niveau du classeur, suivez les étapes ci-dessous :

1. Cliquez avec le bouton droit sur un classeur Excel - affichez le code :

2. Cela fera apparaître :

3. Double-cliquez sur « Ce classeur », puis sélectionnez « Cahier de travail » dans le premier menu déroulant sur le côté gauche :

Nous voyons que la valeur sur le côté gauche est maintenant passée à « Open » - avec du code pour l'événement Workbook Open. Ce code nous permettra de déterminer ce qui se passe lorsque le classeur s'ouvre pour la première fois.

Cependant, nous voulons contrôler ce qui se passe lorsque nous enregistrons le classeur. Changez donc la liste déroulante de droite en « Avant d'enregistrer ». L'écran ressemblera maintenant à :

Nous insérons maintenant le code suivant après la déclaration :

Si ActiveWindow.FreezePanes = True Then MsgBox "Freeze Panes is on - File is NOT SAVED" Cancel = True End If

Pour que le code complet ressemble maintenant à :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If ActiveWindow.FreezePanes = True Then MsgBox "Freeze Panes is on - File is NOT SAVED" Cancel = True End If End Sub

Enregistrez maintenant le fichier, puis activez Geler les volets dans n'importe quelle fenêtre. Ensuite - RESAVEZ le fichier. Une boîte de message apparaîtra indiquant que "Freeze Panes" est activé - et le fichier n'est pas enregistré.

En effet, le fichier ne sera pas enregistré tant que Freeze Panes n'aura pas été supprimé.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave