Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Probleme de boucles

4 réponses
Avatar
sunburn
bonjour,
je ne maitrise pas bien les boucles.
je voudrais appliquer une opération pour un sélection de feuille, j'ai fais
ça mais ça ne fonctionne pas. (je veux supprimer des lignes sur chacun de mes
onglets "10, "20", .."90")
Merci de votre aide :
------------
Sub EffaceSousCycle()
For Each F In Array("10,20,30,40,50,60,70,80,90")
'On Error Resume Next
Sheets(F).Activate
For I = Cells(Rows.Count, "a").End(1).Row To 2 Step -1
If Cells(I, 1) > 100000 And Cells(I, 1) < 99999999 Then
Rows(I).Delete
Next
Next
End Sub
----------

4 réponses

Avatar
Daniel.C
Bonjour.
For Each F In Array("10", "20", "30", "40", "50", "60", "70", "80",
"90")
(Les noms de feuilles ne sont de type string).
Daniel

bonjour,
je ne maitrise pas bien les boucles.
je voudrais appliquer une opération pour un sélection de feuille, j'ai fais
ça mais ça ne fonctionne pas. (je veux supprimer des lignes sur chacun de mes
onglets "10, "20", .."90")
Merci de votre aide :
------------
Sub EffaceSousCycle()
For Each F In Array("10,20,30,40,50,60,70,80,90")
'On Error Resume Next
Sheets(F).Activate
For I = Cells(Rows.Count, "a").End(1).Row To 2 Step -1
If Cells(I, 1) > 100000 And Cells(I, 1) < 99999999 Then
Rows(I).Delete
Next
Next
End Sub
----------


Avatar
Corona
Bonjour,
Voici un exemple de lecture de feuilles d'un classeur dans lequel est
écrit le code VBA
Sub EffaceSousCycle()
Dim F As Worksheet
For Each F In ActiveWorkbook.Worksheets
Select Case F.Name
Case "10", "20", "30", "40", "50", "60", "70", "80", "90"
' Ici le code de destruction de lignes
' F.Cells( etc ...
End Select
Next
End Sub
Philippe Tulliez


sunburn a écrit :
bonjour,
je ne maitrise pas bien les boucles.
je voudrais appliquer une opération pour un sélection de feuille, j'ai fais
ça mais ça ne fonctionne pas. (je veux supprimer des lignes sur chacun de mes
onglets "10, "20", .."90")
Merci de votre aide :
------------
Sub EffaceSousCycle()
For Each F In Array("10,20,30,40,50,60,70,80,90")
'On Error Resume Next
Sheets(F).Activate
For I = Cells(Rows.Count, "a").End(1).Row To 2 Step -1
If Cells(I, 1) > 100000 And Cells(I, 1) < 99999999 Then
Rows(I).Delete
Next
Next
End Sub
----------


Avatar
michdenis
Bonjour Sunburn,

Essaie quelque chose comme ceci :

La procédure prend pour acquis que la première ligne
sert aux étiquettes des colonnes.

'-----------------------------------------
Sub EffaceSousCycle()

Dim Rg As Range
For Each F In Array(10, 20, 30, 40, 50, 60, 70, 80, 90)
With Sheets(CStr(F))
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
.AutoFilter field:=1, Criteria1:=">" & 100000, _
Criteria2:="<" & 99999999
Set Rg = .Range("_FilterDataBase")
Rg.Offset(1).Resize(Rg.Rows.Count - 1).SpecialCells _
(xlCellTypeVisible).EntireRow.Delete
.AutoFilter
End With
End With
Next
End Sub
'-----------------------------------------



"sunburn" a écrit dans le message de groupe de
discussion :
bonjour,
je ne maitrise pas bien les boucles.
je voudrais appliquer une opération pour un sélection de feuille, j'ai fais
ça mais ça ne fonctionne pas. (je veux supprimer des lignes sur chacun de mes
onglets "10, "20", .."90")
Merci de votre aide :
------------
Sub EffaceSousCycle()
For Each F In Array("10,20,30,40,50,60,70,80,90")
'On Error Resume Next
Sheets(F).Activate
For I = Cells(Rows.Count, "a").End(1).Row To 2 Step -1
If Cells(I, 1) > 100000 And Cells(I, 1) < 99999999 Then
Rows(I).Delete
Next
Next
End Sub
----------
Avatar
sunburn
Bonsoir,
je vous remercie tous pour votre aide.
A l'usage, ta technique est la plus rapide.
merci.

YANN

"michdenis" wrote:

Bonjour Sunburn,

Essaie quelque chose comme ceci :

La procédure prend pour acquis que la première ligne
sert aux étiquettes des colonnes.

'-----------------------------------------
Sub EffaceSousCycle()

Dim Rg As Range
For Each F In Array(10, 20, 30, 40, 50, 60, 70, 80, 90)
With Sheets(CStr(F))
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
.AutoFilter field:=1, Criteria1:=">" & 100000, _
Criteria2:="<" & 99999999
Set Rg = .Range("_FilterDataBase")
Rg.Offset(1).Resize(Rg.Rows.Count - 1).SpecialCells _
(xlCellTypeVisible).EntireRow.Delete
.AutoFilter
End With
End With
Next
End Sub
'-----------------------------------------



"sunburn" a écrit dans le message de groupe de
discussion :
bonjour,
je ne maitrise pas bien les boucles.
je voudrais appliquer une opération pour un sélection de feuille, j'ai fais
ça mais ça ne fonctionne pas. (je veux supprimer des lignes sur chacun de mes
onglets "10, "20", .."90")
Merci de votre aide :
------------
Sub EffaceSousCycle()
For Each F In Array("10,20,30,40,50,60,70,80,90")
'On Error Resume Next
Sheets(F).Activate
For I = Cells(Rows.Count, "a").End(1).Row To 2 Step -1
If Cells(I, 1) > 100000 And Cells(I, 1) < 99999999 Then
Rows(I).Delete
Next
Next
End Sub
----------