Bonjour ExcelDownloadéen.nes
J'ai un petit soucis que je n'arrive pas à régler sur Excel et j'espère trouver ici une solution au mieux et des conseils au pire pour améliorer ma macro.
Voici le problème :
J'ai un formulaire avec lequel je commande la suppression d'une feuille.
Lorsque la feuille sélectionnée est supprimée, le formulaire disparait alors
Je me doc vois obligé de partir de la feuille et d'y retourner pour le voir réapparaitre (j'ai un code pour cela, voir plus bas).
Et comme cela ne vous parlera pas plus que cela sans le code que j'ai rédigé, voici ce dernier:
La feuille elle-même contient le code ci-dessous. Je remplis la liste des feuille à partir d'une liste que je crée au fur et à mesure que mes feuilles sont créées. Cela me permet de conserver cette liste, même après fermeture de mon classeur Excel.
Gestionnaire : Nom de mon formulaire
Liste_Feuilles : ListBox qui contient la liste des feuilles enregistrées à la colonne 'O' de la feuille.
Gestionnaire s'affiche et Liste_Feuilles se met donc à jour à chaque fois que je rentre sur la feuille. Dans les autres feuilles, je code pour faire disparaitre Gestionnaire (Gestionnaire.Hide).
J'ajoute deux captures d'écran avant et après le déroulement du code :
AVANT:
APRES:
Pour information, j'ai déjà essayé de sélectionner une autre page et de revenir pour dérouler à nouveau le code de sélection de la page ou juste d'ajouter Gestionnaire.Show False à la toute fin du code. De même j'ai déjà essayé en supprimant mes commandes de suppression de mise à jour d'affichage/désactivation des messages d'alerte.
Mais rien à faire: pas moyen de faire réapparaitre Gestionnaire autrement qu'en partant manuellement de la page et d'y retourner.
Auriez-vous une idée de la raison de mon tourment?
Merci par avance!
J'ai un petit soucis que je n'arrive pas à régler sur Excel et j'espère trouver ici une solution au mieux et des conseils au pire pour améliorer ma macro.
Voici le problème :
J'ai un formulaire avec lequel je commande la suppression d'une feuille.
Lorsque la feuille sélectionnée est supprimée, le formulaire disparait alors
Je me doc vois obligé de partir de la feuille et d'y retourner pour le voir réapparaitre (j'ai un code pour cela, voir plus bas).
Et comme cela ne vous parlera pas plus que cela sans le code que j'ai rédigé, voici ce dernier:
VB:
Private Sub Retrait_Liste_Click()
Dim feuil_select$
Dim list_pt%
'Si aucun élément sélectionné
If IsNull(Liste_Feuilles.Value) Then
MsgBox ("Veuillez sélectionner un élément de la liste que vous souhaitez supprimer.")
Exit Sub '***QUITTER***
End If
'Initialisation des variables
feuil_select = Liste_Feuilles.Value
list_pt = 0
'Repérer la position de la valeur sélectionnée dans la liste
While feuil_select <> Liste_Feuilles.Column(0, list_pt)
list_pt = list_pt + 1
Wend
'Cacher la mise à jour des alertes/de l'affichage le temps de la fonction
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
'Retirer l'élément de la liste à la position correspondante
Liste_Feuilles.RemoveItem list_pt
'Retirer la feuille dont le nom est sélectionné
Worksheets(feuil_select).Delete
'Retirer le nom de la feuille dans la liste d'enregistrement
list_pt = list_pt + 2
Cells(list_pt, 15).Select
Selection.Delete Shift:=xlUp
'Réactiver la mise à jour des alertes/affichage
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
End Sub
La feuille elle-même contient le code ci-dessous. Je remplis la liste des feuille à partir d'une liste que je crée au fur et à mesure que mes feuilles sont créées. Cela me permet de conserver cette liste, même après fermeture de mon classeur Excel.
Code:
Private Sub Worksheet_Activate()
Dim pointeur%
Dim val_list$
'Réinitialiser le formulaire Gestionnaire
Gestionnaire.Liste_Feuilles.Clear
Gestionnaire.Show False
pointeur = 2
'Remplir la Liste_Feuilles avec les éléments de la liste enregistrée
While Cells(pointeur, 15).Value <> ""
val_list = Cells(pointeur, 15)
Gestionnaire.Liste_Feuilles.AddItem val_list
pointeur = pointeur + 1
Wend
End Sub
Gestionnaire : Nom de mon formulaire
Liste_Feuilles : ListBox qui contient la liste des feuilles enregistrées à la colonne 'O' de la feuille.
Gestionnaire s'affiche et Liste_Feuilles se met donc à jour à chaque fois que je rentre sur la feuille. Dans les autres feuilles, je code pour faire disparaitre Gestionnaire (Gestionnaire.Hide).
J'ajoute deux captures d'écran avant et après le déroulement du code :
AVANT:
APRES:
Pour information, j'ai déjà essayé de sélectionner une autre page et de revenir pour dérouler à nouveau le code de sélection de la page ou juste d'ajouter Gestionnaire.Show False à la toute fin du code. De même j'ai déjà essayé en supprimant mes commandes de suppression de mise à jour d'affichage/désactivation des messages d'alerte.
Mais rien à faire: pas moyen de faire réapparaitre Gestionnaire autrement qu'en partant manuellement de la page et d'y retourner.
Auriez-vous une idée de la raison de mon tourment?
Merci par avance!