Sheets(x).Delete via VBA fait disparaître le formulaire
Bonsoir le forum, bonsoir tous le monde
Je travaille sur un fichier pour une association, ce fichier a pour vocation d'imprimer des reçus de dons en format PDF, le formulaire qui lance cette fonctionnalité propose plusieurs options d'impression (d'où l'utilisation du formulaire par ailleurs).
J'ai plus ou moins réussi à faire ce que je voulais mais je coince sur un petit détail assez gênant, à savoir quand je lance ma procédure d'impression à partir de mon formulaire et que j'arrive sur la partie suppression des onglets générés le formulaire se "cache", à savoir qu'il est toujours actif quelque part mais plus visible à l'écran (à ce moment la plus moyen de cliquer sur une cellule de la feuille active ce qui prouve bien que le formulaire est toujours la) Il suffit que je change de fenêtre et que je reviens sur Excel pour que le formulaire s'affiche à nouveau.
Dans ma macro j'utilise la fonction DoEvent qui me permet de mettre à jour le champ d'indication d'avancement de la macro mais le fait de commenter ceci ne change rien au problème.
Pour des raisons de confidentialité je ne peux pas poster le fichier mais néanmoins voici le code de la procédure posant problème Merci par avance à tous ceux qui voudrait m'aider
Private Sub Export_RF_simple_PDF()
Dim iloop%
Dim numIndex%
Dim numIndexRF%
Dim tabNomFeuille() As String
Dim lstO As ListObject
Dim cellule As Range
Dim chaineNomFeuille$
Dim ws As Worksheet
numIndex = 0
ReDim tabNomFeuille(Me.Cb_select_RF.ListCount - 1)
Set lstO = ThisWorkbook.Sheets("Listing").ListObjects("Tab_RF")
' Sortie de la procédure si le tableau RF ne contient aucune valeur
If lstO.ListRows.Count = 1 _
And lstO.DataBodyRange.Cells(1, listing.num_RF).Value = "" Then
Me.Lb_etat.Visible = True
Call Gestion_champ_indication(CodeCouleurChampIndic.couleurRouge, CodeMessageChampIndic.erreurTabRF)
Exit Sub
End If
m_execMultiRF = True
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each cellule In lstO.ListColumns(listing.num_RF).DataBodyRange
If Not cellule.Value = "" Then
' Recherche du numéro de ligne du tableau correspondant au numéro RF
numIndexRF = Recherche_index_ligne(cellule.Value)
' Copie de la feuille BASE et renommage selon nom RF
ThisWorkbook.Sheets("BASE").Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = cellule.Value
' Remplissage des champs correspondant au RF sélectionné sur la feuille BASE
Call Remplissage_BASE(numIndexRF, cellule.Value)
' Affichage message d'indication
Me.Lb_etat.Visible = True
Call Gestion_champ_indication(CodeCouleurChampIndic.couleurBleue, CodeMessageChampIndic.copieFeuilleEnCours, numIndex)
tabNomFeuille(numIndex) = cellule.Value
numIndex = numIndex + 1
End If
DoEvents
Next cellule
numIndex = 0
For Each cellule In lstO.ListColumns(listing.num_RF).DataBodyRange
' Nouvelle boucle pour sélectionner toutes les feuilles RF pour impression
If Not cellule.Value = "" Then
If numIndex = 0 Then
Worksheets(cellule.Text).Select
Else
Worksheets(cellule.Text).Select Replace:=False
End If
End If
numIndex = numIndex + 1
Next cellule
' Affichage message d'indication
Call Gestion_champ_indication(CodeCouleurChampIndic.couleurBleue, CodeMessageChampIndic.impressionEnCoursSimpleRF)
DoEvents
' Export de la feuille sélectionnée en format PDF
Call Edition_vers_PDF_multi
' ##### PARTIE QUI POSE PB
' Suppression des feuilles générées et affichage message d'indication
For numIndex = 0 To Me.Cb_select_RF.ListCount - 1
ThisWorkbook.Sheets(tabNomFeuille(numIndex)).Delete
Call Gestion_champ_indication(CodeCouleurChampIndic.couleurBleue, CodeMessageChampIndic.copieFeuilleEnCours, numIndex)
DoEvents
Next numIndex
' ##### FIN
' Affichage message d'indication final
Call Gestion_champ_indication(CodeCouleurChampIndic.couleurVerte, CodeMessageChampIndic.impressionTermineMultiRF)
Application.DisplayAlerts = True
Application.ScreenUpdating = True
m_execMultiRF = False
End SubOui désolé il se trouve que sur le PC sur lequel je travaillai il n'y avait aucune option d'édition de post (balise code, emoji, etc.), j'ai du changé de PC pour corriger le post
Pourtant il tournait sur chrome, bizarre...
