supprimer la ligne sur toutes les feuilles

  • Initiateur de la discussion Initiateur de la discussion Anne Laure
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

Anne Laure

Guest
Bonjour à toutes et à tous !!!

quelqu'un a pu m'aider a construire la formule que je désirai,

dès que quelqu'un coche la case H4, il ne se passe rien
et lorsque que celle ci reste vide, l'odinateur supprime la ligne dont l'intitulé dans la colonne A correspond à celui dans la cellule E4.(dans l'exemple Dupond)
Cependant je voudrait que la ligne supprimée soit également supprimé dans les autres feuilles
Et je n'ai pa la moindre idée par quel moyen arriver à mes fins!!

Voici la formule :

Private Sub CommandButton1_Click()
If [H4] <> '' Then Exit Sub
For ligne = 4 To [A65000].End(xlUp).Row
If Cells(ligne, 1) = [G4] Then
Rows(ligne).Delete
Exit For
End If
Next
End Sub

Si par hasard vous pouvez m'aider!!!

Merci beaucoup par avance [file name=test_20050711221013.zip size=2362]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/test_20050711221013.zip[/file]
 

Pièces jointes

Bonsoir Anne Laure, bonsoir le forum,

J'ai adapté la macro à la pièce jointe mais aussi à la manière que j'ai d'écrire (Range('A1') au lieu de [A1]. Habitude quand tu nous tiens !...).
Cela donne la macro ci-dessous. Dis-moi si ça te convient :


Private Sub CommandButton1_Click()
Dim Cel As Range 'déclare la variable Cel
Dim Ws As Worksheet 'déclare la variable Ws
Dim li As Integer

If Range('H4').Value <> '' Then Exit Sub 'si la cellule H4 n'est pas vide, sort de la procédure

'boucle 1 : sur toutes les cellules Cel de la plage A24:A... (dernière éditée)
For Each Cel In Range('A24:A' & Range('A65536').End(xlUp).Row)
'condition : si la valeur de la cellule Cel est égale à la valeur de la cellule H4
If Cel.Value = Range('G4').Value Then
li = Cel.Row 'de'finit la variable li
For Each Ws In Sheets 'boucle 2 : sur tous les onglets du classeur
Ws.Rows(li).Delete 'supprime la ligne li de l'onglet
Next Ws 'prochain onglet du classeur (boucle 2)
Exit For 'sort de la boucle 1
End If 'fin de la condition
Next Cel 'prochaine cellule Cel de la plage (boucle 1)
End Sub
 
Bonjour Anne laure, Robert, le forum

une autre solution sans boucler sur les feuilles. Egalement, pour une suppression de ligne, mieux vaut partir de la fin. Si pour l'instant tu ne supprimes qu'une ligne, si tu le modifie pour en supprimer plusieurs, le code actuel ne fonctionnera pas bien. Le fait de supprimer une ligne modifie les références suivantes et, dans la boucle, la cellule immédiatement aprés est considérée comme déja testée.
Dans le code fourni, la sélection est obligatoire pour que cela fonctionne.

Cordialement, A+

Code:
Private Sub CommandButton1_Click()
Dim Sheet_en_cours As Worksheet
Set Sheet_en_cours = ActiveSheet
If Sheet_en_cours.Range('H4').Value <> '' Then Exit Sub
ThisWorkbook.Sheets.Select
For ligne = Sheet_en_cours.Range('A65000').End(xlUp).Row To 4
If Sheet_en_cours.Cells(ligne, 1) = Sheet_en_cours.Range('G4') Then
Rows(ligne & ':' & ligne).Select
Selection.Delete Shift:=xlUp
Exit For
End If
Next
Sheet_en_cours.Select
End Sub
 
Bonjour à tous,
Un peu long mais avec des instructions simples, (à mon niveau = débutant)

Sub Bouton1_QuandClic()

Dim varsheets, var, var2 As Integer
Dim c As Range
var2 = 1
var = 0

For Each c In Sheets(1).Range('H1:H20000')

If Sheets(1).Cells(var2 - var, 8) = '' Then
var2 = var2 + 1
GoTo continuer:

Else
varsheets = 1
While varsheets <= Sheets.Count
Sheets(varsheets).Select
Rows(var2 - var).Delete
Range('A1').Activate
varsheets = varsheets + 1
Wend
var2 = var2 + 1
var = var + 1
Sheets(1).Activate
End If

continuer:
Next c

If var = 0 Then
MsgBox 'Aucune ligne à supprimer', vbExclamation, 'Avertissement'
Else
MsgBox 'Vous avez supprimé ' & var & ' ligne(s)', vbInformation, 'Bravo'
End If
End Sub

A+ [file name=test_bis.zip size=9921]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/test_bis.zip[/file]
 

Pièces jointes

re,

En voyant ce qui a déjà été proposé, je pense que les déclarations de variables de Roberts sont les plus judicieuses, c'est un peu moins 'torturé de l'esprit'. Ma solution approt les récapitulatifs en fin de travail.

ZZR09
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
450
Réponses
10
Affichages
658
Retour