RESOLU Suprimer des lignes dans plusieurs feuilles en même temps

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonsoir à tous,
Toujours dans mon classeur de suivi de présence, je souhaiterais pouvoir supprimer des lignes dans plusieurs feuilles en même temps.

Voici la macro toute simple que j'ai fait (enfin, heu.... pas moi mais excel)

Sub supprimerligne()
'
' supprimerligne Macro
'

'
Sheets("TicketsRest").Select
ActiveSheet.Unprotect
Sheets("Synthèse").Select
ActiveSheet.Unprotect
Sheets("matrice").Select
ActiveSheet.Unprotect
Sheets(Array("matrice", "Synthèse", "TicketsRest")).Select
Sheets("matrice").Activate
Rows("14:14").Select
Selection.Delete Shift:=xlUp

Sheets("TicketsRest").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Rows("14:14").Select
ActiveSheet.Unprotect
Range("A1:R3").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Sheets("TicketsRest").Select
ActiveWindow.LargeScroll Down:=0
Sheets("Synthèse").Select
Range("A3").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Sheets("matrice").Select
Range("A10").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Bien évidement, même si dans cette macro, j'ai demandé à supprimer la ligne "14"( voire ligne en rouge), d'autres fois, ce seront des lignes différentes.

C'est pourquoi, je voudrais que la macro que demande quelles lignes je veux supprimer.

Cela est-il possible ?

Pouvez-vous m'aider ?

Avec mes remerciements,
Amicalementn,
Lionel,
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re : Suprimer des lignes dans plusieurs feuilles en même temps

Bonsoir JM,

Il s'agit d'un autre fichier bcp plus gros concernant l'établissement des salaires. Il ne passe pas pour le site.

Si ma question n'est pas clairement exprimée, je joindrai une partie du fichier dans mon prochain message.

Amicalement,
Lionel,
 

Staple1600

XLDnaute Barbatruc
Re : Suprimer des lignes dans plusieurs feuilles en même temps

Re


Il ne s'agit pas du fichier présent dans ce fil ?
https://www.excel-downloads.com/threads/resolu-execution-macro-sous-condition.174828/

EDITION: S'il s'agit de supprimer une sélection de lignes
Code:
Sub a()
Dim lignes
Set lignes = _
        Application.InputBox _
            (Prompt:="selectionner les lignes à supprimer ", _
            Title:="Suppresion de ligne (Selection)", Type:=8)
lignes.EntireRow.Delete
End Sub
Pour tester lancer la macro, puis faire une sélection multiple (avec la touche CTRL maintenue) de lignes avec la souris.
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re : Suprimer des lignes dans plusieurs feuilles en même temps

Bonsoir JM,
Merci de m'avoir répondu.
Le classdeur ou morceaux du classeur que j'avais joint jusqu'à présent traite de la présence des salariés et du suivi des CP et différentes abdsences.
Ce nouveau classeur traite de l'établissement des salaires et il est bcp plus gros.
Je vais essayer le code que vous m'avez transmis et je reviens vers vous.

Je tiens à vous préciser que même si à ce jour, je suis bien incapable d'écrire en VBA, je ne recherche pas forcément "la facilité" et uniquement "le copiage" en venant vers vous.
Bien au contraire, j'essaie de comprendre ce que vous m'écrivez et je me fais mon lexique de traduction à ma façon tout en essayant d'avancer vers une "petite maîtrise" de VBA.

Encore merci,
Amicalement,
Lionel,
 

Staple1600

XLDnaute Barbatruc
Re : Suprimer des lignes dans plusieurs feuilles en même temps

Re

Une version plus aboutie de la précédente macro
Code:
Sub b()
Dim lignes As Range, MSerr&
On Error Resume Next
Application.DisplayAlerts = False
Set lignes = Application.InputBox _
            (Prompt:="selectionner les lignes à supprimer ", _
            Title:="Suppresion de ligne (Selection)", _
            Type:=8)
On Error GoTo 0
If Not (lignes Is Nothing) Then
    lignes.EntireRow.Delete
    Else
    MSerr = MsgBox("Selection invalide , Recommencer ?", 33, "Information")
        If MSerr = vbCancel Then
        Exit Sub
        Else
    Run "b"
    End If
End If
End Sub
Si vous avez des questions, n'hésitez pas.

EDITITON: Voir copie d'écran ci-dessous pour détails
arthour.jpg
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Suprimer des lignes dans plusieurs feuilles en même temps

Re


Je me suis borné à répondre à ceci
C'est pourquoi, je voudrais que la macro que demande quelles lignes je veux supprimer.
PS: Je t'en dirai plus quand tu auras modifié ton code initial (en supprimant tous ces vilains Select, comme il me semble te l'avoir déjà expliquer dans un autre fil ;) )
On a rien sans rien! :eek:
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re : Suprimer des lignes dans plusieurs feuilles en même temps

Re


Je me suis borné à répondre à ceci

PS: Je t'en dirai plus quand tu auras modifié ton code initial (en supprimant tous ces vilains Select, comme il me semble te l'avoir déjà expliquer dans un autre fil ;) )
On a rien sans rien! :eek:

Ok, vous avez raison, il faut evoluer !
Je n'y comprends rien mais je vais essayer
merci de ce que vous faites !
et c'est bien plus que d'écrire des macros.
Amicalement,
lionel,
 

Staple1600

XLDnaute Barbatruc
Re : Suprimer des lignes dans plusieurs feuilles en même temps

Re

Bonne nuit et Bonnes Fêtes

Je serai loin de mon clavier ce week.

PS: Si tu n'y arrives pas, d'autres sur le forum prendront le relais pour t'aider.

PS: Essaie de ne pas oublier la charte d'ici là ;)
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re : Suprimer des lignes dans plusieurs feuilles en même temps

Bonjour (pour le retour),
j'ai essayé et voici le code auquel je suis arrivé :
Sub supprimerligne()
'
' supprimerligne Macro
'

'
Sheets("TicketsRest").Unprotect
Sheets("Synthèse").Unprotect
Sheets("matrice").Unprotect
Sheets(Array("matrice", "Synthèse", "TicketsRest")).Select
Sheets("matrice").Rows("14:14").Delete Shift:=xlUp
Sheets("Procèdure").Select
Sheets("TicketsRest").Range("A10").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Sheets("Synthèse").Range("A10").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Sheets("matrice").Range("A10").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

ça marche jusqu'à la protection des feuilles, c'est à dire jusqu'avant les 3 dernières lignes et là....... ça marche plus et je ne vois pas pkoi ?

merci de votre aide.
Amicalement,
Lionel,
 

Staple1600

XLDnaute Barbatruc
Re : Suprimer des lignes dans plusieurs feuilles en même temps

Bonjour


Quand tu as un doute sur ta syntaxe, utilises l'enregistreur de macros pour la vérifier.
(C'est le range("A10") qui posait problème)

Bien que tu débutes, je te propose ma version de ton code.
(N'hésites pas si tu as des questions)
VB:
Sub MainPROC()
suplig 14, "Feuil1", "Feuil2", "Feuil3"
'cela permets de paramétrer à loisir ta macro de suppression de lignes
'Ex: si je veux supprimer la ligne 20 des feuilles 1 et 2, j'aurai écrit
'suplig 20, "Feuil1", "Feuil2"
End Sub

VB:
Private Sub suplig(ligne&, ParamArray tf() As Variant)
Dim i As Byte
For i = 0 To UBound(tf)
Sheets(tf(i)).Unprotect
Next i
Sheets(tf).Select
Sheets(tf(0)).Rows(ligne & ":" & ligne).Delete Shift:=xlUp
Sheets(tf(0)).Select
For i = 0 To UBound(tf)
Sheets(tf(i)).Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Next i
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 321
Membres
103 178
dernier inscrit
BERSEB50