peux parcourir les cellules d'une zone nommée

Le
Alfred WALLACE
Bonjour,
j'essaye toujours de parcourir ma plage [zone_sujets]

est ce qu'il est possible de "boucler" de la première à la dernière
cellule de cette plage, mais, à la fin , je reviens à la première ?

exemple ma zone va de A1 jusqu'a A10

je cherche à me déplacer de A1, jusqu'a A10, ok, mais, en A10,
est-ce que je peux "boucler" sur A1 lorsque je suis en A10 ?


Merci pour votre aide.

José
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
DanielCo
Le #23520831
Prévois une sortie de la boucle :

Do
If i = [zone_sujets].Count Then i = 0
i = i + 1
MsgBox Range("zone_sujets")(i).Value
Loop

Cordialement.
Daniel


Bonjour,
j'essaye toujours de parcourir ma plage [zone_sujets]

est ce qu'il est possible de "boucler" de la première à la dernière
cellule de cette plage, mais, à la fin , je reviens à la première ?

exemple ma zone va de A1 jusqu'a A10

je cherche à me déplacer de A1, jusqu'a A10, ok, mais, en A10,
est-ce que je peux "boucler" sur A1 lorsque je suis en A10 ?


Merci pour votre aide.

José
MichD
Le #23521011
Bonjour,

Je n'ai pas vraiment compris ce que tu tentes de faire :

La procédure est une boucle sans fin, elle passe de A1 jusqu'à A5
et recommence continuellement...
Attention, exécute cette procédure pas à pas en utilisant la touche F8
sinon tu te retrouveras dans une boucle avec aucune possibilité d'en sortir !

'--------------------------------------
Sub test()

Dim A As Integer, X As Integer
With Range("A1:A5")
X = .Cells.Count
Do While A <= X
A = A + 1
.Item(A, 1).Select
If A = X Then
A = 0
End If
Loop
End With
End Sub



MichD
--------------------------------------------
"Alfred WALLACE" a écrit dans le message de groupe de discussion :


Bonjour,
j'essaye toujours de parcourir ma plage [zone_sujets]

est ce qu'il est possible de "boucler" de la première à la dernière
cellule de cette plage, mais, à la fin , je reviens à la première ?

exemple ma zone va de A1 jusqu'a A10

je cherche à me déplacer de A1, jusqu'a A10, ok, mais, en A10,
est-ce que je peux "boucler" sur A1 lorsque je suis en A10 ?


Merci pour votre aide.

José
Jacquouille
Le #23521211
Mon Bon Denis
je profite de cette remarque pour poser ....
Quand on fait une connerie, et que l'on s'embarque dans une boucle du style
à rallonge qui dure une heure, comment peut-on stopper la macro autrement
qu'avec un marteau ou stopper le PC ?
Bon, tu viens de dire d'utiliser la F8, mais, au départ, on ne sait pas que
l'on a fait une connerie....
merci

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"MichD" a écrit dans le message de groupe de discussion :
iukflu$lii$

Bonjour,

Je n'ai pas vraiment compris ce que tu tentes de faire :

La procédure est une boucle sans fin, elle passe de A1 jusqu'à A5
et recommence continuellement...
Attention, exécute cette procédure pas à pas en utilisant la touche F8
sinon tu te retrouveras dans une boucle avec aucune possibilité d'en sortir
!

'--------------------------------------
Sub test()

Dim A As Integer, X As Integer
With Range("A1:A5")
X = .Cells.Count
Do While A <= X
A = A + 1
.Item(A, 1).Select
If A = X Then
A = 0
End If
Loop
End With
End Sub



MichD
--------------------------------------------
"Alfred WALLACE" a écrit dans le message de groupe de discussion :


Bonjour,
j'essaye toujours de parcourir ma plage [zone_sujets]

est ce qu'il est possible de "boucler" de la première à la dernière
cellule de cette plage, mais, à la fin , je reviens à la première ?

exemple ma zone va de A1 jusqu'a A10

je cherche à me déplacer de A1, jusqu'a A10, ok, mais, en A10,
est-ce que je peux "boucler" sur A1 lorsque je suis en A10 ?


Merci pour votre aide.

José
MichD
Le #23521291
Tu peux procéder comme suit en modifiant légèrement la macro
afin de pouvoir t'assurer une intervention...

Tu peux lancer cette macro et interrompre son déroulement par
la combinaison des touches Ctrl + Pause


'-------------------------------------
Sub test()
Dim A As Integer, X As Integer

'**************
Application.EnableCancelKey = xlInterrupt
'**************
With Range("A1:A5")
X = .Cells.Count
Do While A <= X
A = A + 1
.Item(A, 1).Select
If A = X Then
A = 0
End If
Loop
End With
End Sub
'-------------------------------------


MichD
--------------------------------------------
"Jacquouille" a écrit dans le message de groupe de discussion : 4e0dd23c$0$14258$

Mon Bon Denis
je profite de cette remarque pour poser ....
Quand on fait une connerie, et que l'on s'embarque dans une boucle du style
à rallonge qui dure une heure, comment peut-on stopper la macro autrement
qu'avec un marteau ou stopper le PC ?
Bon, tu viens de dire d'utiliser la F8, mais, au départ, on ne sait pas que
l'on a fait une connerie....
merci

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"MichD" a écrit dans le message de groupe de discussion :
iukflu$lii$

Bonjour,

Je n'ai pas vraiment compris ce que tu tentes de faire :

La procédure est une boucle sans fin, elle passe de A1 jusqu'à A5
et recommence continuellement...
Attention, exécute cette procédure pas à pas en utilisant la touche F8
sinon tu te retrouveras dans une boucle avec aucune possibilité d'en sortir
!

'--------------------------------------
Sub test()

Dim A As Integer, X As Integer
With Range("A1:A5")
X = .Cells.Count
Do While A <= X
A = A + 1
.Item(A, 1).Select
If A = X Then
A = 0
End If
Loop
End With
End Sub



MichD
--------------------------------------------
"Alfred WALLACE" a écrit dans le message de groupe de discussion :


Bonjour,
j'essaye toujours de parcourir ma plage [zone_sujets]

est ce qu'il est possible de "boucler" de la première à la dernière
cellule de cette plage, mais, à la fin , je reviens à la première ?

exemple ma zone va de A1 jusqu'a A10

je cherche à me déplacer de A1, jusqu'a A10, ok, mais, en A10,
est-ce que je peux "boucler" sur A1 lorsque je suis en A10 ?


Merci pour votre aide.

José
MichD
Le #23521321
J'oubliais, la touche Esc peut aussi être employée au lieu de Ctrl + Pause



MichD
--------------------------------------------
"MichD" a écrit dans le message de groupe de discussion : iukluk$58u$

Tu peux procéder comme suit en modifiant légèrement la macro
afin de pouvoir t'assurer une intervention...

Tu peux lancer cette macro et interrompre son déroulement par
la combinaison des touches Ctrl + Pause


'-------------------------------------
Sub test()
Dim A As Integer, X As Integer

'**************
Application.EnableCancelKey = xlInterrupt
'**************
With Range("A1:A5")
X = .Cells.Count
Do While A <= X
A = A + 1
.Item(A, 1).Select
If A = X Then
A = 0
End If
Loop
End With
End Sub
'-------------------------------------


MichD
--------------------------------------------
"Jacquouille" a écrit dans le message de groupe de discussion : 4e0dd23c$0$14258$

Mon Bon Denis
je profite de cette remarque pour poser ....
Quand on fait une connerie, et que l'on s'embarque dans une boucle du style
à rallonge qui dure une heure, comment peut-on stopper la macro autrement
qu'avec un marteau ou stopper le PC ?
Bon, tu viens de dire d'utiliser la F8, mais, au départ, on ne sait pas que
l'on a fait une connerie....
merci

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"MichD" a écrit dans le message de groupe de discussion :
iukflu$lii$

Bonjour,

Je n'ai pas vraiment compris ce que tu tentes de faire :

La procédure est une boucle sans fin, elle passe de A1 jusqu'à A5
et recommence continuellement...
Attention, exécute cette procédure pas à pas en utilisant la touche F8
sinon tu te retrouveras dans une boucle avec aucune possibilité d'en sortir
!

'--------------------------------------
Sub test()

Dim A As Integer, X As Integer
With Range("A1:A5")
X = .Cells.Count
Do While A <= X
A = A + 1
.Item(A, 1).Select
If A = X Then
A = 0
End If
Loop
End With
End Sub



MichD
--------------------------------------------
"Alfred WALLACE" a écrit dans le message de groupe de discussion :


Bonjour,
j'essaye toujours de parcourir ma plage [zone_sujets]

est ce qu'il est possible de "boucler" de la première à la dernière
cellule de cette plage, mais, à la fin , je reviens à la première ?

exemple ma zone va de A1 jusqu'a A10

je cherche à me déplacer de A1, jusqu'a A10, ok, mais, en A10,
est-ce que je peux "boucler" sur A1 lorsque je suis en A10 ?


Merci pour votre aide.

José
MichD
Le #23521311
Et tu peux essayer ceci... en utilisant Ctrl + Pause ou la touche Esc
pour provoquer la sortie de la boucle...

'------------------------------
Sub test()
Dim GestionErreur As String
Application.EnableCancelKey = xlErrorHandler
On Error GoTo GestionErreur
Dim A As Integer, X As Integer
With Range("A1:A5")
X = .Cells.Count
Do While A <= X
A = A + 1
.Item(A, 1).Select
If A = X Then
A = 0
End If
Loop
End With
Exit Sub
GestionErreur:
MsgBox "Sortie en douce de la boucle"
End Sub
'------------------------------

MichD
--------------------------------------------
MichD
Le #23521371
Et une dernière variante...

'-------------------------------------
Sub test()

Dim GestionErreur As String, Et_Après As String
Application.EnableCancelKey = xlErrorHandler
On Error GoTo GestionErreur
Dim A As Integer, X As Integer
With Range("A1:A5")
X = .Cells.Count
Do While A <= X
A = A + 1
.Item(A, 1).Select
If A = X Then
A = 0
End If
Loop
End With

Et_Après:

MsgBox "je continue l'exécution de la macro"

Exit Sub
GestionErreur:
MsgBox "Sortie en douce de la boucle"

Resume Et_Après

End Sub
'-------------------------------------


MichD
--------------------------------------------
Jacquouille
Le #23521361
Haha ...avec tout cela et un bon marteau, on y arrivera.
merci et très bon WE
jacques.



Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"MichD" a écrit dans le message de groupe de discussion :
iukn67$8mt$

Et une dernière variante...

'-------------------------------------
Sub test()

Dim GestionErreur As String, Et_Après As String
Application.EnableCancelKey = xlErrorHandler
On Error GoTo GestionErreur
Dim A As Integer, X As Integer
With Range("A1:A5")
X = .Cells.Count
Do While A <= X
A = A + 1
.Item(A, 1).Select
If A = X Then
A = 0
End If
Loop
End With

Et_Après:

MsgBox "je continue l'exécution de la macro"

Exit Sub
GestionErreur:
MsgBox "Sortie en douce de la boucle"

Resume Et_Après

End Sub
'-------------------------------------


MichD
--------------------------------------------
Alfred WALLACE
Le #23530201
Merci à tous vos échanges !!!!

José


On 1 juil, 17:02, "Jacquouille"
Haha ...avec tout cela et un bon marteau, on y arrivera.
merci et très bon WE
jacques.

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"MichD"  a écrit dans le message de groupe de discussion :
iukn67$

Et une dernière variante...

'-------------------------------------
Sub test()

Dim GestionErreur As String, Et_Après As String
Application.EnableCancelKey = xlErrorHandler
On Error GoTo GestionErreur
Dim A As Integer, X As Integer
With Range("A1:A5")
    X = .Cells.Count
    Do While A <= X
        A = A + 1
        .Item(A, 1).Select
        If A = X Then
             A = 0
        End If
    Loop
End With

Et_Après:

MsgBox "je continue l'exécution de la macro"

Exit Sub
GestionErreur:
MsgBox "Sortie en douce de la boucle"

Resume Et_Après

End Sub
'-------------------------------------

MichD
--------------------------------------------
Publicité
Poster une réponse
Anonyme