Suppression de page, de ligne en VBA

Meosus

XLDnaute Nouveau
Bonjour à tous,

Je vient vers vous car je suis contraint d'avoir votre aide pour continuer.
J'ai un classeur dans lequel une page de garde ou y est inscrit le non des différentes feuille du classeur.
J'ai une feuille "récapitulatif" qui récapitule les feuilles du classeur avec plusieurs donné précise des feuilles sur une ligne (Ligne composé de:
- Nom de la feuille 1; total généré dans la feuille 1, etc...
- Nom de la feuille 2; total generé dans la feuille 2, etc...)

Sur la feuille "récapitulatif" un bouton permet de lancer la macro de suppression.

Je souhaiterai que cette macro réalise:

Suppression de la feuille sélectionner à partir d'une liste déroulante déjà crée via un userform,
Ensuite elle supprime la feuille, le nom de la feuille sur la page de garde et la ligne dans la feuille "récapitulatif"

Ci joint le code que j'ai récupérer, et modifier un peu, il fonctionne pas terrible même pas du-tout.
Pouvez-vous m'aider sur ce sujet:

Code:
Sub MacroSuppression()
'
'
' Macro enregistrée le 28/07/2012 par Meosus
'

' Suppression armoire

    Dim Msg, Style, Title, Help, Ctxt, Response, MyString
    Msg = "Attention l'armoire sera définitivement supprimée !!"
    Style = vbOKCancel
    Title = "Confirmer la suppression ?"
    Response = MsgBox(Msg, Style, Title, Help, Ctxt)
    If Response = vbCancel Then
    End
    End If
    Dim n
    n = Sheets.Count
    If n <= 3 Then
    End
    End If
    Application.ScreenUpdating = False
    ListeDeroulante1.Show
    If Range("PG!B151").Value = "" Then
       End
    End If
    ResultatChoix = Range("PG!B151").Value
    Sheets(ResultatChoix).Select
    Application.DisplayAlerts = False
    ActiveWindow.SelectedSheets.Delete
    Application.DisplayAlerts = True
    ' Nettoyage feuille récap
    Sheets("Récapitulatif").Select
    Range("A19:Y40").Select
    For Each oCell In Selection
    If IsError(oCell) Then
    If oCell = CVErr(xlErrRef) Then
    oCell.ClearContents
    End If
    End If
    Next oCell
    Range("A19:V40").Select
    Selection.Sort Key1:=Range("A19"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    Application.Goto Reference:="LISTE_DES_FEUILLES"
    For Each oCell In Selection
    If oCell = ResultatChoix Then
    oCell.ClearContents
    End If
    Next oCell
    Range("A152:A167").Select
    Selection.Sort Key1:=Range("A152"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    Sheets("Récapitulatif").Select
    Range("A1").Select
    Application.ScreenUpdating = True

End Sub

Cordialement

Meosus
 

kllmoon

XLDnaute Occasionnel
Re : Suppression de page, de ligne en VBA

Sans pièce jointe je ne peux t'aider que partiellement

Pour effacer une ligne : Rows("x:x").Delete Shift:=xlUp
pour effacer une feuille : Sheets(x).Delete

Pour ta feuille, tu dois déclarer une variable publique pour qu'elle puisse être transposée d'une macro a une autre, à placer dans un module quelquonque : Public mavariable As Integer

Tu dois ensuite utiliser ton userform pour définir mavariable et par la suite Sheets(mavariable).delete
Pour la ligne je figure que tu devra utiliser une autre variable puis la fonction rechercher pour l'effacer.

Voilà la limite de l'aide possible sans pièce jointe.
 

Meosus

XLDnaute Nouveau
Re : Suppression de page, de ligne en VBA

Salut Kllmoon,

Merci de ta réponse,

Je te joint le fichier pour que tu comprenne.

La liste des feuilles sur la page de garde est en ligne "A151" à "A166"


Cordialement

Meosus
 

Pièces jointes

  • BILAN_PUISSANCE-v4-000.xls
    280 KB · Affichages: 55

Discussions similaires

Statistiques des forums

Discussions
312 432
Messages
2 088 376
Membres
103 837
dernier inscrit
philmyl04