OVH Cloud OVH Cloud

au secours sur For Each

2 réponses
Avatar
Auguste VIEIRA de RESENDE
j'utilise la boucle suivante pour tester le contenu des cellules appartenant
à une plage de cellules

For Each c In [F3:IV3]
If LCase(c) Like "*" & "terminé" & "*" Then
c.Select
ActiveCell.EntireColumn.Select
Application.Run "TransfertArchive"
End If
Next c

mais dans "TransfertArchive" je supprime la colonne qui contient la première
valeur trouvée ce qui fait que lorsque je reviens au début, ma boucle décale
la recherche d'une colonne vers la droite (puisqu'il y a un décalage vers la
gauche lors de la suppression de la colonne)
au résultat il ne trouve q'une colonne sur deux dans la recherche.

j'ai vraiment besoin d'aide car je vois pas comment faire

2 réponses

Avatar
Laurent FONTAINE
Désolé, je n'ai pas compris ta question.
-----Message d'origine-----
j'utilise la boucle suivante pour tester le contenu des
cellules appartenant

à une plage de cellules

For Each c In [F3:IV3]
If LCase(c) Like "*" & "terminé" & "*" Then
c.Select
ActiveCell.EntireColumn.Select
Application.Run "TransfertArchive"
End If
Next c

mais dans "TransfertArchive" je supprime la colonne qui
contient la première

valeur trouvée ce qui fait que lorsque je reviens au
début, ma boucle décale

la recherche d'une colonne vers la droite (puisqu'il y a
un décalage vers la

gauche lors de la suppression de la colonne)
au résultat il ne trouve q'une colonne sur deux dans la
recherche.


j'ai vraiment besoin d'aide car je vois pas comment faire


.



Avatar
Ellimac
Bonjour,

Sub Toto()
Range("f3").Select
While ActiveCell.Column <> 256
n = Application.CountIf
(ActiveCell.EntireColumn, "*terminé*")
If n >= 1 Then
ActiveCell.EntireColumn.Delete
Else
ActiveCell.Offset(0, 1).Select
End If
n = Application.CountIf(Range(ActiveCell.Offset(-2), _
Range("iv65000")), "*terminé*")
If n = 0 Then Exit Sub
Wend
End Sub

Camille
-----Message d'origine-----
j'utilise la boucle suivante pour tester le contenu des
cellules appartenant

à une plage de cellules

For Each c In [F3:IV3]
If LCase(c) Like "*" & "terminé" & "*" Then
c.Select
ActiveCell.EntireColumn.Select
Application.Run "TransfertArchive"
End If
Next c

mais dans "TransfertArchive" je supprime la colonne qui
contient la première

valeur trouvée ce qui fait que lorsque je reviens au
début, ma boucle décale

la recherche d'une colonne vers la droite (puisqu'il y a
un décalage vers la

gauche lors de la suppression de la colonne)
au résultat il ne trouve q'une colonne sur deux dans la
recherche.


j'ai vraiment besoin d'aide car je vois pas comment faire


.