Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Forum Excel


Réponse
 
LinkBack Outils de la discussion
Vieux 11/07/2005, 23h10   #1 (permalink)
Anne Laure
Guest
 
Messages: n/a
Par défaut supprimer la ligne sur toutes les feuilles

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]
Fichiers attachés
Type de fichier : zip test_20050711221013.zip (2,3 Ko, 0 affichages)
  Réponse avec citation
ANNONCES
Vieux 11/07/2005, 23h53   #2 (permalink)
XLDnaute Barbatruc
 
Avatar de Robert
 
Date d'inscription: février 2005
Localisation: Sète
Version Excel : Excel 2003 (PC)
Messages: 2 920
Par défaut Re:supprimer la ligne sur toutes les feuilles

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 :


Citation:
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
__________________
À plus

Robert
Robert est déconnecté   Réponse avec citation
Vieux 12/07/2005, 08h39   #3 (permalink)
XLDnaute Impliqué
 
Avatar de Yeahou
 
Date d'inscription: mars 2005
Localisation: Sermaise
Version Excel : Excel XP (PC)
Messages: 825
Par défaut Re:supprimer la ligne sur toutes les feuilles

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
__________________

à la mi août, tous les chats sont roux...
Yeahou est déconnecté   Réponse avec citation
Vieux 12/07/2005, 10h14   #4 (permalink)
XLDnaute Occasionel
 
Avatar de ZZR09
 
Date d'inscription: juillet 2005
Localisation: Rouen
Version Excel : Excel 2007 (PC)
Messages: 341
Par défaut Re:supprimer la ligne sur toutes les feuilles

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]
Fichiers attachés
Type de fichier : zip test_bis.zip (9,7 Ko, 2 affichages)
__________________
cordialement
-----------------------------------------------------

"A cœur vaillant, rien d'impossible." Mais parfois... c'est plutôt fastidieux.
ZZR09 est déconnecté   Réponse avec citation
Vieux 12/07/2005, 10h28   #5 (permalink)
XLDnaute Occasionel
 
Avatar de ZZR09
 
Date d'inscription: juillet 2005
Localisation: Rouen
Version Excel : Excel 2007 (PC)
Messages: 341
Par défaut Re:supprimer la ligne sur toutes les feuilles

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
__________________
cordialement
-----------------------------------------------------

"A cœur vaillant, rien d'impossible." Mais parfois... c'est plutôt fastidieux.
ZZR09 est déconnecté   Réponse avec citation
ANNONCES
Réponse

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +2. Il est actuellement 11h20.


(C) 2006 Excel Downloads