Bogues de VBA
Fermé
ButteDuLac
Messages postés
495
Date d'inscription
jeudi 5 mars 2009
Statut
Membre
Dernière intervention
24 octobre 2020
-
5 janv. 2017 à 17:27
ButteDuLac Messages postés 495 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 24 octobre 2020 - 17 janv. 2017 à 16:12
ButteDuLac Messages postés 495 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 24 octobre 2020 - 17 janv. 2017 à 16:12
A voir également:
- Application.displaystatusbar = false
- Vba range avec variable ✓ - Forum VB / VBA
- Vba dépassement de capacité ✓ - Forum Excel
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Mkdir vba ✓ - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
2 réponses
Utilisateur anonyme
5 janv. 2017 à 17:46
5 janv. 2017 à 17:46
Bonjour ButteDuLac,
Je n'ai pas le temps de voir tout ton message, mais pour moi,
la seule raison pour laquelle ton Range("C9").Value = "Tout"
ne veut pas marcher est que ta cellule C9 est Verrouillée et
ta feuille Excel protégée => modification interdite !
Pourtant, j'ai bien vu ton instruction DeprotFeuil_ColE_aff
mais est-ce que cette sub déprotège la feuille de ta cellule
C9 et pas une autre feuille ? Bien sûr, c'est évident que si
cette sub est vide ou mal écrite, la feuille de ta cellule C9
restera encore protégée (si elle l'était).
Attention : dans le 2ème code, tu as oublié les guillemets :
Range("C9").Value = Tout
Tu peux abréger ton instruction en : [C9] = "Tout"
Cordialement. :)
Je n'ai pas le temps de voir tout ton message, mais pour moi,
la seule raison pour laquelle ton Range("C9").Value = "Tout"
ne veut pas marcher est que ta cellule C9 est Verrouillée et
ta feuille Excel protégée => modification interdite !
Pourtant, j'ai bien vu ton instruction DeprotFeuil_ColE_aff
mais est-ce que cette sub déprotège la feuille de ta cellule
C9 et pas une autre feuille ? Bien sûr, c'est évident que si
cette sub est vide ou mal écrite, la feuille de ta cellule C9
restera encore protégée (si elle l'était).
Attention : dans le 2ème code, tu as oublié les guillemets :
Range("C9").Value = Tout
Tu peux abréger ton instruction en : [C9] = "Tout"
Cordialement. :)
ButteDuLac
Messages postés
495
Date d'inscription
jeudi 5 mars 2009
Statut
Membre
Dernière intervention
24 octobre 2020
40
Modifié par ButteDuLac le 5/01/2017 à 20:00
Modifié par ButteDuLac le 5/01/2017 à 20:00
Première partie résolue (merci à albkan).
Maintenant, reste ceci :
Ensuite, j'ai une macro à la sortie du classeur, qui ressemble à ça :
En général, elle fonctionne bien, mais par intermittence, je ne sais pas pourquoi, il arrive que quand j'ouvre Excel pour un autre classeur, la barre de formules n'est plus là, ou encore d'autres composantes, ou même qu'il soit en plein écran. Ce matin, on m'a informée que c'est arrivée à d'autres personnes (il s'agit d'un registre de documents utilisé par plusieurs employés).
Et à l'occasion, la barre de formule s'affiche, même si on est en plein écran...
Si vous pouvez m'éclairer, ce serait bien apprécié!!! Merci et bonne année!
Maintenant, reste ceci :
Ensuite, j'ai une macro à la sortie du classeur, qui ressemble à ça :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
' avant la fermeture
ActiveWindow.DisplayWorkbookTabs = True
Application.DisplayFormulaBar = True
Application.DisplayStatusBar = True
ActiveWindow.DisplayHeadings = True
Application.CommandBars(1).Enabled = True
Application.DisplayFullScreen = False
End Sub
En général, elle fonctionne bien, mais par intermittence, je ne sais pas pourquoi, il arrive que quand j'ouvre Excel pour un autre classeur, la barre de formules n'est plus là, ou encore d'autres composantes, ou même qu'il soit en plein écran. Ce matin, on m'a informée que c'est arrivée à d'autres personnes (il s'agit d'un registre de documents utilisé par plusieurs employés).
Et à l'occasion, la barre de formule s'affiche, même si on est en plein écran...
Si vous pouvez m'éclairer, ce serait bien apprécié!!! Merci et bonne année!
Je crois que tu n'as pas vu mon message #3, si ? Peux-tu confirmer
que ta macro Workbook_BeforeClose(...) est dans ThisWorkBook ?
Et confirmer que tu n'as pas de Application.DisplayAlerts = False
sans remise à True associée ?
ButteDuLac
Messages postés
495
Date d'inscription
jeudi 5 mars 2009
Statut
Membre
Dernière intervention
24 octobre 2020
40
>
Utilisateur anonyme
9 janv. 2017 à 15:45
9 janv. 2017 à 15:45
Bonjour albkan!
Merci et bonne année!
Malheureusement, oui, mon code est bien dans ThisWorkbook, et je n'ai pas de
Par contre, est-ce que je devrais??? Si oui, ça va où???
Merci!
Merci et bonne année!
Malheureusement, oui, mon code est bien dans ThisWorkbook, et je n'ai pas de
Application.DisplayAlerts
Par contre, est-ce que je devrais??? Si oui, ça va où???
Merci!
Utilisateur anonyme
>
ButteDuLac
Messages postés
495
Date d'inscription
jeudi 5 mars 2009
Statut
Membre
Dernière intervention
24 octobre 2020
10 janv. 2017 à 20:08
10 janv. 2017 à 20:08
Non, on utilise Application.DisplayAlerts seulement s'il y a une une bonne raison !
Je te conseille vivement de regarder l'aide VBA correspondante et de tout lire !
Je te conseille vivement de regarder l'aide VBA correspondante et de tout lire !
ButteDuLac
Messages postés
495
Date d'inscription
jeudi 5 mars 2009
Statut
Membre
Dernière intervention
24 octobre 2020
40
>
Utilisateur anonyme
17 janv. 2017 à 16:12
17 janv. 2017 à 16:12
Mais il n'y avait pas le code Display.Alert. Je l'avais ajouté pour faire un test, après votre réponse. Je l'ai retirée, car effectivement, aucunement utile dans mon dossier.
Le problème n'est toujours pas résolu! J'espère que quelqu'un trouvera.
J'ai pensé que ça pouvait être l'ordre dans lequel je présente mes commandes. J'ai testé plusieurs combinaisons, plusieurs ordres différents. Toujours un résultat aléatoire...
Le problème n'est toujours pas résolu! J'espère que quelqu'un trouvera.
J'ai pensé que ça pouvait être l'ordre dans lequel je présente mes commandes. J'ai testé plusieurs combinaisons, plusieurs ordres différents. Toujours un résultat aléatoire...
ButteDuLac
Messages postés
495
Date d'inscription
jeudi 5 mars 2009
Statut
Membre
Dernière intervention
24 octobre 2020
40
9 janv. 2017 à 15:51
9 janv. 2017 à 15:51
En fait, voici tout le code dans ThisWorkbook (j'ai ajouté un DisplayAlerts, mais ça ne semble rien changer) :
Ce que je remarque, c'est qu'à l'ouverture, ça va en plein écran, mais la barre de formules reste affichée, puis, si je navigue et revient au Menu, la barre de formules disparait, mais ça, ce n'est pas si grave. Le plus agaçant, c'est vraiment qu'à la fermeture, lorsqu'on ouvre par la suite un autre classeur, Excel a conservé les paramètres et que la barre de formules n'est plus là, ou encore les entêtes de lignes et colonnes, ou encore la fenêtre est toute petite (réduite).
Je n'y comprends rien!
Private Sub Workbook_Open()
Sheets("Menu").Activate
ActiveSheet.Protect ("***")
ActiveWindow.DisplayWorkbookTabs = False
Application.DisplayFormulaBar = False
Application.DisplayStatusBar = False
ActiveWindow.DisplayHeadings = False
Application.CommandBars(1).Enabled = False
Application.DisplayFullScreen = True
Application.DisplayAlerts = True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
' avant la fermeture
ActiveWindow.DisplayWorkbookTabs = True
Application.DisplayFormulaBar = True
Application.DisplayStatusBar = True
ActiveWindow.DisplayHeadings = True
Application.CommandBars(1).Enabled = True
Application.DisplayFullScreen = False
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _
Cancel As Boolean)
a = MsgBox("Voulez-vous réellement sauvegarder" & Chr(10) & "(Si oui, n'oubliez pas de remettre en lecture seule)", vbYesNo)
If a = vbNo Then Cancel = True
End Sub
Ce que je remarque, c'est qu'à l'ouverture, ça va en plein écran, mais la barre de formules reste affichée, puis, si je navigue et revient au Menu, la barre de formules disparait, mais ça, ce n'est pas si grave. Le plus agaçant, c'est vraiment qu'à la fermeture, lorsqu'on ouvre par la suite un autre classeur, Excel a conservé les paramètres et que la barre de formules n'est plus là, ou encore les entêtes de lignes et colonnes, ou encore la fenêtre est toute petite (réduite).
Je n'y comprends rien!
5 janv. 2017 à 18:52
Merci, j'ai pensé que vous diriez ça, mais oui, effectivement, la macro DeprotFeuil_ColE_aff déprotège bien la feuille où cette cellule est active.
J'ai modifié mon code, en attendant. J'ai ajouté quatre lignes, pour chaque ligne j'ai inscrit en colonne B « Vue actuelle : » et en colonne C, le texte associé au bouton. Puis, mon bouton masque les lignes non pertinentes et affiche seulement la ligne associée au bouton.
Mais ça aurait été plus simple de pouvoir écrire simplement dans la cellule C9 ce que je voulais!
Dans mon code, les guillemets étaient là quand je l'ai essayée. C'est juste un oubli quand j'ai copié-collé, car j'ai fait des essais sans les guillemets, au cas où (vu que j'avais vu un exemple sans guillemets sur un autre forum, malgré que je trouvais ça louche!
Par contre, je viens d'essayer avec [C9] = "Tout" et ça fonctionne! Mais essai numéro 2 avec Range("C9").Value = "Tout" et niet! Alors on va prendre le [C9] = "Tout"
Merci!!!!!
Reste maintenant la deuxième partie, si quelqu'un trouve...
5 janv. 2017 à 19:12
Ta sub Workbook_BeforeClose(...) m'a l'air correcte ; aussi, je me dis que
tu ne l'as peut-être pas placée au bon endroit ? Elle ne doit pas être dans
un module tel que Module1, ni dans le code d'une feuille, mais elle doit
être dans ThisWorkbook. Mais si c'est déjà le cas, ce message est inutile,
surtout que tu as indiqué que ça fonctionne bien par intermittence.
À tout hasard : si tu as une autre partie de code où tu as mis :
Application.DisplayAlerts = False, le fait de ne pas le mettre
à True ensuite (après un traitement) => erreurs inattendues.