Bonjour,
ci dessous ma macro qui me permet de supprimer une feuille, des lignes sur d'autres feuilles. La macro fonctionne très bien quand on rentre un nom de salarié. Par contre quand je dis annuler à l'inputbox, là ça pose problème. J'ai essayer d'y incorporer un exit sub mais je n'arrive pas à le placer au bon endroit. Je pense qu'il faut modifier la macro pour pouvoir y rajouter l'exit sub mais là ça dépasse mes compétences.
Merci pour votre aide.
ci dessous ma macro qui me permet de supprimer une feuille, des lignes sur d'autres feuilles. La macro fonctionne très bien quand on rentre un nom de salarié. Par contre quand je dis annuler à l'inputbox, là ça pose problème. J'ai essayer d'y incorporer un exit sub mais je n'arrive pas à le placer au bon endroit. Je pense qu'il faut modifier la macro pour pouvoir y rajouter l'exit sub mais là ça dépasse mes compétences.
Merci pour votre aide.
Code:
Sub Supp()
Dim Arret As Boolean
Dim Ws As Worksheet
Dim Pers As String
Dim n As Integer
Dim c As Range
Sheets("parametrage").Select
Pers = InputBox("Personne à supprimer (EN MAJUSCULE)", "SUPPRESSION")
'Si l'utilisateur ne clique pas sur annuler ou n'a pas entré un mot vide
If Pers <> "" Then
'ici c'est une simple précaution pour avertir l'utilisateur
If MsgBox("Vous êtes certain de supprimer " & Pers & "?" & vbNewLine & "Action irréversible", vbYesNo + vbDefaultButton2 + vbExclamation) = vbYes Then
'On parcour chaque feuille du classeur
For Each Ws In ThisWorkbook.Worksheets
With Ws.UsedRange
'on fait une boucle de recherche sur la plage utilisée de chaque feuille
Do
'ici on fait la recherche à l'aide de la méthode Find (Voir l'Aide)
Set c = .Find(Pers, LookIn:=xlValues, LookAt:=xlWhole)
'si on trouve la personne, c est la cellule trouvée avec Find
If Not c Is Nothing Then
'on supprime toute la ligne
c.EntireRow.Delete
'on incrémente notre compteur n
n = n + 1
'si on ne trouve plus de personne sur la feuille Ws, on arrête la recherche sur la feuille Ws, logique non?
Else
Arret = True
End If
Loop While Not Arret
End With
Arret = False
'on passe à la feuille suivante
Next Ws
Else
MsgBox "action annulée"
End If
Else
MsgBox "Entrez un nom non vide"
End If
Sheets("JANV").Unprotect ("1207")
Sheets("FEV").Unprotect ("1207")
Sheets("MARS").Unprotect ("1207")
Sheets("AVRIL").Unprotect ("1207")
Sheets("MAI").Unprotect ("1207")
Sheets("JUIN").Unprotect ("1207")
Sheets("JUILLET").Unprotect ("1207")
Sheets("AOUT").Unprotect ("1207")
Sheets("SEPT").Unprotect ("1207")
Sheets("OCT").Unprotect ("1207")
Sheets("NOV").Unprotect ("1207")
Sheets("DEC").Unprotect ("1207")
Sheets("JANV").Activate
Dim derniereLigne As Long
Dim myRange As Range
'feuille de janvier
derniereLigne = Range("A" & Rows.Count).End(xlUp).Row 'n° de la dernière ligne non vide de la colonne A
Range("A" & Rows.Count).End(xlUp).Offset(1).Select 'sélection de la première cellule vide de la colonne A
Dim Ligne1
Dim Ligne2
' il manque de donner des valeurs aux variables
Ligne1 = ActiveCell.Row
Ligne2 = ActiveCell.Row - 4
Rows(Ligne1 - 1 & ":" & Ligne2).Select
Selection.Delete
'feuille de février
Sheets("FEV").Activate
derniereLigne = Range("A" & Rows.Count).End(xlUp).Row 'n° de la dernière ligne non vide de la colonne A
Range("A" & Rows.Count).End(xlUp).Offset(1).Select 'sélection de la première cellule vide de la colonne A
Dim Ligne3
Dim Ligne4
' il manque de donner des valeurs aux variables
Ligne3 = ActiveCell.Row
Ligne4 = ActiveCell.Row - 4
Rows(Ligne3 - 1 & ":" & Ligne4).Select
Selection.Delete
'feuille de mars
Sheets("MARS").Activate
derniereLigne = Range("A" & Rows.Count).End(xlUp).Row 'n° de la dernière ligne non vide de la colonne A
Range("A" & Rows.Count).End(xlUp).Offset(1).Select 'sélection de la première cellule vide de la colonne A
Dim Ligne5
Dim Ligne6
' il manque de donner des valeurs aux variables
Ligne5 = ActiveCell.Row
Ligne6 = ActiveCell.Row - 4
Rows(Ligne5 - 1 & ":" & Ligne6).Select
Selection.Delete
'feuille de Avril
Sheets("AVRIL").Activate
derniereLigne = Range("A" & Rows.Count).End(xlUp).Row 'n° de la dernière ligne non vide de la colonne A
Range("A" & Rows.Count).End(xlUp).Offset(1).Select 'sélection de la première cellule vide de la colonne A
Dim Ligne7
Dim Ligne8
' il manque de donner des valeurs aux variables
Ligne7 = ActiveCell.Row
Ligne8 = ActiveCell.Row - 4
Rows(Ligne7 - 1 & ":" & Ligne8).Select
Selection.Delete
'feuille de Mai
Sheets("MAI").Activate
derniereLigne = Range("A" & Rows.Count).End(xlUp).Row 'n° de la dernière ligne non vide de la colonne A
Range("A" & Rows.Count).End(xlUp).Offset(1).Select 'sélection de la première cellule vide de la colonne A
Dim Ligne9
Dim Ligne10
' il manque de donner des valeurs aux variables
Ligne9 = ActiveCell.Row
Ligne10 = ActiveCell.Row - 4
Rows(Ligne9 - 1 & ":" & Ligne10).Select
Selection.Delete
'feuille de Juin
Sheets("JUIN").Activate
derniereLigne = Range("A" & Rows.Count).End(xlUp).Row 'n° de la dernière ligne non vide de la colonne A
Range("A" & Rows.Count).End(xlUp).Offset(1).Select 'sélection de la première cellule vide de la colonne A
Dim Ligne11
Dim Ligne12
' il manque de donner des valeurs aux variables
Ligne11 = ActiveCell.Row
Ligne12 = ActiveCell.Row - 4
Rows(Ligne11 - 1 & ":" & Ligne12).Select
Selection.Delete
'feuille de JuILLET
Sheets("JUILLET").Activate
derniereLigne = Range("A" & Rows.Count).End(xlUp).Row 'n° de la dernière ligne non vide de la colonne A
Range("A" & Rows.Count).End(xlUp).Offset(1).Select 'sélection de la première cellule vide de la colonne A
Dim Ligne13
Dim Ligne14
' il manque de donner des valeurs aux variables
Ligne13 = ActiveCell.Row
Ligne14 = ActiveCell.Row - 4
Rows(Ligne13 - 1 & ":" & Ligne14).Select
Selection.Delete
'feuille de Aout
Sheets("AOUT").Activate
derniereLigne = Range("A" & Rows.Count).End(xlUp).Row 'n° de la dernière ligne non vide de la colonne A
Range("A" & Rows.Count).End(xlUp).Offset(1).Select 'sélection de la première cellule vide de la colonne A
Dim Ligne15
Dim Ligne16
' il manque de donner des valeurs aux variables
Ligne15 = ActiveCell.Row
Ligne16 = ActiveCell.Row - 4
Rows(Ligne15 - 1 & ":" & Ligne16).Select
Selection.Delete
'feuille de Septembre
Sheets("SEPT").Activate
derniereLigne = Range("A" & Rows.Count).End(xlUp).Row 'n° de la dernière ligne non vide de la colonne A
Range("A" & Rows.Count).End(xlUp).Offset(1).Select 'sélection de la première cellule vide de la colonne A
Dim Ligne17
Dim Ligne18
' il manque de donner des valeurs aux variables
Ligne17 = ActiveCell.Row
Ligne18 = ActiveCell.Row - 4
Rows(Ligne17 - 1 & ":" & Ligne18).Select
Selection.Delete
'feuille de Octobre
Sheets("OCT").Activate
derniereLigne = Range("A" & Rows.Count).End(xlUp).Row 'n° de la dernière ligne non vide de la colonne A
Range("A" & Rows.Count).End(xlUp).Offset(1).Select 'sélection de la première cellule vide de la colonne A
Dim Ligne19
Dim Ligne20
' il manque de donner des valeurs aux variables
Ligne19 = ActiveCell.Row
Ligne20 = ActiveCell.Row - 4
Rows(Ligne19 - 1 & ":" & Ligne20).Select
Selection.Delete
'feuille de Novembre
Sheets("NOV").Activate
derniereLigne = Range("A" & Rows.Count).End(xlUp).Row 'n° de la dernière ligne non vide de la colonne A
Range("A" & Rows.Count).End(xlUp).Offset(1).Select 'sélection de la première cellule vide de la colonne A
Dim Ligne21
Dim Ligne22
' il manque de donner des valeurs aux variables
Ligne21 = ActiveCell.Row
Ligne22 = ActiveCell.Row - 4
Rows(Ligne21 - 1 & ":" & Ligne22).Select
Selection.Delete
'feuille de Décembre
Sheets("DEC").Activate
derniereLigne = Range("A" & Rows.Count).End(xlUp).Row 'n° de la dernière ligne non vide de la colonne A
Range("A" & Rows.Count).End(xlUp).Offset(1).Select 'sélection de la première cellule vide de la colonne A
Dim Ligne23
Dim Ligne24
' il manque de donner des valeurs aux variables
Ligne23 = ActiveCell.Row
Ligne24 = ActiveCell.Row - 4
Rows(Ligne23 - 1 & ":" & Ligne24).Select
Selection.Delete
Sheets("JANV").Protect ("1207")
Sheets("FEV").Protect ("1207")
Sheets("MARS").Protect ("1207")
Sheets("AVRIL").Protect ("1207")
Sheets("MAI").Protect ("1207")
Sheets("JUIN").Protect ("1207")
Sheets("JUILLET").Protect ("1207")
Sheets("AOUT").Protect ("1207")
Sheets("SEPT").Protect ("1207")
Sheets("OCT").Protect ("1207")
Sheets("NOV").Protect ("1207")
Sheets("DEC").Protect ("1207")
Sheets("PARAMETRAGE").Unprotect ("1207")
Sheets(Pers).Select
Application.DisplayAlerts = False ' permet la validation automatique de la demande
ActiveSheet.Delete
Application.DisplayAlerts = True ' permet la validation automatique de la demande
MsgBox n & " enregistrement de " & Pers & " a été supprimé"
End Sub